看板 trans_math 關於我們 聯絡資訊
關於 KKT 2 λg(x) = 0 我想在補充一個例子...可以讓大家對 KKT 更有直覺一點 前面已經舉過 Example1: min x s.t. x^2 - 4 <= 0 在這個例子中 最小值發生在 x = -2 ; 在該點上 λ =/= 0; g(x) = 0 Example2: min x^2 s.t. x^2 - 4 <= 0 直觀上可以看出...最小值發生在 x = 0 該點同時也是 min x^2 無限制條件的解 因此...直覺上,就可以感覺得出來 λ 應該要是 0 在 x = 0 點上 λ = 0 ; g(x) =/= 0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 到此,大家可以想想看... 有沒有怎樣的例子中...λ會等於0 而且 g(x) 也會等於 0 呢? 不妨試試看 Example3: min (x-2)^2 s.t. x^2 - 4 <= 0 把限制式拿掉 可以看到 min (x-2)^2 的解...就正好在 x = 2 而 x = 2 這點...也剛好在 g(x) 的邊界上 !!! 大家可以試著算算看...說不定可以獲得一些感覺 希望這三個例子,可以幫助大家對於 KKT 能有更進一步的認識! ※ 引述《Cayley (水色天藍)》之銘言: : 其實 RAINDD 講得很對 : λ的正負號...扮演著極為重要的角色!! : 簡單的嘗試看看這題就知道了: : min x : s.t. x^2 - 4 < = 0 : 很值觀可以看得出來 : 最大值在 x = 2 最小值在 x = -2 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : min f(x) : s.t. g(x) < = 0 : 的 KKT Condition 有三組: : (1) dL/dx = 0 : (2) λg(x) = 0 : (3) λ > = 0 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 套用到例題中: : f(x) = x : g(x) = x^2 - 4 : L(x) = x + λ( x^2 - 4 ) : (KKT 1) dL/dx = 1 + 2λx = 0 : => x = -1/(2λ) : (KKT 2&3) : λg(x) = 0 => : Case1 : : λ= 0 (內點) & g(x) =/= 0 : λ = 0 => x = -1 / 0 (不存在 / 或是說,超越了 g(x)<0 的限制範圍) : (不過,眼尖的人應該不難發現,這個 x = -1/0 = -Inf : 這...正好是無限制條件下 min x 的正解...從這邊也可以看出 : 當 λ = 0 時...所解出來的...就正好會是無限制條件的狀況...) : Case2 : : λ>0 (邊界撞到) & g(x) = 0 : 所以可以把 x = -1/(2λ) 帶入 g(-1/(2λ)) = 0 : 可以解出 λ = 1/4 or -1/4 : 分別對應到 x = -2 or 2 : 剛好一個是最大值一個是最小值! : 這不是巧合...不然 KKT 就不用加上第三條要求 λ > = 0 了 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 如果把題目換一換 : min x^2 : s.t. x^2 - 4 < = 0 : L(x) = x^2 + λ( x^2 - 4 ) : (KKT 1) dL/dx = 2x + 2λx = 2x(1+λ) = 0 : => x = 0 or λ = -1 : (KKT 2: λg(x) = 0 ) 告訴我們 : Case1 : : 如果 x = 0 : => g(0) = -4 =\= 0 : => λ = 0 (這代表...在g(x) <= 0 的內點,不在邊界) : Case 2: : 如果 λ = -1 =\= 0 (這代表...撞到 g(x) 的邊界...不再內點...) : 則 g(x) = 0 => x = 2 or -2 : 事實上...這兩個點都是最大值 而非題目要的 最小值!! : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 在這兩個例子中,我們可以很清楚地感覺到 λ 所扮演的角色 : 當 λ = 0 的時候,就代表 g(x) < = 0 這個限制 : 並不會影響到 f(x) 求極值 : 而當 λ =\= 0 的時候...就代表限制式產生了一些影響力 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 真正的解讀上...可以從兩個方向來思考 : (1) 可以讓 f 變更好的方向 : (2) 可以走的方向 : 如果 f 是可微分的,不論單變數或多變數... : 基本上就是 讓 < Df , d > 內積小於 0 的方向 d 就是了 : 比方說在第一個例子中 : f(x) = x => Df(x) = 1 : => < 1 , a > = a < 0 : => a < 0 : 意思是說... : ** 只要往左走...就會變小 : 用數學來說就是 ...... f(x+a) < f(x) for some a < 0 : 在第二個例子中 : f(x) = x^2 => Df(x) = 2x : => <2x , a > = 2xa < 0 : => Case 1: x>0 => a<0 / Case 2: x<0 => a > 0 : 和我們所認知的拋物線一樣... : 在x<0 的地方要往右走才會變小 / x>0 的地方則往左走 : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 如果沒有限制式的話...也就是說 x 可以是任何實數的話 : 極值始終會滿足: ** 沒有任何方向可以讓 f 變小的那種 x 點!! : 也就是說 如果 x* 是極小值的話 : 會滿足 < Df(x*) , a > = 0 for all (a向量) : 所以 可以導出 Df(x*) = (0向量) : 因此,如果沒有限制式的話... : min x 並沒有極小值... 因為所有的實數 x 都滿足 Df(x) = 1 : 不過...加上限制式...就有極小值囉......!!! : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 加上限制式後...就會出現 : f 在 x* 點...有可以變小的方向 ... 但是受到 g 的影響...所以不能走!!! : 因此...那些點可以走? 那些點不能走? ...這就是個有趣的問題了! : 對於那些 g(x) < 0 的點來說,基本上任何能讓 f 變小的方向,都是可以走的! : 因此,只有在 g(x) = 0 時...會對方向造成限制 : 從上面兩個例子的限制式來看 : g(x) = x^2 - 4 : 邊界點是 x = 2 or -2 : 計算一下在邊界上的微分 : Dg(x) = 2x : => Dg(2) = 4 > 0 and Dg(-2) = -4 < 0 : 不難發現 ....... : 在 g(x*) = 0 這種邊界上的點 : 它可以移動的方向 ... 也只有 <Dg(x*) , d > < 0 的 d 方向 : 才會保持 g(x*+d) < g(x*) = 0 的限制式 : 在上面的例子...就是 在 x = 2 時....只能往左移...才會回到 x^2 - 4 < 0 : 另外一邊是 在 x = -2 時,因為 Dg(-2) = -4 : => <Dg(-2) , d > = -4d < 0 => d > 0 只能往右移 : 從第一個例子( min x s.t. x^2-4<=0 )來看...就可以看得很清楚了 : 在 x = 2 時,維持 g < 0 的範圍的方向是 "向左" : 讓 f 變小的方向也是 "向左" ... 因此 f 有方向可以再繼續變小 : 但是在 x = -2 的地方,維持 g < 0 的方向是 "向右" : 但是讓 f 變小的方向還是 "向左" ... 因此 f 沒有方向可以再繼續變小 : 也就是達到最小值了! : ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ : 最後...嚴格來說 : 你的題目應該是: : min xy : s.t. : g1(x,y) = -x <= 0 : g2(x,y) = -y <= 0 : h1(x,y) = x^2 + y^2 - 8 = 0 : 或是 : min -xy (就是 max xy 的case) : s.t. : g1(x,y) = -x <= 0 : g2(x,y) = -y <= 0 : h1(x,y) = x^2 + y^2 - 8 = 0 : 也就是說 : 真正的 Lagrange 應該寫成 : L1(x,y) = xy + λ1(-x) + λ2(-y) + λ3(x^2 + y^2 - 8 ) : L2(x,y) = -xy + λ1(-x) + λ2(-y) + λ3(x^2 + y^2 - 8 ) : (因為 x =/= 0 ; y =/=0 所以...... : 解的時候要注意: λ1 = 0 ; λ2 = 0 才行! ... ) : 但這樣的話...就會回到原本的 Lagrange : L1(x,y) = xy + 0*(-x) + 0*(-y) + λ3(x^2 + y^2 - 8 ) : L2(x,y) = -xy + 0*(-x) + 0*(-y) + λ3(x^2 + y^2 - 8 ) : 所以...直接用原本的上面兩種 Lagrange 也是 ok 的 : ※ 引述《RAINDD (I'm Kenino.)》之銘言: : : 原PO你好,你是初學微積分嗎? : : 這題其實不難,甚至也不需要用到Lagrange Multiplier就可以解了。 : : 我這麼說吧,個人以為困難的地方在於初學時"正確"而且"完整"建立觀念。 : : 個人分享一些當初學習時的心得與經驗, : : 不敢講我說得很對,但提出來供你做參考。 : : 1. 首先,先想想,什麼叫最大值?最小值?極大值?極小值? : : 既然叫"大"、叫"小",就意味著是經過比較得到的結果。 : : 依我看,你困擾的點在於,經過求解方法得到只有一個極值時, : : 我怎麼知道它是最大或最小? : : 然而,以這題來看,只有一個極值存在嗎?其實還有,只是你缺視了, : : 2. 即使,真的只有一個極值發生時,你又如何得知它是最大、最小值呢? : : 舉個例: y = x^2 - 2x + 3,我們知道 x = 1 時, y 有最小值 2。 : : 如何知道的?用配方法呀,一階微分求極值點、二階微分求開口, : : 甚至算幾不等式、柯西不等式…等任何可應用的方法, : : 都能幫助找maxima,minima,extrema,且看各憑本事。 : : 3. 再說Lagrange Multiplier方法,▽f = λ * ▽g, : : 聯立求解時,常常不是那麼地在意特徵乘數值 λ 。 : : 若你練習的題目做多了,會發現λ值的大小與"+""-"符號, : : 似乎能猜知該點是極大值或是極小值。 : : 而微積分課本也並不討論λ值與extrema的關連性。 : : 於此,我們並不多做討論,有興趣的話不妨自行研究或多找題目練習。 : : 4. 開始解題: : : 依題意,我們先弄清楚目標函數、和限制函數。 : : 目標函數: f(x,y) = x*y : : 限制函數: x^2 + y^2 = 8、 x > 0 、 y > 0 : : {依題意,限制函數為在xy平面上,x^2 + y^2 = 8,且 x > 0 , y > 0 : : 為第一象限的四分之一圓弧曲線。 : : 注意,題目並非x^2 + y^2 ≦ 8,所以並不包含圓內的區間} : : 極值發生的地方:(1)端點 (2)邊界上 {勿忘端點} : : (1)端點:(x,y) = (2√2,0) 及 (0,2√2) : : (2)邊界上:應用Lagrange Multiplier解得 (x,y) = (2,2)有一極值 : : 代入 (2√2,0)、(0,2√2)、(2,2)求f(x,y)並比較大小, : : 得知最大值為 f(2,2) = 2*2 = 4 : : 最小值為 f(2√2,0) = f(0,2√2) = 0 : : 於此,作答即完成。 : : 若你不放心 4 是否為最大值,就將限制函數x^2 + y^2 = 8參數化再 : : 用單變數函數求極值的方法解看看。 : : 若你能將題目轉化成解析幾何的意義進一步瞭解此題那又更好。 : : 5. 補充: : : 若限制函數為:x^2 + y^2 ≦ 8、x>0、y>0 : : 極值發生的地方:(1)端點 (2)邊界上 (3)區間內 : : (1)端點有三:(x,y) = (2√2,0)、(0,2√2)、(0,0) : : (2)邊界有三:y=0時,0≦x≦2√2、 : : x=0時,0≦y≦2√2、 : : x^2 + y^2 = 8。 : : (3)區間內:解 df/dx = 0 : : df/dy = 0 之聯立方程式。 : : 詳細的解答內容,就留給你自己發揮囉。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.74.126.44