牛顿迭代法求根.c
来自「在C语言环境下的一个用牛顿迭法求根的程序.」· C语言 代码 · 共 30 行
C
30 行
//////////////////////////////////////////////////////////////
// 牛顿迭代法求根 //
//////////////////////////////////////////////////////////////
#include<stdio.h>
#include <math.h>
#define iterate(x) (x-((x*x-3)*x-1)/(3*x*x-3))
#define f(x) ((x*x-3)*x-1)
#define x0 1.5 // 迭代初值 x0
#define MAXREPT 1000 //最大迭代次数
#define epsilon 0.0001 //精度
void main()
{
int i;
double x_k=x0,x_k1=x0;
for(i=0;i<MAXREPT;i++)
{
printf("Got...%f\n",x_k1);
x_k1=iterate(x_k); // 迭代
if (fabs(x_k1-x_k)<epsilon||fabs(f(x_k1))<epsilon)
{
printf("! Root: %f\n",x_k1);//满足精度输出
return;
}
x_k=x_k1;
}
printf("After %d repeate, no solved.\n",MAXREPT);
}
//---------------------End of File-----------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?