⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 正割法.cpp

📁 这是计算方法上的所有算法
💻 CPP
字号:
#include<math.h>
#include<stdio.h>
#define MaxK 1000
#define EPS 0.5e-8
double f(double x)
{
	return x*x*x-x-1;
}
int ZhengGe(double x0,double &x1,double eps)
{
	int flag=1,num=0;
	double x2=x1;
	printf("k                xk                  f(xk)\n");
	printf("-----------------------------------------------\n");
	printf("0               %f             %f\n",x0,f(x0));
	printf("1               %f             %f\n",x1,f(x1));
	do{ 
		x1=x2;
		if(f(x1)-f(x0)==0)
		{flag=-1;break;}
		x2=x1-(f(x1)/(f(x1)-f(x0)))*(x1-x0);//x2为我们所要测量的近似根
		x0=x1;
		num++;//记录迭代次数
		if(num>MaxK)
		{flag=-2;break;
		}
		printf("%d               %f             %f\n",num+1 ,x2,f(x2) );
	}while(fabs(x2-x1)>=eps);
	printf("-------------------------------------------------\n");
	x1=x2;
	return flag;
}
void main()
{
	double x0=1,x1=2;
	int k=ZhengGe(x0,x1,EPS);
    if(k==1)
		printf("the root is x=%f\n",x1);
	else if(k==-1)
		printf("除零错误!\n");
	else if(k==-2)
		printf("迭代次数越界!\n");
}

		
		
		

⌨️ 快捷键说明

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