solving equation symbolically for a given variable in Maxima

1k Views Asked by At

I can solve an equation using Maxima by using the commands below.

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

And it gives me the correct answer.

phase=acos(y/A)-2*f*pi*t

$$[\text{phase}=\arccos\frac y A -2 f \pi t ]$$

But when I try and solve for just the top portion of an equation the x(n+1) portion. Here's the equation.

$$x_{n+1}=\sin(ay_n)+c\cos(ax_n)$$ $$y_{n+1}=\sin(bx_n)+d\cos(by_n)$$

See website Clifford Attractor.

It's not what I expected. The equation I use is below:

kill(all);
x:x; a:a; c:c; n:n; solve(sin(a*y(n))+c*cos(a*x(n))=x*(n+1),x);

What I get is :

x=(sin(a*y(n))+c*cos(a*x(n)))/(n+1)

$$[x = \frac{ \sin(a y(n))+c \cos (ax(n))}{n+1}]$$

I expected it to be something like:

x[n] = sin(a*y[n-1])+c*cos(a*x[n-1]);

Any idea what I'm doing wrong?

I'm using wxMaxima 18.02.0 in ubuntu 18.04 64bit

1

There are 1 best solutions below

0
On BEST ANSWER

The command "kill (all) unbinds all items on all infolists".

The assignements x:x; a:a;... look rather useless to me and I would skip them. What is the purpose?

Maybe you want to do x:'x; and "clear" the value of xthis way. But kill(all) already did this.

Maxima does what you tell it to do. I think you actually want to calculate

solve(sin(a*y(n))+c*cos(a*x(n))=x(n+1), x(n+1))

If you do this then Maxima returns

[x(n+1) = sin(a*y(n))+c*cos(a*x(n))]

Note that x(n) is a function call and x[n] is accessing an array or list element.