finding the unknowns in a matrix

1 次查看(过去 30 天)
B =
1.0e+06 *
0.6064 -0.4550 0.0776 -0.6532 0.4550 0.0126
-0.4550 1.6724 0.0180 0.4550 -0.3209 0.0180
0.0776 0.0180 0.3626 -0.0126 -0.0180 0.0569
-0.6532 0.4550 -0.0126 1.0029 -0.4550 0.5070
0.4550 -0.3209 -0.0180 -0.4550 4.4121 -0.0180
0.0126 0.0180 0.0569 0.5070 -0.0180 0.9314
D1 =
1
a
b
c
d
e
how can i find the unkowns a b c d e if [B]*[D1]==0
please give me all the details because i'm new to MATLAB and i'm still learning it
And thank you in advanced.
  2 个评论
Walter Roberson
Walter Roberson 2020-9-28
The rank of that matrix is 6 to the precision of what you posted, but you only have 5 unknowns. You will not be able to get an exact solution, only a best fit (under some meaning of "best")
jad bousaid
jad bousaid 2020-9-29
In fact, there is more than one solution,and if we had 6 unkowns, all the answers would be zeros so that's why i put the 1 and there is 5 unkowns and i don't need an exact solution, i just need one if it exicte,with the methode details please.
thank you very much..

请先登录,再进行评论。

采纳的回答

Bruno Luong
Bruno Luong 2020-9-29
More "robust" method
[~,~,V] = svd(B);
D1 = V(:,end);
D1 = D1/D1(1);

更多回答(1 个)

Bruno Luong
Bruno Luong 2020-9-28
[~,R,P] = qr(B);
D1 = P*[R(1:end-1,1:end-1)\R(1:end-1,end); -1];
D1 = D1/D1(1)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品


版本

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by