基于matlab的坐标轮换法程序

上传人:cl****1 文档编号:541413567 上传时间:2023-02-26 格式:DOC 页数:5 大小:20.50KB
返回 下载 相关 举报
基于matlab的坐标轮换法程序_第1页
第1页 / 共5页
基于matlab的坐标轮换法程序_第2页
第2页 / 共5页
基于matlab的坐标轮换法程序_第3页
第3页 / 共5页
基于matlab的坐标轮换法程序_第4页
第4页 / 共5页
基于matlab的坐标轮换法程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于matlab的坐标轮换法程序》由会员分享,可在线阅读,更多相关《基于matlab的坐标轮换法程序(5页珍藏版)》请在金锄头文库上搜索。

1、function y=ff(x1,x2)%y=10*(x1+x2-5)2+(x1-x2)2; y=x12+x22-x1*x2-10*x1-4*x2+60;function alpha=goldmethod2(x01,x02,d,h0)% 输入分割比gamagama=0.618; % 确定搜索区间a,ba,b=search2(x01,x02,d,h0); %计算a1,a2和函数值y1,y2, 确定最优步长 alphaa1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1);a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a

2、2);for n=1:100 if y1=y2 x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2; a=a1;a1=a2;y1=y2; a2=a+gama*(b-a);y2=ff(x01+d(1)*a2,x02+d(2)*a2); else x1(n)=a1;x2(n)=a2;yp1(n)=y1;yp2(n)=y2; b=a2;a2=a1;y2=y1; a1=b-gama*(b-a);y1=ff(x01+d(1)*a1,x02+d(2)*a1); end aa(n)=(a+b)/2; %输出极值点 y(n)=ff(x01+d(1)*aa(n),x02+d(2)*aa(

3、n); %输出极值点函数值 e(n)=abs(b-a); alpha=(a+b)/2; if abs(b-a)1e-5 break; endend clear;h0=0.1;x0=0,0;e=1,0;0,1;xp=0,0;for k=1:20 k for i=1:2 i x01=x0(1);x02=x0(2);d=e(i,:); alpha=goldmethod2(x01,x02,d,h0); % 确定最优步长 alpha alpha x1=x0+alpha*d; x0=x1; xp end xn=x1; if abs(xn-xp)1e-1 break; end xp=xn;endclear;

4、% 给定初始值h0=0.1;x0=0,0;e=1,0;0,1;n=2;for k=1:20 k % k 代表第轮计算 % 第 1 到 n 次搜索计算 for i=1:1 % 第1次搜索 i x01=x0(1);x02=x0(2);d=e(i,:); F0=ff(x0(1),x0(2); alpha=goldmethod2(x01,x02,d,h0); % 确定最优步长 alpha alpha x(i,:)=x0+alpha*d; F(i)=ff(x(i,1),x(i,2); Delta(i)=F(i)-F0; end for i=2:n % 第2到n次搜索 i x01=x(i-1,1);x02

5、=x(i-1,2);d=e(i,:); alpha=goldmethod2(x01,x02,d,h0); % 确定最优步长 alpha alpha x(i,:)=x(i-1,:)+alpha*d; F(i)=ff(x(i,1),x(i,2); Delta(i)=F(i-1)-F(i); end % 111 % 精度是否满足要求 2 if abs(x(n,:)-x0)1e-3 break; end % 222 % 第n次结束参数计算 d=x(n,:)-x0; x(n+1,:)=2*x(n,:)-x0; Delta_m,j=max(Delta); F2=F(n);F3=ff(x(n+1,1),x(

6、n+1,2); % 333 % 搜索方向是否进行替换 if F3=Delta_m/2*(0-F3)2 x01=x(n,1);x02=x(n,2); alpha=goldmethod2(x01,x02,d,h0); % 确定最优步长 alpha alpha x(n+1,:)=x(n,:)+alpha*d; e(j,:)=; e(n,:)=d; x0=x(n+1,:); else if F2y1 %反向搜索 h=-h; a3=a1;y3=y1; a1=a2;y1=y2; a2=a3;y2=y3;enda3=a2+h;y3=ff(x01+d(1)*a3,x02+d(2)*a3);% 继续搜索 %while y30 a=a1;b=a3;else a=a3;b=a1;end % a,b

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 微积分

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号