📄 forward_and_backward.cpp
字号:
#include<iostream.h>
#include<math.h>
void main()
{
double x0=1,h0=0.05;
double h,x1,f1;
int k=0;
int sn=0;
double x4,f4;
double x2,x3,f2;
h=h0;
x1=x0;
f1=pow((1-x1),2)-2*(1-x1)*(1-3*x1)+4*pow((1-3*x1),2)+(1-x1)-3*(1-3*x1);//f1=pow(x1,4)+2*x1+4;
Loop:
x4=x1+h;
f4=pow((1-x4),2)-2*(1-x4)*(1-3*x4)+4*pow((1-3*x4),2)+(1-x4)-3*(1-3*x4);
k=k+1;
if(f4<f1) sn=4;
else if(k==1)
sn=6;
else
sn=7;
switch(sn)
{
case 4:
x2=x1;x1=x4;
f2=f1;
f1=f4;
h=2*h;
goto Loop;
case 6:
h=-h;
x2=x4;
f2=f4;
goto Loop;
case 7:
x3=x2;
x2=x1;
x1=x4;
break;
}
//printf("%lf,%lf",x1,x3);
cout<<"\n取初始步长为"<<h0<<"时,采用进退法得到的区间两端点,分别是:"<<x1<<"\t"<<x3<<endl<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -