所以我有这三个向量:
而且我必须找出这三个向量的k值是线性的。我已经尝试过使用带有符号的rref和linsolve来解决这个问题,但是没有成功。我对MatLab和矩阵相对较新,因此请记住这一点。
我知道,为了检查向量是否线性相关,c1 ... cn必须为非零。
我还想知道在MatLab中求解这些类型的方程时,一般如何使用变量。
最佳答案
如果从它们构造的矩阵是奇异的(即,如果行列式为0),则一组向量(至少在n
个维度中具有n
个向量)是线性相关的。如果您具有Symbolic Math Toolbox,则可以构造一个符号矩阵:
syms k;
M = [1 k 0; -1 1 2; 0 0 3];
det(M)
这将告诉您
det(M)==3*k+3
,您可以手动解决。但通常,您可以要求matlab解决它:solve(det(M)==0,k);
答案为
-1
。因此,除非k==-1
,否则这些向量是线性独立的(即它们构成了欧几里得空间R^3
的基础)。更新:如果您没有符号数学工具箱,您仍然可以尝试找到数值解。首先定义一个函数
detfun=@(k) det([1 k 0; -1 1 2; 0 0 3]);
对于任何
k
值,您都会得到矩阵的行列式,例如detfun(3)
给出12。然后您可以使用fsolve
来找到等式detfun(k)==0
的数值解,方法是调用 fsolve(detfun,0)
其中第二个参数
0
指的是fsolve
执行的搜索的起点。这将告诉您答案是k==-1
,但是对fsolve
的一个调用只会给您一个解决方案。如果您的函数有多个根,则必须尝试各种起点才能找到更多的根。在这种情况下,您可以知道您的函数(即det(M(k))
在k
中是线性的,因此它具有唯一的根。关于matlab - 这3个向量与k的值线性相关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32760184/