工程数值计算Python教程课件 第8章 过程最优化.pptx

工程数值计算Python教程课件 第8章 过程最优化.pptx

  1. 1、本文档共29页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程数值计算Python教程课件

第8章 过程最优化 ? ? ?图8-1 变步长法确定搜索区间示意图 ?图8-2 变步长法确定搜索区间的程序流程图 ? ? ??图8-3 黄金分割法示意图? 图8-4 黄金分割法程序流程图273.15283.15293.15303.15313.15323.153.516.0710.0315.9124.3736.17333.15343.15353.15363.15373.15383.1552.1973.44101.01136.12180.05234.16表8-1某物质的蒸汽压实验数据? ?A = 13.8787, B = 2784.5187, C = -52.55628.1.3 插值法插值法就是将目标函数f(x)用一个低次多项式函数p(x)来逼近,然后以易于计算的p(x)的极小值点近似f(x)的极小值点,并通过多次迭代逐步逼近的方法得到满足精度要求的解。常用的插值法有二次插值和三次插值,这里只介绍二次插值法。 ? ? ? ? ? ? ? ? ? 求解有约束最优化问题有许多种方法,归纳起来可分为两大类,一类是直接法,即在可行区域内搜索,如Box复合形法、随机方向搜索法、可行方向法等,另一类是间接法,即将约束优化问题通过一定的方法转化为无约束优化问题求解,如拉格朗日乘子法、惩罚函数法等。? ? ? ? ? ??import numpy as npfrom simplex import simplexdef f(x, k): punish = (np.sum((x 0) * k * (-x)) + np.sum((x 1) * k * (x - 1)) + (np.sum(x ** 2) 1) * k * (np.sum(x ** 2) - 1)) return -np.sum(x) + punishx0 = np.zeros(2, dtype = float)punish_coeff = 1e6xmin, fmin = simplex(f, x0, length = 0.001, eps = 1e-16, args = (punish_coeff,))print(fxmin: {xmin}, fmin: {fmin}) 8.4 利用scipy模块进行函数优化(1) scipy.optimize.minimize函数minimize方法用于优化,它即可用于单变量函数也可用于多变量函数,即可用于无约束优化也可用于有约束优化,其用法:minimize(fun, x0, args=(), method=None, jac=None, hess=None, hessp=None, bounds=None, constraints=(), tol=None, callback=None, options=None)① fun: 优化目标函数,fun(x, *args),x是形状为(n,)的数组,n为优化变量的数目。② x0: 初值,形状为(n,)的数组。③ method: 字符串指明优化方法,可选值包括Nelder-Mead、Powell、CG、BFGS、Newton-CG、L-BFGS-B、TNC、COBYLA、SLSQP、trust-constr、dogleg、trust-ncg、trust-exact、trust-krylov。默认值为None,此时依据问题是否包含约束条件从BFGS、L-BFGS-B、SLSQP中选择适合的方法。 ④ jac: 计算梯度向量的方法,可以是返回雅可比矩阵的函数,或字符串2-point、3-point、cs之一,或布尔值。该参数只对CG、BFGS、Newton-CG、L-BFGS-B、TNC、SLSQP、dogleg、trust-ncg、trust-krylov、trust-exact、trust-constr有效。当jac为函数时,它应该返回形状为(n,)的梯度向量。当jac=True时,fun函数应该返回元组(f, g),f为函数值,g为梯度。对Newton-CG、trust-ncg、dogleg、trust-exact、trust-krylov方法必须提供jac函数(或由fun提供梯度向量)。当jac = None或False,梯度由2点有限差分估算,或者由2-point、3-point、cs显式指出有限差分估算模式。⑤ hess: 计算海森矩阵的方法,可以是返回海森矩阵的函数,或字符串2-point、3-point、cs之一,或HessianUpdateStrategy对象。如果是函数,应该返回形状为(n, n)的海森矩阵。如

您可能关注的文档

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档