所以我有这三个向量:

matlab - 这3个向量与k的值线性相关-LMLPHP

而且我必须找出这三个向量的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/

10-16 05:43