I’d like to use sympy to solve he following equation in terms of x, g, and w.
Here’s what I thought I should code
from sympy import *
w, a, x, g = symbols('w a x, g', real=True)
lhs = 1/g*(w-a)**g
rhs = 1/(2*g)*(w-x)**g + 1/(2*g)*(w+x)**g
solve((lhs,rhs), (x,g,w))
But this seems to be trying to solve for a numerical answer.
Advertisement
Answer
You can create a 2-sided equation with Eq:
In [52]: Eq(lhs, rhs)                                                                                                                          
Out[52]: 
        g          g          g
(-a + w)    (w - x)    (w + x) 
───────── = ──────── + ────────
    g         2⋅g        2⋅g 
When you say that you want to solve “in terms of x, g and w” I’m not sure I understand what you mean. Do you mean that you want to solve for a in terms of the others? If so then you just have to ask to solve for a:
In [53]: solve(Eq(lhs, rhs), a) Out[53]: ⎡ -1 ⎤ ⎢ ─── _____________________⎥ ⎢ g g ╱ g g ⎥ ⎣w - 2 ⋅╲╱ (w - x) + (w + x) ⎦
