<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          規(guī)劃問題之非線性規(guī)劃【筆記】

          共 1442字,需瀏覽 3分鐘

           ·

          2021-10-16 04:11

          前言

          若移動端查看數(shù)學(xué)公式不全或顯示錯誤

          可以復(fù)制文章鏈接至PC端進(jìn)行查看

          預(yù)備知識

          語法

          scipy.optimize.minimize(fun,?x0,?args=(),?method=None,?jac=None,?hess=None,?hessp=None,?bounds=None,?constraints=(),?tol=None,?callback=None,?options=None)

          參數(shù)(部分)

          • fun: 目標(biāo)函數(shù)
          • x0:變量的初始值。如果有多個變量,則需要給每個變量一個初始值。
          • args:常數(shù)值,fun中一般沒有數(shù)字,都以變量的形式表示,對于常數(shù)項(xiàng)及未知數(shù)前面的系數(shù),需要以參數(shù)的形式傳入
          • method:求極值的方法,一般使用默認(rèn)為SLSQP
          • constraints:未知數(shù)的約束條件
          API官方文檔:https://docs.scipy.org/doc/scipy-0.13.0/reference/generated/scipy.optimize.minimize.html

          例題 - 1

          題目

          計(jì)算1/x + x 的「最小值」

          解答

          先畫出函數(shù) 1/x + x 的圖像(區(qū)間:-10 ~+10)

          import?matplotlib.pyplot?as?plt
          import?numpy?as?np
          ?
          x?=?np.linspace(-10,10,num=100)
          y?=?1/x?+?x

          plt.plot(x,y)
          plt.show()

          可以發(fā)現(xiàn) 該函數(shù)沒有全局最優(yōu)解 , 有 「局部最優(yōu)解」

          「使用scipy.optimize.minimize進(jìn)行求解」

          當(dāng)設(shè)置初值x0為 2 時

          from?scipy.optimize?import?minimize
          import?numpy?as?np

          #?目標(biāo)函數(shù)
          def?fun(args):
          ????a
          ?=?args?#?傳參
          ????v?=?lambda?x:a/x[0]?+?x[0]
          ????return?v

          args?=?(1)
          x0?=?np.asarray((2))
          res?=?minimize(fun(args),?x0,?method='SLSQP')
          res

          求解局部最優(yōu)解為:fun: 2.0000000815356342

          當(dāng)設(shè)置初值x0為 9 時

          from?scipy.optimize?import?minimize
          import?numpy?as?np

          def?fun(args):
          ????a
          ?=?args
          ????v?=?lambda?x:a/x[0]?+?x[0]
          ????return?v

          args?=?(1)
          x0?=?np.asarray((9))
          res?=?minimize(fun(args),?x0,?method='SLSQP')
          res

          返回:fun: -2980232238769548.0 ,message: 'Rank-deficient equality constraint subproblem HFTI'

          在這里插入圖片描述

          總結(jié):

          • 因?yàn)閙inimize求解的是函數(shù)局部最優(yōu)解,所以不同的變量初始值x0,會產(chǎn)生不同的結(jié)果。
          • 建議在不明確函數(shù)具體圖像的時候,多試試x0

          例題 - 2

          題目

          的最小值

          解答

          瀏覽 84
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产精品三级在线 | HYZEO神尾舞视频 | 先锋资源av | 91av在线观看免费一区 | 日产一区二区三区视频 |