maxima multiple trigonometric equations

巧了我就是萌 提交于 2019-12-12 04:52:12

问题


I'm trying to solve an equation using maxima 13.04.2 but the answer isn't what I expect. Example:

y2=A2*cos(2*pi*f2*t+phase2)  we know A2=.4,f2=6.4951,t=1, trying to find **phase2** 
y2=.4*cos(2*pi*6.4951+phase2)

I tried to solve the y2 equation for phase2 in maxima but it got rid of the cos function

kill(all);
A:A; phase:phase; solve(A*cos(2*pi*f*t+phase)=0,phase);

The answer that came back was

I thought something like this was suppose to come back

y2 = A2×cos(2πf2t + φ2) ⇒

y2/A2 = cos(2πf2t + φ2) ⇒

arccos(y2/A2) = 2πf2t + φ2 ⇒

arccos(y2/A2) - 2πf2t = φ2

so I could then plug in the vales A2 = 0.4, f2 = 6.4951, t = 1 and get the phase

Any ideas how to get maxima to get the correct format? PS: Yes I know I can do it by hand but I have thousands of equations like this and I plan on using octave arrays to call maxima to solve them and bring the answers back into octave.


回答1:


Well, it seems straightforward.

(%i1) e:A*cos(2*%pi*f*t + phi) = y;
(%o1)                     cos(2 %pi f t + phi) A = y
(%i2) solve (e, phi);
solve: using arc-trig functions to get a solution.
Some solutions will be lost.
                                      y
(%o2)                     [phi = acos(-) - 2 %pi f t]
                                      A
(%i3) subst ([A = 0.4, f = 6.4951, t = 1], %o2);
(%o3)                  [phi = acos(2.5 y) - 12.9902 %pi]

Couple of notes. (1) solve can solve this equation, which is good, but bear in mind that it is fairly limited in its capability, and you can probably make up other equations that it can't solve. There are some other options for solving equations in Maxima, but it general that is a weak area. (2) Maybe instead of switching back and forth between Maxima and Octave, you can just code equation %o2 in Octave and evaluate that for different values of the parameters.



来源:https://stackoverflow.com/questions/26508179/maxima-multiple-trigonometric-equations

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!