📄 割线法.txt
字号:
#include<stdio.h>
#include<math.h>
#define N 100
#define eps 1e-6
#define eta 1e-8
float Gexian(float(*f)(float),float x0,float x1)
{
float x2,d0,d1;
int k=0;
do
{
x2=x1-(*f)(x1)*(x1-x0)/((*f)(x1)-(*f)(x0));
if(k++>N||fabs((*f)(x1)-(*f)(x0))<eps)
{
printf("\nGexian迭代失败");
break;
}
d0=fabs(x2)<1?x2-x0:(x2-x0)/x2;
d1=fabs(x2)<1?x2-x1:(x2-x1)/x2;
x0=x1;
x1=x2;
printf("x(%d)=%f\t",k,x1);
}
while(fabs(d0)>eps||fabs(d1)>eps&&fabs((*f)(x2))>eta);
return x2;
}
float f(float x)
{
return x*x*x+x*x-3*x-3;
}
void main()
{
float x0,x1,y0;
printf("请输入迭代初值x0,x1\n");
scanf("%f%f",&x0,&x1);
printf("x(0)=%f\nx(1)=%f\n",x0,x1);
y0=Gexian(f,x0,x1);
printf("方程的根为:%f\n",y0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -