ch-大型课题【DOC精选】.docVIP

  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文档。上传文档
查看更多
ch-大型课题【DOC精选】

第24章 大 型 课 题 24.1概述 随着工程技术大发展和最优化技术大广泛应用,科学技术领域中需要求解很多大规模问题。大型问题的解法近几年来在国内外频受重视,并做了很多工作,主要是将拟Newton法推广到大规模问题。在求解变量个数相当大的大型问题时,遇到的最大困难是需要非常大的存儲量。例如,Newton法、变尺度法为了计算逐次搜索方向需要存储n阶矩阵,这样就受到计算存储量的限制。而且,由此引起的计算时间过长。 但是,实际遇到的大规模问题一般都有十分有利的性质,即 (1)很多大型无约束问题,由于某些变量之间没有非线性的交互作用,故它的Hess矩阵含有大量的零元素。 (2)大规模问题中出现的矩阵往往具有一定的结构或模式。在一个具有一定结构的矩阵中,零或非零元素不是随机分布的,根据问题的固有性质和变量之间的关系,对它们在矩阵中所占的位置事先有所了解。对于稀疏的大规模问题,通常利用Hess的稀疏性和结构性进行求解,设法减少计算量和存储量(例如,与零元素的乘法可以不做;在有特定结构的矩阵中,大块的零元素可以不存储等),把Newton法,特别是拟Newton法推广到大型问题。 对于非稀疏的大规模问题,目前最有效的算法还是共轭梯度法和一些以它和拟Newton法为基础的修正算法。 表24-1描述了MATLAB中能求解的大型问题的数学模型和对应函数。在前面介绍各优化问题的优化函数时,我们也介绍了对应大型问题的算法。读者朋友们可以在解决具体问题时参考理解和使用。 表24-1 大型问题模型与函数表 函 数 问 题 模 型 附 加 条 件 备 注 fminunc 必须提供f(x)的梯度 提供Hess矩阵的稀疏结构,或计算目标函数的Hess矩阵 Hess矩阵必须是稀疏的 fmincon 必须提供f(x)的梯度 提供Hess矩阵的稀疏结构,或计算目标函数的Hess矩阵 Hess函数必须是稀疏的 lsqnonlin 不可供使用 提供雅克比矩阵的稀疏结构,或计算目标函数的雅克比矩阵 雅克比矩阵必须是稀疏的 lsqcurvefit 不可供使用 提供雅克比矩阵的稀疏结构,或计算目标函数的雅克比矩阵 雅克比矩阵必须是稀疏的 fsoIve F(x)=0 不可供使用 lsqlin C必须是稀疏矩阵 linprog 不可供使用 A和Aeq必须是稀疏矩阵 quadprog 不可供使用 H和Aeq必须是稀疏矩阵 24.2 带雅可比矩阵的非线性等式 Ex. 2401——help(Optimization Toolbox(Examples(Large-Scale Examples(Nonlinear Equations with Jacobian: 对于下面的问题,寻找x,使F(x)=0.假设n=1000. F(1)=3*x(1)-2*x(1)^2-2*x(2)+1 …… F(i)= 3*x(i)-2*x(i)^2-x(i-1)-2x(i+1)+1 …… F(n)= 3*x(n)-2*x(n)^2-x(n-1)+1 用fsolve函数求解大型非线性方程组。 第1步:建立M文件,计算目标函数值和雅可比矩阵. function [F,J] = nlsf1(x); % Evaluate the vector function n = length(x); F = zeros(n,1); % 以下过程相当一个for循环 i = 2:(n-1); F(i) = (3-2*x(i)).*x(i)-x(i-1)-2*x(i+1)+ 1; F(n) = (3-2*x(n)).*x(n)-x(n-1) + 1; F(1) = (3-2*x(1)).*x(1)-2*x(2) + 1; % Evaluate the Jacobian if nargout 1 if nargout 1 d = -4*x + 3*ones(n,1); % n行1列矩阵(或列向量) D = sparse(1:n,1:n,d,n,n); % 得到n*n阶对角元是d中元的对角阵,D为n阶对角阵 c = -2*ones(n-1,1); % n-1行1列阵,当n=2时, 即一个元素 C = sparse(1:n-1,2:n,c,n,n); % C(1,2)=c(1,1),C(2,3)=c(2,1),…,而C是n阶右上方阵 e = -ones(n-1,1); % 书上无 E = sparse(2:n,1:n-1,e,n,n); % E(2,1)=e(

文档评论(0)

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

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

1亿VIP精品文档

相关文档