python - 如何在 Python 上找到非常复杂的方程的根?
问题描述
如何在 Python 上解决这个问题 (f(r)=0)?:
def f(r):
return -6*r**2*(pi - 1/cos(2.4e-6*sqrt(3)/r)) - 3*r**2*(2*cos(pi/6 - 1/cos(2.4e-6*sqrt(3)/r))*cos(1/cos(2.4e-6*sqrt(3)/r)) - pi/2 + 1/cos(2.4e-6*sqrt(3)/r)) - (-2.88e-5*sqrt(3) + 0.000207846096908265)*cos(pi/6 - 1/cos(2.4e-6*sqrt(3)/r)) + 5.19615242270663e-10
解决方案
一种选择是使用scipy.optimize.root
. 你只需要传递一个初步的猜测。
from scipy.optimize import root
initial_guess = 1
solution = root(fun=f, x0=initial_guess)
print(solution)
# fjac: array([[-1.]])
# fun: array([-4.73292067e-21])
# message: 'The solution converged.'
# nfev: 50
# qtf: array([7.59795519e-16])
# r: array([-99.77979489])
# status: 1
# success: True
# x: array([1.46358719e-06])
作为检查,我们可以将解决方案重新插入您的函数:
print(f(solution.x[0]))
#-4.732920669875286e-21
本质上是0。
推荐阅读
- wpf - 点击后WPF app.xaml按钮,不恢复正常图像
- linux - 无法使用适用于 Windows 10 的 Cygwin 在 ffmpegthumbnailer 设置文件上使用 Makefile
- c - 如果 c 中的字符串相同,则返回 0,代码中发生了什么?
- python-3.x - 美丽的汤复杂 ui li 的标签
- r - 解析“目录”以获得正确的页码
- algorithm - 算法输出的混乱
- android - 应用程序意外崩溃
- javascript - jQuery - 多个模态单独处理
- php - 在 Woocommerce 3 中以编程方式更新产品库存
- javascript - 如何使用 jQuery 每个从 DOM 将数据加载到 JS 对象的数组中