作者Cayley (水色天藍)
看板trans_math
標題Re: [多變] Lagrange
時間Mon Jun 25 22:23:18 2012
其實 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就可以解了。
: 我這麼說吧,個人以為困難的地方在於初學時"正確"而且"完整"建立觀念。
: 個人分享一些當初學習時的心得與經驗,
: 不敢講我說得很對,但提出來供你做參考。
: ※ 引述《blak (緯緯)》之銘言:
: : 題目:用lagrange求函數f(x,y)=xy受限於x^2+y^2=8,x>0,y>0的所有極值,解釋算出的極值
: : 為最大值或最小值
: : 我算出來(2,2),(-2,-2)題目說x>0,y>0所以(2,2)代入題目=4
: : 請問要如何判斷4為最大或最小值?
: 1. 首先,先想想,什麼叫最大值?最小值?極大值?極小值?
: 既然叫"大"、叫"小",就意味著是經過比較得到的結果。
: 依我看,你困擾的點在於,經過求解方法得到只有一個極值時,
: 我怎麼知道它是最大或最小?
: 然而,以這題來看,只有一個極值存在嗎?其實還有,只是你缺視了,
: 2. 即使,真的只有一個極值發生時,你又如何得知它是最大、最小值呢?
: 舉個例: y = x^2 - 2x + 3,我們知道 x = 1 時, y 有最小值 2。
: 如何知道的?用配方法呀,一階微分求極值點、二階微分求開口,
: 甚至算幾不等式、柯西不等式…等任何可應用的方法,
: 都能幫助找maxima,minima,extrema,且看各憑本事。
: 3. 再說Lagrange Multiplier方法,▽f = λ * ▽g,
: 聯立求解時,常常不是那麼地在意特徵乘數值 λ 。
: 若你練習的題目做多了,會發現λ值的大小與"+""-"符號,
: 似乎能猜知該點是極大值或是極小值。
: 而微積分課本也並不討論λ值與extrema的關連性。
: 於此,我們並不多做討論,有興趣的話不妨自行研究或多找題目練習。
: : 麻煩大家了~謝謝
: : --
: : ◆ From: 118.168.129.208
: : 推 beansop:它的限制條件是在一個半徑為8^(1/2)的圓 114.46.159.6 06/13 15:45
: : → beansop:在第一象限中的區域,所以要討論邊界上 114.46.159.6 06/13 15:45
: : → BaBi:討論邊界上和區域內.... 140.135.26.32 06/13 15:46
: : → beansop:及圓內的極值發生點,所以你分兩個部份 114.46.159.6 06/13 15:46
: : → BaBi:基本上就是求出所有臨界點, 在比較代入後大小 140.135.26.32 06/13 15:47
: : → beansop:然後討論出來的值作比較,就OK了 114.46.159.6 06/13 15:48
: : → BaBi:ㄜ, 插到b大了QQ 140.135.26.32 06/13 15:48
: : → blak:還是不太懂..不知道可以麻煩寫算式? 118.168.129.208 06/13 15:57
: : → blak:請問該怎麼列區域內的算式? 118.168.129.208 06/13 16:16
: : → blak:最大值9,最小值0正確嗎? 118.168.129.208 06/13 16:56
: : → blak:我用Lagrange算答案還是4.... 118.168.139.231 06/13 20:45
: 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
※ 編輯: Cayley 來自: 203.74.126.44 (06/25 22:39)
※ 編輯: Cayley 來自: 203.74.126.44 (06/25 23:42)
※ 編輯: Cayley 來自: 116.59.246.58 (06/26 08:08)
1F:推 RAINDD: 125.232.24.45 06/26 15:16