弦截法求根.c

来自「在C语言环境下做的一个用弦截法求楼的程序.」· C语言 代码 · 共 32 行

C
32
字号
///////////////////////////////////////////////////////
//                 弦截法求根                        // 
///////////////////////////////////////////////////////


#include "stdio.h"
#include "math.h"
#define f(x) (x*x*x-7.7*x*x+19.2*x-15.3)// f函数
#define x0 0.0
#define x1 1.0
#define MAXREPT 1000// 最大迭代次数
#define epsilon 0.00001//求解精度
void main()
{
	int i;
	double x_k=x0,x_k1=x1,x_k2=x1;
	for(i=0;i<MAXREPT;i++)
	{
		printf("Got...%f\n",x_k2);
        x_k2=x_k1-(f(x_k1)*(x_k1-x_k))/(f(x_k1)-f(x_k));//弦截求新x_n
		if(fabs(x_k2-x_k1)<epsilon||fabs(f(x_k2))<epsilon)
		{
			printf("! Root: %f\n",x_k2);//满足精度输出
			return;
		}
		x_k=x_k1;x_k1=x_k2;//反复

	}
	printf("After%d repeate,no solved.\n",MAXREPT);
}
//----------------END OF FILE---------------------
//用弦截法求方程f(x)=x*x*x-7.7*x*x+19.2*x-15.3的根

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?