用牛頓迭代法求方程:2x3-4x2+3x-6=0在1.5附近的根(精度:10-5)
什么是牛頓迭代法?

求方程的根,可以轉(zhuǎn)換為求函數(shù)f(x)=2x3-4x2+3x-6的根
根據(jù)牛頓切線迭代法,我們可以設(shè)x0=1.5,
設(shè)切線方程為:y=kx+b
K=f(x)求導(dǎo)=F(x)
切線方程過點(diǎn)(x0,f(x0))得:f(x0)=kx0+b,可知b=f(x0)-kx0;
求切線方程與x軸的焦點(diǎn)x1的值:0=kx1+b,得x1=-(b/k),將b和k帶入得:
x1=-( f(x0)-kx0)/ F(x)=-( f(x0)- F(x)*x0)/ F(x)=x0-f(x0)/F(x0)
程序循環(huán)部分:
將x1的值存入x0,根據(jù)x1的公式求出下一個(gè)x1的值。
循環(huán)結(jié)束條件:x1-x0的絕對(duì)值小于10-5
當(dāng)循環(huán)結(jié)束時(shí),輸出方程的根x1。
程序代碼如下:
//習(xí)題5.14用牛頓迭代法求方程在1.5附近的根
#include<stdio.h>
#include<math.h>
int main()
{
????? double x0,x1,f,f1;
????? x1=1.5;
????? do
????? {
??????????? x0=x1;
??????????? f=(((2*x0-4)*x0)+3)*x0-6;
??????????? f1=(6*x0-8)*x0+3;
??????????? x1=x0-f/f1;
????? }while(fabs(x1-x0)>1e-5);
????? printf("the root of equation is %5.2lf",x1);// the root of equation:方程的根/解
????? return 0;
?}