牛顿迭代法求方程根
2005-06-14 21:08
155 查看
/**
***牛顿迭代法求方程根***
牛顿公式:x(k+1) = x(k) - f(x(k)) / f'(x(k))
迭代函数:Ф(x) = x - f(x) / f'(x)
属性:方程求根迭代法
此时的迭代函数必须保证X(k)有极限,即迭代收敛。
《数值分析简明教程》-2 Editon -高等教育出版社 -page 136 -算法流程图
代码维护:2005.6.14 DragonLord
**/
#include<iostream.h>
#include<math.h>
#include<stdio.h>
//范例程序中方程为:x*exp(x)-1=0
double f1(double x) //方程一阶求导的形式
{
return 1+x;
}
double f0(double x) //原方程形式
{
return x-exp(-x);
}
int main()
{
double x0,x1,e;
int N,k;
while(cin>>x0>>e>>N)
{
k=1;
loop: if(f1(x0)==0){cout<<"函数异常!"<<endl;break;}
else
{
x1=x0-f0(x0)/f1(x0); //key step
printf("x%d=%.5f/n",k,x1);
}
if(x1-x0<e&&x1-x0>-e)
{
printf("final result: x%d=%.5f/n",k,x1);
break;
}
else
{
if(k!=N)
{
k++;
x0=x1;
goto loop;
}
else
cout<<"迭代计算失败!"<<endl;
}
}
return 0;
}
***牛顿迭代法求方程根***
牛顿公式:x(k+1) = x(k) - f(x(k)) / f'(x(k))
迭代函数:Ф(x) = x - f(x) / f'(x)
属性:方程求根迭代法
此时的迭代函数必须保证X(k)有极限,即迭代收敛。
《数值分析简明教程》-2 Editon -高等教育出版社 -page 136 -算法流程图
代码维护:2005.6.14 DragonLord
**/
#include<iostream.h>
#include<math.h>
#include<stdio.h>
//范例程序中方程为:x*exp(x)-1=0
double f1(double x) //方程一阶求导的形式
{
return 1+x;
}
double f0(double x) //原方程形式
{
return x-exp(-x);
}
int main()
{
double x0,x1,e;
int N,k;
while(cin>>x0>>e>>N)
{
k=1;
loop: if(f1(x0)==0){cout<<"函数异常!"<<endl;break;}
else
{
x1=x0-f0(x0)/f1(x0); //key step
printf("x%d=%.5f/n",k,x1);
}
if(x1-x0<e&&x1-x0>-e)
{
printf("final result: x%d=%.5f/n",k,x1);
break;
}
else
{
if(k!=N)
{
k++;
x0=x1;
goto loop;
}
else
cout<<"迭代计算失败!"<<endl;
}
}
return 0;
}
相关文章推荐
- 求一元方程的根(牛顿迭代法)
- 用牛顿迭代法和二分法求方程的根【C语言】
- 牛顿迭代法求方程的根
- 使用牛顿迭代法求解一阶导数方程 python
- 牛顿迭代法解一元方程组
- 牛顿迭代法求方程根
- 牛顿迭代法求解方程
- 1087 习题5-14 牛顿迭代法求方程的根
- 【清橙A1094】【牛顿迭代法】牛顿迭代法求方程的根
- C语言之基本算法25—牛顿迭代法求方程近似根
- c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.
- 关于使用牛顿迭代法和二分法解方程的算法说明
- 计算方法之牛顿迭代法求方程根
- 3元一次方程(牛顿迭代法求方程的根)
- 用牛顿迭代法求下面方程在1.5附近的跟
- 习题 7.12 用牛顿迭代法求根。方程为ax^3+bx^2+cx+d=0,系数a,b,c,d的值依次为1,2,3,4,由主函数输入。求x在1附近的一个实根。求出根后由主函数输出。
- 牛顿迭代法求解方程
- 用牛顿迭代法求下面方程在1.5附近的根:2x^3-4x^2+3x-6=0
- 牛顿迭代法在求解三次方程上的应用
- 计算方法之牛顿迭代法求方程根