首页 > 解决方案 > 我可以在 python 的 bessel 函数中找到一个变量吗?

问题描述

我正在使用 Python 来求解方程。我在 scipy.special 中添加了“贝塞尔函数”,它正在工作。现在我想使用 Bessel 函数找到一个变量。例如,我在 Python 中添加了order(1)and 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))

标签: pythonpython-3.xscipy

解决方案


由于输出提示,该函数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

推荐阅读