我的目标是找到u作为函数的x和y使用症状模块。方程是:1.
答案应该是:
from sympy import cosh, sinh, symbols, sin, cos, Eq u, v, x, y = symbols('u, v, x, y') eqq1 = Eq(x, sin(u)*cosh(v)) eqq2 = Eq(y, cos(u)*sinh(v))
接下来呢?我试过了
result = solve((Eqq1, Eqq2), u, v)
显然这不是正确的方式。
hrysbysz1#
这可能不是您所期望的答案,但是您可以通过删除v来重新解决该问题,如下所示:
v
(x cos u)² - (y sin u)² = cos²u sin²u
则t = sin²u的方程为二次方程:
t = sin²u
x² (1 - t) - y² t = (1 - t) t
irlmq6kh2#
将x方程的每一边除以cosh(v),将y方程的每一边除以sinh(v)。求所有边的平方。将sinh(v)**2替换为z,将cosh(v)**2替换为1 + z。方程的lhs之和为1。差值为cos(2u)。您可以求解cos(2u)和z,并计算出与您所寻找的值接近的值。
sinh(v)**2
cosh(v)**2
>>> from sympy import x, y, z, v, u >>> from sympy import cosh,sinh,cos,Tuple,solve >>> e1 = x**2/cosh(v)**2 + y**2/sinh(v)**2-1 >>> e2 = y**2/sinh(v)**2-x**2/cosh(v)**2-cos(2*u) >>> solve(Tuple(e1,e2).subs(cosh(v)**2,1+z).subs(sinh(v)**2,z), z, cos(2*u), dict=True) [ {z: x**2/2 + y**2/2 - sqrt((x**2 - 2*x + y**2 + 1)*(x**2 + 2*x + y**2 + 1))/2 - 1/2, cos(2*u): -x**2 - y**2 - sqrt((x**2 - 2*x + y**2 + 1)*(x**2 + 2*x + y**2 + 1))}, {z: x**2/2 + y**2/2 + sqrt((x**2 - 2*x + y**2 + 1)*(x**2 + 2*x + y**2 + 1))/2 - 1/2, cos(2*u): -x**2 - y**2 + sqrt((x**2 - 2*x + y**2 + 1)*(x**2 + 2*x + y**2 + 1))}]
2条答案
按热度按时间hrysbysz1#
这可能不是您所期望的答案,但是您可以通过删除
v
来重新解决该问题,如下所示:则
t = sin²u
的方程为二次方程:irlmq6kh2#
将x方程的每一边除以cosh(v),将y方程的每一边除以sinh(v)。求所有边的平方。将
sinh(v)**2
替换为z,将cosh(v)**2
替换为1 + z。方程的lhs之和为1。差值为cos(2u)。您可以求解cos(2u)和z,并计算出与您所寻找的值接近的值。