欢迎来到天天文库
浏览记录
ID:46391928
大小:34.50 KB
页数:5页
时间:2019-11-23
《matlab实验鲍威尔法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验报告实验名称:鲍威尔法院(系):机电学院专业班级:机械制造及其自动化姓名:学号:2013年5月13日实验一:鲍威尔法实验日期:2013年5月13日一、实验目的了解MATLAB的基本运用了解MATLB在优化中的使用二、实验原理鲍威尔法也是一种共轭法,利用函数值来构造共轭方向,同时引入坐标轮换的概念,利用搜索前后两个点之间的连线形成新的共轭方向,替换旧的共轭方向。三、实验内容鲍威尔法程序:x0=[12;10];xk=x0;ie=10^(-7);ae=1;%初始化搜索方向d=zeros(2,2);d(:,1)=[1;0];d(:,2)=[0;1];Inc=zeros(2,1);k=0
2、;MLN=100;%迭代求解while(ae>ie&&k0F0=eval(F0);end%沿d1方向进行一维搜索symsasymsx1;symsx2;xk1=xk+a*d(:,1);x1=xk1(1);x2=xk1(2);fun1=fun(x1,x2);fxa=diff(fun1,'a');a=solve(fxa);xk1=inline(xk1);xk1=feval(xk1,a);xk1(
3、1)=eval(xk1(1));xk1(2)=eval(xk1(2));symsx1;symsx2;fun1=fun(x1,x2);fun1=inline(fun1);f1=feval(fun1,xk1(1),xk1(2));f1=eval(f1);Inc(1)=f0-f1;%沿d2方向进行搜索symsa;symsx1;symsx2;xk2=xk1+a*d(:,2);x1=xk2(1);x2=xk2(2);fun1=fun(x1,x2);fxa=diff(fun1,'a');a=solve(fxa);xk2=inline(xk2);xk2=feval(xk2,a);xk2(1)=e
4、val(xk2(1));xk2(2)=eval(xk2(2));symsx1;symsx2;fun1=fun(x1,x2);fun1=inline(fun1);f2=feval(fun1,xk2(1),xk2(2));f2=eval(f2);F2=f2;Inc(2)=f1-f2;[Incm,row]=max(Inc);x3=2*xk2-xk;%计算反射点symsx1;symsx2;fun1=fun(x1,x2);fun1=inline(fun1);f3=feval(fun1,x3(1),x3(2));f3=eval(f3);F3=f3;temp1=(F0-2*F2+F3)*(F0-
5、F2-Incm)^2;temp2=0.5*Incm*(F0-F3)^2;%判断是否更换搜索方向if(F36、kerror);k=k+1;endx=eval(xk)函数程序:function[f]=fun(x1,x2)f=2*x1^2+4*x1*x2+x2^2执行结果:x = 0 0一、实验小结通过本实验了解了了matlab的基本操作方法,了解鲍威尔法的原理与基本运用
6、kerror);k=k+1;endx=eval(xk)函数程序:function[f]=fun(x1,x2)f=2*x1^2+4*x1*x2+x2^2执行结果:x = 0 0一、实验小结通过本实验了解了了matlab的基本操作方法,了解鲍威尔法的原理与基本运用
此文档下载收益归作者所有