📄
字号:
三。黄金分割法--已经调试好!!
程序名 GS
功能 解一维优化问题
变量含义:
H0--搜索区间步长
E--黄金分割精度
X0--初始点
有“!!!!”处语句为用户应该修改的部分
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
主程序
30 REM MAIN PROGRAM MGS
31 PRINT "INPUT:X0,H0,E"
32 INPUT X0,H0,E
34 GOSUB 1000
36 GOSUB 1400
38 PRINT "PRIMAL DATA"
40 PRINT "X0=";X0,"H0=";H0,"E=";E
42 PRINT "OPTIMUM RESULTS"
44 PRINT "X=";X,"F=";F
46 END
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
子程序:搜索区间的确定
1000 REM FILE NAME:SS
1002 REM DETERMINATION OF THE INITIAL INTERVAL
1004 H=H0
1006 X1=X0:X=X1:GOSUB 8000:Y1=FX
1008 X2=X1+H:X=X2:GOSUB 8000:Y2=FX
1010 IF Y2<Y1 GOTO 1020
1012 H=-H0:X3=X1:Y3=Y1
1014 X1=X2:Y1=Y2:X2=X3:Y2=Y3
1020 H=2*H
1022 X3=X2+H:X=X3:GOSUB 8000:Y3=FX
1024 IF Y2>=Y3 GOTO 1014
1026 IF H<0 GOTO 1030
1028 A=X1:B=X3:GOTO 1032
1030 A=X3:B=X1
1032 RETURN
子程序
1400 REM FILE NAME GS
1405 REM GOKDEN SECTION METHED
1410 X1=A+0.382*(B-A):X=X1
1411 GOSUB 8000:Y1=FX
1415 X2=A+0.618*(B-A):X=X2
1416 GOSUB 8000:Y2=FX
1420 IF Y1<Y2 GOTO 1430
1425 A=X1:X1=X2:Y1=Y2:X2=A+0.618*(B-A)
1426 X=X2:GOSUB 8000:Y2=FX:GOTO 1435
1430 B=X2:X2=X1:Y2=Y1:X1=A+0.382*(B-A)
1431 X=X1:GOSUB 8000:Y1=FX
1435 IF B-A>E GOTO 1420
1440 X=0.5*(B+A):GOSUB 8000:F=FX
1445 RETURN
8000 FX=8*SIN(X)+10:REM !!!!!!!!!!
8005 RETURN
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -