Question

J'ai ces deux équations où x, y et z sont des variables et p1, p2 et p3 sont des paramètres.MATLAB peut-il trouver des solutions paramétriques/symboliques pour x y z basé sur p1, p2, p3?

  • 2(x−p1)+2(xy−p3)y = 0
  • 2(y−p2)+2(xy−p3)x = 0
Était-ce utile?

La solution

En termes simples, oui.Prenez toutes vos variables, utilisez syms pour définir chacune de vos variables afin qu'elles soient des variables symboliques, puis utilisez solve pour résoudre l'équation pour vous.Vous spécifiez les deux équations comme deux paramètres dans solve.La sortie (que nous stockerons dans sol) renverra une structure contenant un x champ et un y champ, car votre équation est définie par rapport à deux variables, et p1,p2,p3 sont des paramètres.En d'autres termes, faites ceci :

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);

Vous pouvez accéder à la solution de quoi x et y se font en accédant à chacun de leurs champs respectifs :

>> 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

Vous recevrez cependant un avertissement indiquant que la solution est paramétrée par des symboles, mais il faut s'y attendre.Spécifiquement:

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)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top