我正在求解矩陣方程fsolve方程/未知數(N
)。我提供了N=2,3
的問題示例,但在每個示例的最後一行中,我必須將每個方程「硬編碼」爲fsolve。如果N
是一個變量,這將不起作用。我的問題:如何在可變數量的方程上調用fsolve(在這種情況下,一般爲N)?唯一的問題是調用fsolve。使用fsolve(Matlab)求解變量數的方程組
clear all
N = 2;
M(:,:,1) = rand(N);
M(:,:,2) = rand(N);
eqn = @(E,n) det(eye(N)-M(:,:,n)*diag(E));
%how do I write this line if I don't know what N is??
[E_values, Fval, Fflag] = fsolve(@(E) [eqn(E,1);eqn(E,2)],[1,1])
或爲N=3
將是:
clear all
N = 3;
M(:,:,1) = rand(N);
M(:,:,2) = rand(N);
M(:,:,3) = rand(N);
eqn = @(E,n) det(eye(N)-M(:,:,n)*diag(E));
%how do I write this line if I don't know what N is??
[E_values, Fval, Fflag] = fsolve(@(E) [eqn(E,1);eqn(E,2);eqn(E,3)],[1,1,1])
(請注意,這可能會或可能不會有一個解決方案取決於M,這是確定)。謝謝。