无约束(多维)最优化概要.pptVIP

  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文档。上传文档
查看更多
结果为: x = -0.1000 -0.1000 0.2152 0.3502 resnorm = 0.1672 residual = 0.0455 0.0764 -0.3562 0.1620 0.0784 exitflag = 1 %说明解x是收敛的 output = iterations: 4 algorithm: medium-scale: active-set firstorderopt: [] cgiterations: [] lambda = lower: [4x1 double] upper: [4x1 double] eqlin: [0x1 double] ineqlin: [3x1 double] 通过lambda.ineqlin可查看非线性不等式约束是否有效。 例3:Matlab编程求解 有约束线性最小二乘的标准形式为 sub.to 其中:C、A、Aeq为矩阵;d、b、beq、lb、ub、x是向量。 在MATLAB5.x中,约束线性最小二乘用函数conls求解。 三、最小二乘法的Matlab求解 1 约束线性最小二乘 函数 lsqlin 格式 x = lsqlin(C,d,A,b) %求在约束条件 下,方程Cx = d的最小二乘解x。 x = lsqlin(C,d,A,b,Aeq,beq) %Aeq、beq满足等式约束 若没有不等式约束,则设A=[ ],b=[ ]。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) %lb、ub满足 若没有等式约束,则Aeq=[ ],beq=[ ]。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) % x0为初始解向量,若x没有界,则lb=[ ],ub=[ ]。 x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) % options为指定优化参数 [x,resnorm] = lsqlin(…) % resnorm=norm(C*x-d)^2,即2-范数。 [x,resnorm,residual] = lsqlin(…) %residual=C*x-d,即残差。 [x,resnorm,residual,exitflag] = lsqlin(…) %exitflag为终止迭代的条件 [x,resnorm,residual,exitflag,output] = lsqlin(…) % output表示输出优化信息 [x,resnorm,residual,exitflag,output,lambda] = lsqlin(…) % lambda为解x的Lagrange乘子 例5-15 求解下面系统的最小二乘解 系统: 约束: 先输入系统系数和x的上下界: C = [0.9501 0.7620 0.6153 0.4057;… 0.2311 0.4564 0.7919 0.9354;… 0.6068 0.0185 0.9218 0.9169;… 0.4859 0.8214 0.7382 0.4102;… 0.8912 0.4447 0.1762 0.8936]; d = [ 0.0578; 0.3528; 0.8131; 0.0098; 0.1388]; A =[ 0.2027 0.2721 0.7467 0.4659;… 0.1987 0.1988 0.4450 0.4186;… 0.6037 0.0152 0.9318 0.8462]; b =[ 0.5251; 0.2026; 0.6721]; lb = -0.1*ones(4,1); ub = 2*ones(4,1); 然后调用最小二乘命令: [x,resnorm,residual,exitflag,output,lambda] = lsqlin(C,d,A,b,[ ],[ ],lb,ub); 2 非线性最小二乘 函数 lsqnonlin 格式 x = lsqnonlin(fun,x0) %x0为初始解向量;fun为f(x) i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隐含在算法中,fun的定义与前面相同。 x = lsqnonlin(fun,x0,lb,ub) %lb、ub

文档评论(0)

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

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档