私はfsolveで方程式/未知数の可変数(N
)の行列方程式を解いています。 N=2,3
の問題の例を示しましたが、各例の最後の行では、それぞれの式をfsolveに 'ハードコード'する必要があります。 N
が変数の場合、これは機能しません。私の質問:fsolveをさまざまな数の方程式で呼び出すにはどうすればいいですか?唯一の問題は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に応じたソリューションを持っている場合があります)。ありがとう。