how to solve this equation for several variables (with sympy?) [closed]
Hi, I found some similar questions but i can´t solve my problem with these answers. I use sagemath since 2 days and want to investigate a equation in dependence for all variables for that i try to solve it for any variables:
var('r h s phi theta d')
s_v=vector([s*cos(theta),-s*sin(theta)])
h_v=vector([h*sin(phi),-h*cos(phi)])
r_v=vector([r*cos(phi),r*sin(phi)])
f_v=r_v+h_v-s_v
def f(r,h,s,phi,theta): return norm(f_v(r=r,h=h,s=s,phi=phi,theta=theta))
eq1(r,h,s,phi,theta)=f(r,h,s,phi,theta)-f(r,h,s,0,theta)
solve([eq1(r,h,s,phi,theta)==4],r)
so i want to solve this equation for r (and later for all other variables) but the solution is shitty like this:
[sqrt(abs(s*cos(theta) - r)^2 + abs(s*sin(theta) - h)^2) ==
sqrt(abs(-h*cos(phi) - r*sin(phi) + s*sin(theta))^2 + abs(-r*cos(phi) +
s*cos(theta) + h*sin(phi))^2) - 4]
so no r=...
as far as i understood does the solve command has problem with sqrt() so i found the sympy command in this forum and tried to use like this(for me its not possible to take the equation befor the sympy announcement so i wrote an other example by hand:
var('r h s phi theta d')
s_v=vector([s*cos(theta),-s*sin(theta)])
h_v=vector([h*sin(phi),-h*cos(phi)])
r_v=vector([r*cos(phi),r*sin(phi)])
f_v=r_v+h_v-s_v
def f(r,h,s,phi,theta): return norm(f_v(r=r,h=h,s=s,phi=phi,theta=theta))
eq1(r,h,s,phi,theta)=f(r,h,s,-phi,theta)-f(r,h,s,0,theta)
from sympy import *
r,h,s,phi,theta,d=symbols('r h s phi theta d')
eq1= sqrt(r^2+h^2+s^2+2*s*cos(theta)*(-r*cos(phi)-h*sin(phi))+2*s*sin(theta)*(r*sin(phi)-h*cos(phi)))
from sympy.solvers import solve
solve(eq1, h)
But now i can´t variate the variables.
That is a very long question, it would be very nice if some of you make the afford and have a look at this. Thank you very much for this
very nice, thank you! how can i convert an sage expression to an sympy expression? i`d like to create the equation in sage and than solve it with sympy or is there a better way?
var('r h s phi theta d')
s_v=vector([s*cos(theta),-s*sin(theta)])
h_v=vector([h*sin(phi),-h*cos(phi)])
r_v=vector([r*cos(phi),r*sin(phi)])
f_v=r_v+h_v-s_v
def f(r,h,s,phi,theta): return norm(f_v(r=r,h=h,s=s,phi=phi,theta=theta))
from sympy import *
r,h,s,phi,theta,d=symbols('r h s ...