Effacer les filtres
Effacer les filtres

Why the results are different when use different letters?

1 vue (au cours des 30 derniers jours)
Xizeng Feng
Xizeng Feng le 11 Mar 2022
Commenté : Xizeng Feng le 14 Mar 2022
I solve same equations in different ketters and got fifferent results as follow:
But rs=a, xs=b, rp=c and xp=d. the equations are same!
>> syms rs xs rp xp;
>> [rp,xp]=solve(rs*rp^2+rs*xp^2==xp^2*rp,xs*rp^2+xs*xp^2==rp^2*xp)
rp =
-(rp*(rs*(rp - rs))^(1/2))/(rp - rs)
(rp*(rs*(rp - rs))^(1/2))/(rp - rs)
xp =
-(rs*(rp - rs))^(1/2)
(rs*(rp - rs))^(1/2)
-------------------------------------------------------------
>> syms a b c d
>> [c,d]=solve(a*c^2+a*d^2==c^2*d,b*c^2+b*d^2==d^2*c)
c =
0
(a^2 + b^2)/b
d =
0
(a^2 + b^2)/a

Réponse acceptée

Walter Roberson
Walter Roberson le 12 Mar 2022
You are not specifying which two variables to solve for, so solve() is using symvar() and picking the first two variables.
With the different names involved, the relative order of the variables in symvar() is different than you are expecting.
  3 commentaires
Walter Roberson
Walter Roberson le 12 Mar 2022
syms rs xs rp xp
[rp,xp]=solve(rs*rp^2+rs*xp^2==rp^2*xp, xs*rp^2+xs*xp^2==xp^2*rp, [rp, xp])
rp = 
xp = 
Xizeng Feng
Xizeng Feng le 13 Mar 2022
thank you very much for your kindly help. I learned more about the symbolic operations now.

Connectez-vous pour commenter.

Plus de réponses (2)

DGM
DGM le 11 Mar 2022
They are not the same.
syms rs xs rp xp;
[rp,xp] = solve( rs*rp^2+rs*xp^2 == xp^2*rp, xs*rp^2+xs*xp^2 == rp^2*xp)
syms a b c d
[c,d] = solve( a*c^2+a*d^2 == c^2*d, b*c^2+b*d^2 == d^2*c)
The RHS of both equations don't correspond. You'll have to decide which one is which.

Jan
Jan le 11 Mar 2022
Modifié(e) : Jan le 11 Mar 2022
Because the equations are different:
syms rs xs rp xp
syms a b c d
[rp, xp] = solve(rs * rp^2 + rs * xp^2 == xp^2 * rp, xs * rp^2 + xs * xp^2 == rp^2 * xp)
[c, d] = solve(a * c^2 + a * d^2 == c^2 * d, b * c^2 + b * d^2 == d^2 * c)
% ^ ?! ^
You see, the replacement is not performed exactly. The term xp is converted twice to c instead of d.
  6 commentaires
Jan
Jan le 13 Mar 2022
It is an important point to see, that the equations are not equal and that spaces around operators do matter.
Xizeng Feng
Xizeng Feng le 14 Mar 2022
Yes, I'll remember this point.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by