📄 paowu.txt
字号:
#include <iostream.h>
#include <math.h>
//求函数值函数:
double f(double x){
return pow(x*x,1.0/3)-pow((x*x+1),1.0/3);
}
//求极值点函数:
double r(double a1,double a2,double a3,double h,double e){
double y1,y2,y3,c1,c2,ap,yp,am;
y1=f(a1);
y2=f(a2);
y3=f(a3);
c1=(y3-y1)/(a3-a1);
c2=((y2-y1)/(a2-a1)-c1)/(a2-a3);
ap=0.5*(a1+a3-(c1/c2));
yp=f(ap);
while(fabs((y2-yp)/y2)>e){
if((ap-a2)*h>0){
if(y2>=yp){
a1=a2;y1=y2;a2=ap;y2=yp;
}
else{
a3=ap,y3=yp;
}
}
else{
if(y2>=yp){
a3=a2;y3=y2;a2=ap;y2=yp;
}
else{
a1=ap;y1=yp;
}
}
c1=(y3-y1)/(a3-a1);
c2=((y2-y1)/(a2-a1)-c1)/(a2-a3);
ap=0.5*(a1+a3-c1/c2);
yp=f(ap);
}
if(y2<yp)
am=a2;
else
am=ap;
return am;
}
//主函数:
void main(){
cout<<"请输入初始点:"<<endl;
double a1;
cin>>a1;
cout<<"请输入初始步长:"<<endl;
double h0;
cin>>h0;
cout<<"请输入精度:"<<endl;
double e;
cin>>e;
double h,a2,a3,f1,f2,f3,temp,xmin,fmin;
h=h0;
f1=f(a1);
a2=a1+h;
f2=f(a2);
if(f1<f2){
h=-h;
a3=a1;f3=f1;
a1=a2;f1=f2;
a2=a3;f2=f3;
a3=a2+h;f3=f(a3);
}
else{
a3=a2+h;
f3=f(a3);
}
while(f3<=f2){
h=2*h;
a1=a2;f1=f2;
a2=a3;f2=f3;
a3=a2+h;f3=f(a3);
}
if(a1>a3){
temp=a1;a1=a3;a3=temp;
cout<<"a1="<<a1<<endl
<<"a2="<<a2<<endl
<<"a3="<<a3<<endl;
}
//求极值点和函数最小值:
xmin= r(a1,a2,a3,h,e);
fmin=f(xmin);
cout<<"极值点为:"<<xmin<<endl;
cout<<"极值为:"<<fmin<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -