「ベクトル関数のニュートン・ラフソン法」のプログラムを作りました。
関数 があるとしますf(x,y)=(x-y,x+y^2)
。ヤコビ行列は[1,-1;1,2*y]
です。次にr=symvar(jacobian)
、それを評価するために、 を使用しますsubs(jacobian,r,x0)
。
x0=(0,0)
最初の変数が表示されない場合、行列を評価するにはどうすればよいx
ですか?
「ベクトル関数のニュートン・ラフソン法」のプログラムを作りました。
関数 があるとしますf(x,y)=(x-y,x+y^2)
。ヤコビ行列は[1,-1;1,2*y]
です。次にr=symvar(jacobian)
、それを評価するために、 を使用しますsubs(jacobian,r,x0)
。
x0=(0,0)
最初の変数が表示されない場合、行列を評価するにはどうすればよいx
ですか?
私はあなたがあなたの(そして私の)人生を複雑にしようとしている理由について頭を悩ませています。
jacobianを計算する必要はありません。Matlabはjacobian
関数を使用して計算します(最初に、ワークスペースからjacobian変数インスタンスを削除する必要があります)
jak = jacobian(f);
次に、このeval
関数を使用して入札を行うことができます。
x = 0, y = 0;
eval(jak)
ans =
1.00 -1.00
1.00 0
jacobian の式に x が表示されない場合、その値は結果の jacobian に影響を与えないことを意味します。
あなたの質問が評価方法である場合:
[1,-1;1,2*y]
x と y が両方とも 0 の場合、答えは非常に単純です。
[1,-1;1,2*0]
要約すると、次のようになります。
[1,-1
1, 0]
他のユーザーがすでに提案したように、この代替ソリューションに従うことができます
syms x y
jacobian([x - y,x + y.^2])
x = 0
入力するだけで評価するには
subs(jacobian([x - y,x + y.^2]),0)
これが役立つことを願っています。