外推法.cpp

来自「用外推法求函数最优区间的程序」· C++ 代码 · 共 52 行

CPP
52
字号
#include<iostream.h>
#include<math.h>
double f(double x)
{
	double y=x*x-4*x+12;
	return y;
}
void main()
{
	double a,h0,a1,a2,f1,f2;
	cout<<"请输入已知左边界点及步长:\n";
	cin>>a>>h0;
	a1=a;
	a2=a1+h0;
	f1=f(a1);
	f2=f(a2);
	if(f1>f2)
	{
        h0=2*h0;
        a2=a2+h0;
	    f1=f2;
	    f2=f(a2);
	  while(f2<f1)
	  {
		a1=a2-h0;
		h0=2*h0;
		a2=a2+h0;
		f1=f2;
		f2=f(a2);
	  }
	cout<<"最优点区间为:"<<"["<<a1<<","<<a2<<"]"<<'\n';
	}
	else
	{
		h0=-h0/4;
		a1=a1+h0;
		f2=f1;
		f1=f(a1);
		while(f2>f1)
		{
			a2=a1-h0;
			h0=2*h0;
			a1=a1+h0;
			f2=f1;
			f1=f(a1);
		}
		cout<<"最优点区间为:"<<"["<<a1<<","<<a2<<"]"<<'\n';
	}
}


⌨️ 快捷键说明

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