?? powellshuxue.m
字號:
%此程序為仿真書中的例子
%最后結果的精度要看過程中的步長
%從多次仿真結果可以看出,所得的結果很穩定
%在len=2時,得到的結果與書中完全相同
%目標函數是y=(x1+x2).^2+(x1-1).^2
clear;
clc;
D=[1 0;
0 1];
d1=D(1,:);
d2=D(2,:);
x0=[2,1];
% y=(x0(1)+x0(2)).^2+(x0(1)-1).^2;
len=10;
for j=1:10
m=0;
n=0;
l=0;
for i=-len:0.01:len
x1=x0+i*d1;
m=m+1;
x(m,:)=x1;
y1(m)=(x1(1)+x1(2)).^2+(x1(1)-1).^2;
end
[MIN,index]=min(y1);
x1=x(index,:);
for i=-len:0.01:len
x2=x1+i*d2;
n=n+1;
x(n,:)=x2;
y2(n)=(x2(1)+x2(2)).^2+(x2(1)-1).^2;
end
[MIN,index]=min(y2);
x2=x(index,:);
d3=x2-x0;
for i=-len:0.01:len
x3=x1+i*d3;
l=l+1;
x(l,:)=x3;
y3(l)=(x3(1)+x3(2)).^2+(x3(1)-1).^2;
end
[MIN,index]=min(y3);
x3=x(index,:);
x0=x3;
d1=d2;
d2=d3;
end
x0 %顯示仿真求得的最佳結果
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -