python解方程

您所在的位置:网站首页 二元一次方程根的求解 python解方程

python解方程

2024-07-11 22:40| 来源: 网络整理| 查看: 265

文章目录 root_scalar参数差异测试

root_scalar

方程的根就是函数的零点,scipy.optimize提供了统一的一元函数求根方法,其函数定义为

scipy.optimize.root_scalar(f, args=(), method=None, bracket=None, fprime=None, fprime2=None, x0=None, x1=None, xtol=None, rtol=None, maxiter=None, options=None)

其中,f是待求根的函数,args为除了待求的自变量之外的其他函数。bracket为函数的两个异号端点,x0和x1为可能用到的根的估计值。

xtol, rtol与精度有关,越小越精,maxiter为最大迭代次数。

其中,method为最关键的参数,用来决定root_scalar采用的求根方法,其中一部分方法在optimize中实现了独立的函数,下表列出了这些方法的对应关系

参数估计参数独立方法备注‘bisect’bracket‘bisect’二分求根‘brentq’bracket‘brentq’brent方法‘brenth’bracket‘brenth’brent方法+双曲外推‘ridder’bracket‘ridder’ridder方法‘toms748’bracket‘toms748’我也不知道什么方法‘newton’x0‘newton’牛顿法‘secant’x0, x1-弦截法‘halley’x0-三阶方法

root_scalar的返回值是一个RootResults对象,里面的.root属性,即为所求的根。

具有独立函数的求根算法,参数与root_scalar大同小异,以bisect为例,其参数为

bisect(f, a, b, args=(), xtol=2e-12, rtol=8.881784197001252e-16, maxiter=100, full_output=False, disp=True)

其中,args, xtol, rtol, maxiter, full_output, disp为所有求根算法函数共有的参数,除此之外,求根函数的参数列表如下

toms748(f, a, b, k=1)bisect(f, a, b)brentq(f, a, b)brenth(f, a, b)ridder(f, a, b)newton(func, x0, fprime=None, fprime2=None, x1=None)

其中,(a,b)相当于root_scalar中的bracket,其他参数与root_scalar中含义相同。

参数差异

之所以会有(a,b)或是x0这种参数差别,可从二分法和牛顿法的原理来一窥一二。

二分法是最简单的求根算法,如果已知 f ( a ) ⋅ f ( b ) < 0 f(a)\cdot f(b)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3