當前位置:編程學習大全網 - 編程語言 - C語言編程中,牛頓叠代法是什麽?

C語言編程中,牛頓叠代法是什麽?

牛頓叠代法是壹種常用的計算方法,這個大學大三應該學過。

具體為:設r是f(x) = 0的根,選取x0作為r初始近似值,過點(x0,f(x0))做曲線y = f(x)的切線L,L的方程為y = f(x0)+f'(x0)(x-x0),求出L與x軸交點的橫坐標 x1 = x0-f(x0)/f'(x0),稱x1為r的壹次近似值。過點(x1,f(x1))做曲線y = f(x)的切線,並求該切線與x軸交點的橫坐標 x2 = x1-f(x1)/f'(x1),稱x2為r的二次近似值。重復以上過程,得r的近似值序列,其中x(n+1)=x(n)-f(x(n))/f'(x(n)),稱為r的n+1次近似值,上式稱為牛頓叠代公式。

妳把這段文字認真仔細慢慢讀壹遍,把給的方程式寫出來,然後照這個在紙上畫出圖形,就會明白牛頓叠代法的概要了。

妳講的xopint?root?float?這些都是自己定義的函數。float是c語言中定義浮點型變量的寫法。

#include <iostream>

#include <math.h>

void main()

{

float f(float);

float xpoint(float,float);

float root(float,float);

float x,x1,x2,f1,f2;

do

{

printf("輸入x1,x2\n\n");

scanf("%f%f",&x1,&x2);

f1=f(x1);

f2=f(x2);

}while(f1*f2>0);

x=root(x1,x2);

printf("方程在1.5附近的根為:%f\n\n",x);

}

float f(float x)//定義壹個f函數,返回值y

{

float y;

y=2*x*x*x-4*x*x+3*x-6;

return(y);

}

float xpoint(float x1,float x2)//定義壹個帶返回值的函數即y,也就是求y的函數,main()中調用

{

float y;

y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));

return(y);

}

float root(float x1,float x2)//這也是定義壹個函數,是求根的函數,利用了上面自己定義的函數

{

float x,y,y1;

y1=f(x1);

do

{

x=xpoint(x1,x2);

y=f(x);

if(y*y1>0)

{

y1=y;

x1=x;

}

else

x2=x;

}while(fabs(y)>1e-4);

return(x);

}

建議妳看看c 語言教程,上面講得很詳細噢。

  • 上一篇:120W氮化鎵快充研發成功:國產芯片技術再創佳績
  • 下一篇:有限元分析軟件很多 大家給推薦壹個 國內流行的 謝謝 要詳細介紹和對比
  • copyright 2024編程學習大全網