前言:
现时咱们对“matlab二分法求根程序”都比较注重,大家都想要剖析一些“matlab二分法求根程序”的相关资讯。那么小编同时在网络上收集了一些关于“matlab二分法求根程序””的相关文章,希望朋友们能喜欢,兄弟们一起来学习一下吧!上篇文章我们讲了从一元二次方程到一元四次方程,都是存在公式解的。就是之前的数学家们已经将四次(包含四次)以下的方程研究非常透彻,大家在求根的时候,直接使用现成公式就能解答。而五次以上方程被数学家伽罗瓦给证明了不存在一般代数公式解法。但很明显,也很容易就能知道,有些高次方程的根是存在的,只是数学上证明出了没有统一的公式解,一个不同的五次方程解法可能各不同。这样随着次数增加,难度将非常大。
随着进一步研究,大家发现高次方程求精确根是非常困难的。学过高数的同学肯定马上想到,既然精确根很难,那就只能是无穷逼近了。没错的,17世纪牛顿提出的一种使用很简单的近似求解方程方法。而这套方法无论方程的次数多高,只是增加运算量而已,复杂度并没有提升。这种办法以他自己名字命名----牛顿迭代法。
牛顿迭代法也很简单,主要是使用函数f(x)的泰勒级数前几项来寻找方程f(x) = 0的近似根,而这种方法好处是可以让方程f(x) = 0在根附近快速收敛(意味着能快速出结果)。另外我们知道泰勒级数是无穷项的,到底使用泰勒级数的前几项呢?因为前几项占很大比重,具体计算用多少项,完全有精度来决定,一般取前5项,就能保证常用精度。
具体方法就是:设r是f(x)=0的根,选取x0作为r的初始近似值,过点(x0,f(x0))做函数曲线y=f(x)的切线,切线方程为:
求出切线与x轴交点的横坐标 x1:
我们称x1为r的一次近似值,当然精度是非常差。继续过点(x1,f(x1))做函数曲线y=f(x)的切线,并求出切线与x轴交点的横坐标 x2:
称x2为r的二次次近似值,当然精度还是不够。继续重复以上过程,得到r的近似值序列:
称为r的n+1次近似,这就是牛顿迭代法。从算法上看,简单但需要重复计算,精度可以由迭代次数决定。非常适合程序上使用。
下面来看看我们文中那个五次方程如何用这种办法来求根。这个五次方程很特殊,可以化简来解的,这里只是给大家展示一下算法。我们先假设它的根x0为2,这个数可以随便假设,只是假设离实际根越接近,迭代次数很少的情况就能保证高精度。离实际根越远,需要迭代次数越多,这个很容易理解的。
从上面计算可以看出,每次计算都更加逼近实际根,所以初始值的选择影响到迭代次数。这里只计算了4步,有兴趣朋友可以继续计算,数值会逼近于1,而1正是这个方程的一个根。在得到其中一根后,就可将其化成低次多项式方程,剩余的根一定在这个低次多项式方程中,就很容易计算出来其他根了。
好了,现在已经将高次方程如何快速求根的方法讲给了大家,这也是我们能利用计算机软件(例如MATLAB)快速求解的方法之一。如果大家有兴趣,可以翻阅更多工程数学的书籍来进一步了解,甚至可以使用C语言编写一个代码来验证一下。
原创内容,请尊重作者。
标签: #matlab二分法求根程序