zoutendijk可行方向法的matlab实现(可编辑修改word版)x.docxVIP

zoutendijk可行方向法的matlab实现(可编辑修改word版)x.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

(一) 、基本思想是:

k给定一个可行点x(k)之后,用某种方法确定一个改进的可行方向d,然后沿

k

方向d

,求解一个有约束的线搜索问题,得极小点?,令x(k?1)?x(k)??d,

k k kk

如果x(k?1)不是最优解,则重复上述步骤。可行方向法就是利用线性规划方法来

确定dk的。

、线性约束问题:

设x是问题

?min

?

?s.t.

?

?

f(x)

Ax?b,Ex?ex?Rn

的一个可行解,假定A1x?b1,A2x?b2,其中

A??A1?,b??b1?

Ab? ?

A

b

? 2?

? ?

?2?

则一个非零向量d是在点x点的一个可行方向,当且仅当A1d?0,Ed?0;如果?Tf(x)d?0,则d是一改进方向。

、非线性约束问题

设x是问题

?min

?

?s.t.

?

?

f(x)

gi(x)?0,

x?Rn

i?1,2,?,m

i i的一个可行解,令S??x|x?Rn,g(x)?0?,I??x|g(x)?0?,即I是x?S

i i

约束的指标集,设

f和gi(i?I)在x点可微,gi(i?I)在x点连续,如果

?Tf(x)d?0,?Tgi(x)d?0(i?I),则d是一改进的可行方向。

(二) 、算法

、线性不等式约束的Zoutendijk方法的计算步骤:

求一初始可行解x0。,令k=1,转2。

对于可行点x

,设Ax

?b,Ax

?b,AT?(AT,AT),

bT?(bT,bT)求解

?min

?

k 1k 1

z??f?x?Td

2k 2 1 2 1 2

?1问题P?s.t A1d?

?1

,得最优解dk

,如果?f?x?Td

=0,计算结束,

k? Ed?0

k

?? ?1?dj?1,j?1,?,n

?

xk是K—T点;否则转3。

求解线搜索问题

?min

??s.t

?

f(xk??dk)0????max

(a)

其中

? ???min?b_

d_|d_?0?,d_??0

b?b?Ax,d

?Ad

max ?

????,d?0

?

_ 2 2k

_ 2k

设?k为(a)式最优解,令xk?1?xk??kdk,k?k?1,返回2。

、非线性不等式约束的Zoutendijk方法的计算步骤:

1)选取允许误差??0,??0,求一初始可行点x(1),令k?1,转2)。

1 2

i2)确定指标集I(x(k))??i|g(x(k))?0?。

i

13)若I(x(k))??,且?f(x(k))??,计算结束,取x*?x(k);若I(x(k))??,

1

1k且?f(x(k))??,令d???f(x(k)),转6);若I(x(k))??,转4)。

1

k

令x?x(k),求解线性规划问题(4-2)的最优解(zk,dk);

若zk

??,计算结束,取x?x(k);否则令d=dk,转6)。

2 k

求出线搜索问题

?min

k?

k

f(x(k)??d)

?s.t. 0????max

的最优解?,其中?

?max??|x(k)??d

?S?;令x(k?1)?x(k)??d,

k

k?k?1,返回2)。

(三) 、程序源码

、主程序

max k k

简单说明:此程序可以处理线性和非线性问题,程序主要由label得值来判断,当label=1时运行线性约束部分,label=0时运行非线性约束部分

function[X0,f_val]=zoutendijk(A,b,x0,Aeq,beq,label)

%自定义函数diff_val(x0)作用是求所给函数在x0出的偏导数

%自定义函数fval(x0)作用是求所给函数在x0出的函数值formatlong;

eps=1.0e-6;

x0=transpose(x0);%刚开始给的x0为行向量

funcsz=length(x0);iflabel==1[m,n]=size(A);

%把A分

文档评论(0)

wszwtlg202 + 关注
实名认证
文档贡献者

一页纸且

1亿VIP精品文档

相关文档