Error with matrix structure

1 vue (au cours des 30 derniers jours)
Cheng Yoong
Cheng Yoong le 3 Déc 2011
The following equation was taken from a textbook:
6 = 4cosθ1 + 3cos(θ1+θ2)
2 = 4sinθ1 + 3sin(θ1+θ2)
and the book suggested to solve the unknown θ1 and θ2 using following command:
>>S =
solve('4*cos(th1)+3*cos(th1+th2)=6','4*sin(th1)+3*sin(th1+th2)=2')
S =
th1:[2x1 sym]
th2:[2x1 sym]
>>double(S.th1)*(180/pi)
ans =
-3.2981
40.1680
>>double(S.th2)*(180/pi)
ans =
51.3178
-51.3178
I did the same thing in Matlab but the matrix detected is as following:
S =
th1:[1x1 sym]
th2:[1x1 sym]
which gives me only one solution for th1 and th2. Anyone can tell me what's the problem?
  1 commentaire
Amith Kamath
Amith Kamath le 4 Déc 2011
I get the same results, although a simple substitution reveals that the second solution is correct too. Good question!

Connectez-vous pour commenter.

Réponses (1)

Walter Roberson
Walter Roberson le 4 Déc 2011
Recall that the symbolic toolbox used to use Maple and in newer versions uses MuPAD; this can lead to differences in solutions.
My observation is that in general MuPAD was weaker on finding roots of polynomials, but I have seen evidence that that has improved substantially in very recent versions.
When I try the equation in Maple, I get:
th1 = arctan((1/16) * RootOf(10*_Z^2-95-94*_Z), 47/48-(1/48) * RootOf(10*_Z^2-95-94*_Z))
th2 = -arctan(-47/45+(2/9)*RootOf(10*_Z^2-95-94*_Z))
which would appear at first glance to be a single solution. When, however, you examine the RootOf() you will note that they are roots of a quadratic and this each RootOf() stands for 2 solutions. When Maple's allvalues() operation is used, the solution expands to
th1 = arctan((-47-9*sqrt(39))/(-141+3*sqrt(39)))
th2 = -arctan((1/5)*sqrt(39))
th1 = arctan((47-9*sqrt(39))/(141+3*sqrt(39)))
th2 = arctan((1/5)*sqrt(39))
which comes out at the expected angles.
Note for this purpose that using double() or the symbolic eval() will only extract the "principle root" of the RootOf() structure, and so would only give one solution. I do not know what MuPad's equivalent to Maple's allvalues() function is.
  1 commentaire
Cheng Yoong
Cheng Yoong le 5 Déc 2011
Means there is no way to solve this? Or install older version can solve this problem?

Connectez-vous pour commenter.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by