我正在使用Python求解方程式。我在scipy.special中添加了“贝塞尔函数”,它正在工作。现在,我想使用贝塞尔函数找到一个变量。例如,我在Python中添加了order(1)
和value(0.44005058574)
,但是它不起作用。 (为了找到变量,我还使用了solver
)
我该如何解决问题?
import numpy as np
import scipy.special as sc
import math
from sympy import Symbol
from sympy.solvers import solve
x=Symbol('x')
y=sc.jn(1,x)-0.44005058574
print(solve(x))
答案 0 :(得分:1)
由于输出提示,函数scipy.special.jn
不知道如何处理x
中的对象simpy
。相反,您应该使用数值方法
>>> from scipy import optimize
>>> f = lambda x: sc.jn(1, x) - 0.44005058574
>>> root = optimize.newton(f, 1.0)
>>> print(root)
0.9999999999848267