牛顿迭代法介绍连载二应用篇

    技术2023-05-10  92

    今天我来运用运用牛顿迭代法进行实战了,主题是一个二次函数如图所示 我们需要计算当f(x)=0,x*x=3,这个x具体的值。其实质就是√3 的值,通过计算器我们得到他的值为1.7320508075688772。 但是我们的目的是通过手算得到这个值,所以需要运用牛顿迭代法。 首先二次函数上去一点(3,6),过点作x轴垂线于(3,0),并作过改点的二次函数的切线。如图所示: 如何计算切线的方程呢?我们学过点斜式求直线方程。 过点(a,b),斜率为k,直线为:y-b=k(x-a) 可是我们知道了点(3,6),可是不知道斜率k,怎么办呢? 这里需要引入一个k=f(x)’这个知识点(具体会写一篇导数文章解锁) f(3)=6,过(3,6)的切线为:y-6=6(x-3) 令y=0,得到x=2,作垂线交与二次函数,作切线如图: 可以看到非常接近了,我们继续计算这个值为1.75. f(1.75)=3.5,(1.75,0.0625)直线为:y-0.062=3.5(x-1.75) X=1.732142857,已经非常接近了,我用程序把过程写了一遍

    #include <stdio.h> main() { double x1,x0=3; while(1) { x0=x0-(x0*x0-3)/(x0*2); printf("过二次函数点(%.5lf,%.5lf)的点切线为y-%.5lf=%.5lf(x-%.5lf)\n",x0,x0*x0-3,x0*x0-3,x0*2,x0); if(x0-1.732050808<=1e-10) { break; } } printf("根号3的结果为%.20lf",x0); }

    通过上述材料我讲述了一个牛顿迭代法的简单运用,希望大家可以掌握牛顿迭代法的核心精髓,谢谢你的观看。

    Processed: 0.010, SQL: 10