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

📄 paowu.txt

📁 本程序采用visual c++开发
💻 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 + -