Mám teda tieto tri vektory:
A musím zistiť, akú hodnotu k majú tieto tri vektory lineárne závislý, Snažil som sa používať Rref a linsolve so systémami na to, ale to nevyšlo. Som relatívne nový v MatLabe a matriciach, takže majte na pamäti.
Viem, aby som skontroloval, či vektory sú lineárne závislé od toho, že musia byť c1 ... cn nenulovej.
Chcem tiež vedieť, ako môžete vo všeobecnosti použiť premenné pri riešení týchto typov rovníc v MatLab.
odpovede:
7 pre odpoveď č. 1Sada vektorov (aspoň ak máte n
vektory v n
dimenzie) je lineárne závislá, ak je matica vytvorená z nich singulárna, t. j. ak je jej determinantom 0. Ak máte Symbolic Math Toolbox, môžete zostaviť symbolickú maticu:
syms k;
M = [1 k 0; -1 1 2; 0 0 3];
det(M)
To vám to povie det(M)==3*k+3
, ktoré môžete vyriešiť ručne. Ale vo všeobecnosti môžete požiadať Matlab o jeho vyriešenie:
solve(det(M)==0,k);
ktorá vám povie, že odpoveď je -1
, Takže pokiaľ nie k==-1
, tieto vektory sú lineárne nezávislé (t. j. tvoria základ euklidovského priestoru R^3
).
aktualizácia: Ak ty don "t majú Symbolic Math Toolbox, môžete sa pokúsiť nájsť číselné riešenie. Najprv definujte funkciu
detfun=@(k) det([1 k 0; -1 1 2; 0 0 3]);
to pre akúkoľvek hodnotu k
dá vám napríklad determinant vašej matice detfun(3)
dáva 12. Potom môžete použiť fsolve
nájsť numerické riešenie rovnice detfun(k)==0
, volaním
fsolve(detfun,0)
v ktorom druhý argument, 0
, označuje začiatočný bod vyhľadávania, ktorý vykonáva fsolve
, To vám povie, že odpoveď je k==-1
, ale na jeden hovor fsolve
vám poskytne iba jedno riešenie. Ak má vaša funkcia viac koreňov, musíte sa pohrať s východiskovými bodmi, aby ste ich našli viac. V takom prípade môžete vedieť, že vaša funkcia (t. det(M(k))
je lineárny v k
, takže má jedinečný koreň.