牛顿迭代法、双点割线法及改进的双点割线法的比较
1 题目:
2 算法组织:
2.1 牛顿迭代法
算法原理见《计算方法教程(第2版)》,凌永祥、陈明奎编著,西安交通大学出版社,2005年4月第2版,第194至第195页。
代码:(C代码,运行环境为VC++6.0)
//牛顿迭代法解非线性方程
//---------------------Include Files-------------
#include
#include
//-----------------end Include Files-------------
#define M 10//迭代次数
double f(double x);//f(x)函数
double df(double x);//f(x)的导数
int main()
{
double x[100];
int i = 1;
x[0] = 1;
for(; i < M; i++)
{
x[i] = x[i-1] - f(x[i-1]) / df(x[i-1]);
printf("x[%d] = %.7lf/n", i, x[i]);
}
return(0);
}
double f(double x)
{
return (pow(x,3)-4);
}
double df(double x)
{
return (3*pow(x,2));
}
2.2 双点割线法
算法原理见《计算方法教程(第2版)》,凌永祥、陈明奎编著,西安交通大学出版社,2005年4月第2版,第197至第199页。
代码:(C代码,运行环境为VC++6.0)
//双点割线法
//---------------------Include Files-------------
#include
#include
//-----------------end Include Files-------------
#define M 10//迭代次数
double f(double x);//f(x)函数
int main()
{
double x[100