maxima multiple trigonometric equations

2019-09-04 09:47发布

问题:

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.