Symbolic Math trigonometry simplification

1 次查看(过去 30 天)
Hi, I wrote a mfile code using the symbolic math toolbox.
xd=147;
xq=-85;
w0=377;
syms a d q w t
b=d*cos(w*t+(4*pi/3))-q*sin(w*t+(4*pi/3));
xb1=subs(b,[d,q,pi,w],[xd,xq,3.14,w0]);
simplify(xb1)
However, this simply displays the answer--- -147*cos(377*t+314/300)-85*sin(377*t+314/300)
I want to (1)extract the angle (ie.. 314/300) from this expression and (2)want to express answer in the form of cos(377t+theta)
How may I do this?
Thank you.

回答(1 个)

Walter Roberson
Walter Roberson 2011-10-9
I recommend that you use MuPad's op() to pull apart the expression, perhaps in connection with indets().
The expression as a whole cannot be expressed as in the form A*cos(B*t+theta) .
Note: pi is not a symbol in what you have constructed, so 4*pi/3 would be numerically expanded in the construction of b. There would thus be no symbol pi and no constant equal to pi available to substitute 3.14 for pi.
When you are working with trig, it is best to use symbolic forms unless that is impractical. For example, sin(4*pi/3) might come out differently than sin(sym('4*pi/3')) because the first would have to deal with round-off error but the second would not.

类别

Help CenterFile Exchange 中查找有关 Assumptions 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by