python或matlab中的数值和解析方程求解

时间:2017-05-13 16:23:11

标签: python matlab numerical-methods equation-solving

假设我有两个超越函数f(x, y) = 0g(a, b) = 0

a和b取决于y,所以如果我能分析地解析第一个方程y y = f(x),我可以让第二个函数仅依赖于x,从而以数字方式求解它。

我更喜欢使用python,但如果matlab能够处理,这对我来说没问题。

有没有办法用python / matlab解决变量的分析tracecendent函数?泰勒也很好,只要我可以选择近似的顺序。

1 个答案:

答案 0 :(得分:0)

我尝试通过Sympy这样运行:

import sympy

j, k, m, x, y = sympy.symbols("j k m x y")
eq = sympy.Eq(k * sympy.tan(y) + j * sympy.tan(sympy.asin(sympy.sin(y) / x)), m)
eq.simplify()

将您的等式变为

Eq(m, j*sin(y)/(x*sqrt(1 - sin(y)**2/x**2)) + k*tan(y))

,经过一点点戳之后,给了我们

k * tan(y) + j * sin(y) / sqrt(x**2 - sin(y)**2) == m

我们可以找到x(y)的表达式

sympy.solve(eq, x)

返回

[-sqrt(j**2*sin(y)**2/(k*tan(y) - m)**2 + sin(y)**2),
 sqrt(j**2*sin(y)**2/(k*tan(y) - m)**2 + sin(y)**2)]

y(x)的分析解决方案失败。