python解方程 |
您所在的位置:网站首页 › 二元一次方程根的求解 › python解方程 |
文章目录
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 |