首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python上找到非常复杂的方程的根?

如何在Python上找到非常复杂的方程的根?
EN

Stack Overflow用户
提问于 2018-06-23 03:12:03
回答 1查看 384关注 0票数 0

如何在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
EN

回答 1

Stack Overflow用户

发布于 2018-06-23 03:54:17

一种选择是使用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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50994300

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档