Matlab实现Zoutendijk编程例子_第1页
Matlab实现Zoutendijk编程例子_第2页
Matlab实现Zoutendijk编程例子_第3页
Matlab实现Zoutendijk编程例子_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

minf(x)=x2+2x2+3x2+xx—2xx+xx—4x—6x1 2 3 12 13 23 1 2x+2x+x<4. 1 23x,x,x>0123取初始点x(i)=(0,0,0)t,通过凶@打@6编程实现求解过程。公用函数如下:1、function[f,x]=func%设置目标函数symsx1x2x3;f=xr2+2*x2-2+3*x3-2+x1*x2-2*x1*x3+x2*x3-4*x1-6*x2;x=[x1,x2,x3];end2、functionf_val=fval(x0)%求目标函数值x0=transpose(x0);[f,x]=func;f_val=subs(f,x,x0);end3、functions=diff_val(x0)%求目标函数梯度[f,x]=func;grad=jacobian(f,x);s=subs(grad,x,x0);end4、functionh=fmin(x0,d0,vmax)%求函数最小值[f,x]=func;symsh;a=x0+h*d0;f_val=inline(subs(f,x,a));ifvmax==infmin_h=fminbnd(f_val,0,10000);elsemin_h=fminbnd(f_val,0,vmax);endh=min_h;endZoutendijk方法主函数function[X0,f_val]=zoutendijk(A,b,x0,Aeq,beq)%自定义函数diff_val(x0)作用是求所给函数在*0出的偏导数%自定义函数n21&0)作用是求所给函数在*0出的函数值formatlong;eps=;x0=transpose(x0);%刚开始给的x0为行向量[f,x]=func;sz=length(x0);[m,n]=size(A);%把人分解为人1,人2,其中人1为起作用约束fork=1:1:100A1=A;A2=A;b1=b;b2=b;fori=m:-1:1ifabs(A2(i,:)*x0-b2(i,:))<A2(i,:)=[];b2(i,:)=[];endendfori=m:-1:1ifabs(A1(i,:)*x0-b1(i,:))>=A1(i,:)=[];b1(i,:)=[];endendA1;A2;b1;b2;i2=rank(A2);AE=[A1;Aeq];[i1,j1]=size(AE);r=rank(AE);ifr<i1'行不满秩'returnendifi2==0'无效'returnend%求解线性规划问题得到可行下降方向d0s=diff_val(x0);c=double(s);lb=-1*ones(sz,1);ub=ones(sz,1);k1=length(b1);k2=length(beq);p=zeros(k1,1);q=zeros(k2,1);[d0,mn,m1,m2,m3]=linprog(c,A1,p,Aeq,q,lb,ub);d0;mn;df=abs(s*d0);ifdf<'最优解为'x0f_val=fval(x0)kreturnelse%进行一维搜索,求f(x(k+1))的最小值b_=b2-A2*x0;d_=A2*d0;[dh,dl]=size(d_);ul=1;fori=1:1:dhifd_(i,:)>=0u=1;elseu=0;endul=ul*u;endul;b_;d_;vmax=inf;iful==0vmax=inf;elsefori=1:1:dhifd_(i,:)>0v=b_(i,:)/d_(i,:);ifv<vmaxvmax=v;endendendendendvmax;h=fmin(x0,d0,vmax);a=x0+h*d0;f_val=fval(a);x0=x0+h*d0;'s1^s1^s1^s1>%|>'X0=x0f_val=fval(x0)k^|cx|cx|cx|cx|cx|cx|cx|c^|c^|c^|c^|c^|cx^Cx^Cx^Cendend'TFt*toRATLAF?ht品thisVidti.■seeOiwas.睢rtad<rttti-neStarted»A=[L21:-]O0:0-10:00-L]k[H。口0]":xQ=[Q0Q]:Aeq=[3.buq=U.label=L:>>zdllIendijkl&、)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论