1

x, yzが変数でp1, p2p3がパラメータであるこれらの 2 つの方程式があります。MATLAB は にx y z基づくパラメトリック/シンボリック ソリューションを見つけることができますp1, p2, p3か?

  • 2(x−p1)+2(xy−p3)y = 0
  • 2(y−p2)+2(xy−p3)x = 0
4

1 に答える 1

1

簡単に言えば、はい。すべての変数を取得し、 を使用symsして各変数を定義してシンボリック変数にし、 を使用solveして方程式を解いてください。2 つの方程式を 2 つのパラメータとして に指定しますsolve。出力 ( に格納します) は、フィールドとフィールドsolを含む構造体を返します。これは、方程式が 2 つの変数に関して定義され、パラメーターであるためです。つまり、次のようにします。xyp1,p2,p3

syms p1 p2 p3;
syms x y;
sol = solve(2*(x-p1)+2*(x*y-p3)*y == 0, 2*(y-p2)+2*(x*y-p3)*x == 0);

それぞれのフィールドにアクセスすることで、whatxとareのソリューションにアクセスできます。y

>> sol.x

ans =

(p1^3 + p3*p1^2*z1 + p1*z1^4 - 1.0*p2*p1*z1^3 + p1*z1^2 - 1.0*p2*p1*z1 + p3*z1^3 - 1.0*p2*p3*z1^2 + p3*z1 - 1.0*p2*p3)/(p1^2 + p3^2)

>> sol.y

ans =

z1

ただし、ソリューションがシンボルによってパラメーター化されていることを示す警告が表示されますが、これは予想されることです。具体的には:

Warning: The solutions are parametrized by the symbols:
z1 = RootOf(z^5 - p2*z^4 + 2*z^3 - z^2*(2*p2 - p1*p3) + z*(p1^2 - p3^2 + 1) - p1*p3 - p2, z)
于 2014-07-29T07:05:05.160 に答える