📄 cpp4.cpp
字号:
#include "math.h"
#include "stdio.h"
#define f(x) x*x-7*x+10 //一元函数
//函数功能是用黄金分割法实现求一元函数 的最优解
double hj(double *a,double *b,double e,int *n)
{ double x1,x2,s;
if(fabs(*b-*a)<=e)
s=f((*b+*a)/2);
else
{ x1=*a+0.382*(*b-*a);
x2=*a+0.618*(*b-*a);
if(f(x1)>f(x2))
*a=x1;
else
*b=x2;
*n=*n+1;
s=hj(a,b,e,n);
}
return s;
}
void main()
{ double s,a,b,e;
int n=0;
scanf("%lf%lf%lf",&a,&b,&e); // 输入区间[a,b]和精度e的值
s=hj(&a,&b,e,&n); //调用hj函数,其中n代表迭代次数
printf("a=%lf,b=%lf,s=%lf,n=%d\n",a,b,s,n);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -