0

「ベクトル関数のニュートン・ラフソン法」のプログラムを作りました。

関数 があるとしますf(x,y)=(x-y,x+y^2)。ヤコビ行列は[1,-1;1,2*y]です。次にr=symvar(jacobian)、それを評価するために、 を使用しますsubs(jacobian,r,x0)

x0=(0,0)最初の変数が表示されない場合、行列を評価するにはどうすればよいxですか?

4

3 に答える 3

2

私はあなたがあなたの(そして私の)人生を複雑にしようとしている理由について頭を悩ませています。

  1. jacobianを計算する必要はありません。Matlabはjacobian関数を使用して計算します(最初に、ワークスペースからjacobian変数インスタンスを削除する必要があります)

    jak = jacobian(f);
    
  2. 次に、このeval関数を使用して入札を行うことができます。

    x = 0, y = 0;
    eval(jak)
    
    ans =
    
      1.00         -1.00
      1.00             0
    
于 2013-01-20T14:59:10.420 に答える
1

jacobian の式に x が表示されない場合、その値は結果の jacobian に影響を与えないことを意味します。

あなたの質問が評価方法である場合:

[1,-1;1,2*y]

x と y が両方とも 0 の場合、答えは非常に単純です。

[1,-1;1,2*0]

要約すると、次のようになります。

[1,-1
 1, 0]
于 2013-01-20T14:26:40.953 に答える
0

他のユーザーがすでに提案したように、この代替ソリューションに従うことができます

syms x y
jacobian([x - y,x + y.^2])

x = 0入力するだけで評価するには

subs(jacobian([x - y,x + y.^2]),0)

これが役立つことを願っています。

于 2013-01-21T11:00:48.377 に答える