編程學習網 > 編程語言 > C/C++開發(fā) > c語言編程迭代法求方程的根
2022
11-22

c語言編程迭代法求方程的根

c語言編程迭代法求方程的根

今天編程學習網為大家講解c語言編程迭代法求方程的根,有需要的小伙伴可以參考一下:

一、迭代法求方程根

/* 迭代法求一個數的平方根 */

#define Epsilon 1.0E-6 /*控制解的*/

#include

main()

{

float a,x0,x1;

printf("請輸入要求的數:");

scanf("%f",&a);

x0=a/2;

x1=(x0+a/x0)/2;

while(fabs(x1-x0)>=Epsilon)

{

x0=x1;

x1=(x0+a/x0)/2;

}

printf("%f的平方根:%f.5\n",x1);

}

二、求方程根的另一種算法

#define Epsilon 1.0E-6 /*控制解的精度*/

#include

#include

main()

{

float num,pre,this;

do

{

scanf("%f",&num);/*輸入要求平方根的數*/

}while(num<0);

if (num==0)

printf("the root is 0");

else

{

this=1;

do

{

pre=this;

this=(pre+num/pre)/2;

}while(fabs(pre-this)>Epsilon);/*用解的精度,控制循環(huán)次數*/

}

printf("the root is %f",this);

}

三、用牛頓迭代法

求方程 2*x*x*x-4*x*x+3*x-6 的根

/* 牛頓迭代法 */

#define Epsilon 1.0E-6 /*控制解的精度*/

#include

main()

{

float x1,x0=1.5;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);

while(fabs(x1-x0>=Epsilon)

{

x0=x1;

x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3);

}

printf("方程的根為%f\n",x1);

}

四、用二分法求上題

/* 二分法 */

#define Epsilon 1.0E-5 /*控制解的精度*/

#include

main()

{

folat x1,x2,x0,f1,f2,f0;

x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6;   /* 求中點的函數值 */

while(fabs(f0)>=Epsilon)

{

if(f0*f1<0)

{ x2=x0;

f2=2*x2*x2*x2-4*x2*x2+3*x2-6;

}

if(f0*f2<0)

{ x1=x0;

f1=2*x1*x1*x1-4*x1*x1+3*x1-6;

}

x0=(x1+x2)/2;

f0=2*x0*x0*x0-4*x0*x0+3*x0-6;

}

printf("用二分法求得方程的根:%f\n",x0);

}

以上就是“c語言編程迭代法求方程的根”的詳細內容,想要了解更多C語言教程歡迎持續(xù)關注編程學習網

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取