所以我有这三个载体:
我必须找出这三个向量的k值是线性相关的。我已尝试将 rref 和 linsolve 与syms一起使用,但这没有用。我对MatLab和矩阵比较新,所以请记住这一点。
我知道为了检查矢量是否与线性相关,c1 ... cn必须非零。
我还想知道在MatLab中解决这些类型的方程式时如何使用变量。
答案 0 :(得分:7)
一组向量(至少如果n
维度中有n
个向量)是线性相关的,如果从它们构造的矩阵是单数的,即如果它的行列式为0.如果你有符号数学工具箱,你可以构造一个符号矩阵:
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
找到等式的数值解{ {1}},通过调用
detfun(k)==0
其中第二个参数 fsolve(detfun,0)
指的是0
执行搜索的起点。这会告诉您答案是fsolve
,但只需拨打k==-1
一次,您就可以获得一个解决方案。如果你的函数有多个根,你必须使用起点来找到更多的根。在这种情况下,您可以知道您的函数(即fsolve
在det(M(k))
中是线性的,因此它具有唯一的根。