王朝百科
分享
 
 
 

试位法

王朝百科·作者佚名  2010-06-11  
宽屏版  字体: |||超大  

试位法

试位法(False Position)(in Latin,regula falsi)试位法是在计算机工具非常落后的条件下人满为了改进二分法而得到的一个方法。由于算法原理有其合理性的一面,所以在今天的计算机条件下,在一些特定条件下还可继续发挥作用。

对于f(x)=0在区间[a,b]内的解,二分法给出的近似解为区间的终点x=(a+b)/2.0,并没有利用f(a),f(b)所提供的信息。从这个意义上讲,试位法是对二分法的改进。

如图所示,假如求连续函数y=f(x)在区间[a,b]内的零点x',且已知f(a)与f(b)异号。试位法就是过平面上的(a,f(a)),(b,f(b))这两点做直线,然后取这条直线与x轴的交点x0做为近似解。接下来与二分法类似,根据f(x0)的符号决定用x0替代a还是替代b,从而形成一个算法。在这个计算的过程中,前面已经得到的函数值在下一步计算中又发挥了一定的作用。实现试位法的关键步骤是找到过平面上的(a,f(a)),(b,f(b))这两点的直线与x轴的交点,由直线的两

点方程式可得

y=f(b)+[f(b)-f(a)](x-b)/(b-a)

在上式中令y=0既可以得到

p=[f(b)-f(a)]/(b-a)

x=b-f(b)/p

当然可以利用上式得到的x替代二分法中的x=(a+b)/2,所以只有在二分法的算法框架中做这么一点修改,既可以形成一个新的算法,即试位法,而且只要把二分法的源程序复制一份,再做相应的修改,既可以得到试位法的程序。如图所示,试位法所得到的下一个近似解x0的几何位置把区间[a,b]划分成的两条线段之比正好等于f(a)|与|f(b)|之比,所以也有文献把试位法称之为比例法。又因为x0就连接曲线上两点弦与x轴的交点,所以也称弦线法。

可以预期,如果f(x)在[a,b]上的图像非常接近的一条直线,那么试位法的效果会明显优于二分法。然而实际情况并非总是如此,有时候也会不尽人意。如图,如果区间[a,b]的长度比较大,曲线y=f(x)在[a,b]内拐弯比较大(一阶导数值突然急剧增长),在这种情况下,试位法的效果一下子变得非常糟糕,反而不如二分法。

试位法

在图所示的情况下,试位法收敛慢的原因是|f(b)|>0,函数的零点x'比较接近b点,|f(a)|相对说来比较小,为了消除这种情况下的负面影响,可以对试位法做这样的改动;在程序中定义两个变量va,vb,并用f(a),f(b)分别给它们赋初值。在迭代过程中,如果用x替代a,则用f(x)替代va,而vb则乘以一个大于0小于1的常数因子w,比如可以取w=0.5;如果用f(x)替代vb,而将va乘以w。也许这种改进真正体现了“试位”的思想。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
如何用java替换看不见的字符比如零宽空格​十六进制U+200B
 干货   2023-09-10
网页字号不能单数吗,网页字体大小为什么一般都是偶数
 干货   2023-09-06
java.lang.ArrayIndexOutOfBoundsException: 4096
 干货   2023-09-06
Noto Sans CJK SC字体下载地址
 干货   2023-08-30
window.navigator和navigator的区别是什么?
 干货   2023-08-23
js获取referer、useragent、浏览器语言
 干货   2023-08-23
oscache遇到404时会不会缓存?
 干货   2023-08-23
linux下用rm -rf *删除大量文件太慢怎么解决?
 干货   2023-08-08
刀郎新歌破世界纪录!
 娱乐   2023-08-01
js实现放大缩小页面
 干货   2023-07-31
生成式人工智能服务管理暂行办法
 百态   2023-07-31
英语学习:过去完成时The Past Perfect Tense举例说明
 干货   2023-07-31
Mysql常用sql命令语句整理
 干货   2023-07-30
科学家复活了46000年前的虫子
 探索   2023-07-29
英语学习:过去进行时The Past Continuous Tense举例说明
 干货   2023-07-28
meta name="applicable-device"告知页面适合哪种终端设备:PC端、移动端还是自适应
 干货   2023-07-28
只用css如何实现打字机特效?
 百态   2023-07-15
css怎么实现上下滚动
 干货   2023-06-28
canvas怎么画一个三角形?
 干货   2023-06-28
canvas怎么画一个椭圆形?
 干货   2023-06-28
canvas怎么画一个圆形?
 干货   2023-06-28
canvas怎么画一个正方形?
 干货   2023-06-28
中国河南省郑州市金水区蜘蛛爬虫ip大全
 干货   2023-06-22
javascript简易动态时间代码
 干货   2023-06-20
感谢员工的付出和激励的话怎么说?
 干货   2023-06-18
 
>>返回首页<<
 
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有