对于这3个向量线性相关的k值是多少

wer*_*318 2 matlab

所以我有这三个向量:

在此输入图像描述

我必须找出这三个向量的线性相关的k值.我已经尝试过使用rreflinsolve与syms,但这没有用.我对MatLab和矩阵比较新,所以请记住这一点.

我知道为了检查矢量是否与线性相关,c1 ... cn必须是非零的.

我还想知道在MatLab中解决这些类型的方程时如何使用变量.

And*_*eak 8

一组向量(至少如果你有维度中的n向量n)是线性相关的,如果从它们构造的矩阵是单数的,即如果它的行列式为0.如果你有符号数学工具箱,你可以构造一个符号矩阵:

syms k;
M = [1 k 0; -1 1 2; 0 0 3];
det(M)
Run Code Online (Sandbox Code Playgroud)

这将告诉您det(M)==3*k+3,您可以手动解决.但一般来说,你可以要求matlab解决它:

solve(det(M)==0,k);
Run Code Online (Sandbox Code Playgroud)

哪个会告诉你答案是-1.因此,除非k==-1这些向量是线性无关的(即它们包含欧几里德空间的基础R^3).

更新:如果您没有 Symbolic Math Toolbox,您仍然可以尝试查找数值解法.首先定义一个函数

detfun=@(k) det([1 k 0; -1 1 2; 0 0 3]);
Run Code Online (Sandbox Code Playgroud)

对于任何值的k将给你矩阵的行列式,例如detfun(3)给出12.然后你可以fsolve用来找到方程的数值解detfun(k)==0,通过调用

 fsolve(detfun,0)
Run Code Online (Sandbox Code Playgroud)

其中第二个参数,0是指执行搜索的起点fsolve.这将告诉您答案是k==-1,但一次调用fsolve只会给您一个解决方案.如果你的函数有多个根,你必须使用起点来找到更多的根.在这种情况下,您可以知道您的函数(即det(M(k))线性k,因此它具有唯一的根.