powell法matlab代码.txt
- 文档编号:18634979
- 上传时间:2023-08-23
- 格式:TXT
- 页数:3
- 大小:3.90KB
powell法matlab代码.txt
《powell法matlab代码.txt》由会员分享,可在线阅读,更多相关《powell法matlab代码.txt(3页珍藏版)》请在冰点文库上搜索。
1/Ŀ�꺯�������嵥
functionm=f(x1,x2)
m=x1^2+2*x2^2-4*x1-2*x1*x2
2/���ڦ���Ŀ�꺯��
functionm=y(x1,x2,d1,d2,alpha)
m=(x1+alpha*d1)^2+(x2+alpha*d2)^2-(x1+alpha*d1)*(x2+alpha*d2)-10*(x1+alpha*d1)-4*(x2+
alpha*d2)+60;
3\
function[a,b]=section(x1,x2,d1,d2)
x11=x1;%������ʼ������x1��x2����������d1��d2
x22=x2;
d11=d1;
d22=d2;
h0=1;%��ʼ��
h=h0;alpha1=0;
y1=y(x11,x22,d11,d22,alpha1);%�����1���y1
alpha2=h;y2=y(x11,x22,d11,d22,alpha2);
t=0;
ify2>y1
h=-h;alpha3=alpha1;y3=y1;t=1;%���y2>y1����ı���������
end
while
(1)
ift==1
alpha1=alpha2;y1=y2;%ʵ�ֽ���
alpha2=alpha3;y2=y3;
elset=1;
end
alpha3=alpha2+h;y3=y(x11,x22,d11,d22,alpha3);
ify3 h=2*h;%�ı���������������ӱ� else break; end end ifalpha1>alpha3 tem=alpha1;alpha1=alpha3;alpha3=tem;%�Ƚϴ�С����֤�������Ϊ��a��b�� a=alpha1;b=alpha3; elsea=alpha1;b=alpha3; end 4\ functionalpha=ALPHA(x1,x2,d1,d2,A,B) x11=x1;x22=x2;%������ʼ������x1��x2����������d1��d2 d11=d1;d22=d2; a=A;b=B;%��ȡ���� epsilon=0.000001;%��ʼ������������ r=0.618; alpha1=b-r*(b-a); y1=y(x11,x22,d11,d22,alpha1);%�����1���y1 alpha2=a+r*(b-a); y2=y(x11,x22,d11,d22,alpha2); while (1) ify1>=y2%����������ȥ��ԭ�����������ռ� a=alpha1;alpha1=alpha2; y1=y2; alpha2=a+r*(b-a); y2=y(x11,x22,d11,d22,alpha2); else b=alpha2;alpha2=alpha1; y2=y1; alpha1=b-r*(b-a); y1=y(x11,x22,d11,d22,alpha1); end ifabs(b-a) abs(y2-y1) break;%�������Ҫ�����˳�ѭ���������� end end alpha=0.5*(a+b);%����ֵ 5\������ clearall clc k=0;n=2; x=[0;0;];ff (1)=f(x (1),x (2));%��ʼ�� epsilon=0.00001; d=[1; 0; 0; 1;]; while (1) x00=[x (1);x (2);]; fori=1: n [a(i),b(i)]=section(x(2*i-1),x(2*i),d(2*i-1),d(2*i));%����section�����������һԪ������y��������Сֵʱ������ alpha(i)=ALPHA(x(2*i-1),x(2*i),d(2*i-1),d(2*i),a(i),b(i));%����ALPHA�����������y��������Сֵ���* x(2*i+1)=x(2*i-1)+alpha(i)*d(2*i-1);%��di�������� x(2*i+2)=x(2*i)+alpha(i)*d(2*i); ff(i+1)=f(x(2*i+1),x(2*i+2));%�������ĵ��Ӧ�ĺ���ֵ end fori=1: n Delta(i)=ff(i)-ff(i+1); end delta=max(Delta);%�������ֵ֮������ֵ fori=1: n%Ѱ�Һ���ֵ֮�����ֵ���±� ifdelta==Delta(i) m=i; break; end end d(2*n+1)=x(2*n+1)-x (1);%����������������dn+1 d(2*n+2)=x(2*n+2)-x (2); x(2*n+3)=2*x(2*n+1)-x (1);%�����������Xn+1 x(2*n+4)=2*x(2*n+2)-x (2); ff(n+2)=f(x(2*n+3),x(2*n+4));%���������Ӧ�ĺ���ֵ f0=ff (1);f2=ff(n+1);f3=ff(n+2); k=k+1;%��¼�������� R(k,: )=[k,x',d',ff];%����������̵��м������� iff3 (f0-2*f2+f3)*(f0-f2-delta)^2<0.5*delta*(f0-f3)^2%�ж��Ƿ���Ҫ��ԭ����������滻 [a(n+1),b(n+1)]=section(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2)); alpha(n+1)=ALPHA(x(2*n+1),x(2*n+2),d(2*n+1),d(2*n+2),a(n+1),b(n+1)); x (1)=x(2*n+1)+alpha(n+1)*d(2*n+1);%�ط��䷽����������������������Ϊ��һ�ֵ�����ʼ�� x (2)=x(2*n+2)+alpha(n+1)*d(2*n+2); fori=m: n%���ݺ���ֵ֮�����ֵ���±�ֵm����ԭ����������滻 d(2*i-1)=d(2*i+1); d(2*i)=d(2*i+2); end else iff2 x (1)=x(2*n+1); x (2)=x(2*n+2); else x (1)=x(2*n+3); x (2)=x(2*n+4); end end RR(k,: )=alpha;%����������̵��м������� ff (1)=f(x (1),x (2));%������һ�ֵ���������Ҫ��f0ֵ if (((x(2*n+1)-x00 (1))^2+(x(2*n+2)-x00 (2))^2)^(1/2)) break;%�������Ҫ�����˳�ѭ���������� end end xx=[x (1);x (2)] fmin=f(x (1),x (2))%��ʾ��Сֵ��������Ӧ�����
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- powell matlab 代码
![提示](https://static.bingdoc.com/images/bang_tan.gif)