牛顿迭代法c 语言程序,牛顿迭代法 c语言实现
#include
#include
double func(double x) //函數(shù)
{
return x*x*x*x-3*x*x*x+1.5*x*x-4.0;
}
double func1(double x) //導(dǎo)函數(shù)
{
return 4*x*x*x-9*x*x+3*x;
}
int Newton(double *x,double precision,int maxcyc) //迭代次數(shù)
{
double x1,x0;
int k;
x0=*x;
for(k=0;k
{
if(func1(x0)==0.0)//若通過初值,函數(shù)返回值為0
{
printf("迭代過程中導(dǎo)數(shù)為0!\n");
return 0;
}
x1=x0-func(x0)/func1(x0);//進行牛頓迭代計算
if(fabs(x1-x0)
{
*x=x1; //返回結(jié)果
return 1;
}
else //未達到結(jié)束條件
{
x0=x1; //準(zhǔn)備下一次迭代
}
}
printf("迭代次數(shù)超過預(yù)期!\n"); //迭代次數(shù)達到,仍沒有達到精度
return 0;
}
int main()
{
double x,precision;
int maxcyc;
printf("輸入初始迭代值x0:");
scanf("%lf",&x);
printf("輸入最大迭代次數(shù):");
scanf("%d",&maxcyc);
printf("迭代要求的精度:");
scanf("%lf",&precision);
if(Newton(&x,precision,maxcyc)==1) //若函數(shù)返回值為1
{
printf("該值附近的根為:%lf\n",x);
}
else //若函數(shù)返回值為0
{
printf("迭代失敗!\n");
}
getch();
return 0;
}
牛頓迭代法
總結(jié)
以上是生活随笔為你收集整理的牛顿迭代法c 语言程序,牛顿迭代法 c语言实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算演进历程与模式 - 初识云计算知识
- 下一篇: 武汉链家怎么样 了解武汉链家房产中介的服