【北京大學】《變分學》精品課 P32 - 32. 第32講 最優控制問題(2)【變分學(北京大學)】

长安书院_
146 位粉絲
2026年10月22日
AI 生成·可能包含錯誤
這個量的引進呢,我爲什麼把它叫做哈梅登量呢?
這個裏頭,就是因爲它將來還真的是跟哈梅登方程組有關係。
這個關係在什麼地方?
我現在把原來的哈梅登方程是,一個是X,一個是P,記不記得了?
一個是X,一個是P。
那麼對X的,X的導數等於這個等於對P的導數。
然後Y的,這個P的導數等於這個對X的負的導數。
所以現在來看,現在這個lambda和X的位置來看,
依我還是作爲參數。
現在我看,現在對於X導數等於H,應該對lambda導數。
哈梅登方程組應該是一樣,是吧?
然後把它看成是P的話,那麼它的導數應該是負的HX。
這纔是哈梅登方程組,對吧?
那麼現在這個東西對不對呢?
它這裏對lambda小導數,就它,你看,狀態方程。
所以這件事情本來就是狀態方程。
lambda是什麼東西呢?
lambda現在我不知道,我知道它引進一個公額變量,
這個變量是逐段連續可爲的,
所以這件事情不知道。
但是我說,爲什麼要引進它,
就是Prandtl和其他原理要說的話。
這個定理是這麼說的,
假設有一個U星星導出X星星,
導出X星星也滿足初始條件等等,
又假設U星星是實現這個極小,
那麼存在一個lambda是公額變量,
也就是說它是一個逐段連續可爲的趨之於而言的函數。
其實怎麼樣呢?
是的,第一件事情,
h沿着X星星lambdaU星星常數,
哈密頓量沿着軌道是常值。
這跟人類引進哈密頓量一樣啊,
沿着軌道,哈密頓是守恆啊,
守恆率啊,是守恆。
第二件事情,
這常數呢,叫做C好了。
C呢,是等於上缺陷,
所有的H、T、X星星T、lambdaT,
把這個點換掉,不是那個。
剛纔材料那個,
本材料逐段函數它在取之於C,
每個取值都在C裏取值,
V的每個值,VT在C,
就是每個T都在C取值,
這個常數是C呢,
C是這個的上缺陷,
當然當你V如果取成U星T代理以後,
當然就是C了,
別的數都小一點它,
這是一個很怪的事情,
因爲這個哈密頓量實際上是
正好使得它取最優的,
而且按照公格變量存在的那個東西放進去,
它達到最大值,
別的量都比較小。
第三點,
lambda一點等於負的H,
就是回答,
確實這個lambda引進的這個變量啊,
跟你正好配對,
跟你X正好配對,
配成一個哈密頓量,
正好變成一個哈密頓方程組,
這個結果還是挺令人驚訝的,
是吧,
你本來你單做L的問題,
你現在弄出一個L問題,
你別的沒有辦法,
你必要條件搞不到,
搞不到那個,
我現在但是可以存在一個東西,
存在一個lambda作爲公格變量,
這個公格變量產生的一個哈密頓量,
然後這哈密頓量確實沿這個最優的軌道是長值,
這是一個非常好的說,
另外這長值實際上是所有這個當中的最大值,
第三點,
公格變量跟你原來的變量,
狀態變量合在一起,
配對之後形成滿足哈密頓方程組,
這件事情不是容易看出來的,
所以這個發現是二十世紀的五十年代,
一個前蘇聯的數學家,
引進來的,
這件事情是對於自由控制是一個非常大的進展,
不然就好像歐拉勒方程一樣的,
我找到一個必要條件,
具體問題我能夠有辦法給你,
至少有些辦法來算,
至少有辦法能夠確定了,
所以這是一個很了不起的結果,
龐春陽本人是一個非常傳奇的數學家,
他是一個瞎子,
從小就沒法看書,
是他媽給他念書,
念數學,
所以是很了不起的,
他媽也很了不起,
而且他不是搞應用數學的,
他是個純的託普學家,
後來他,
由於他們蘇聯當時要,
這些事情跟自由控制有關係的事情,
我想大家都能理解,
什麼事情,
所以他就做這個事,
他就做出這個原理來了,
所以是很了不起的數學家,
所以很傳奇性的數學家,
好,
那麼我就說這個龐春陽基達的原理,
這個定理我們現在不可能證明它,
這個定理需要很複雜的很多東西,
也很麻煩,
都不是很簡單的事情,
我只能告訴你個大意,
證明這大智思想是怎麼回事,
這大智思想就是你很多,
假設你當它是已知事實了,
或者可爲性什麼要求不那麼高了,
我本來我就要求很高,
就那麼算下去,
你知道大概是這個意思,
因爲爲什麼要告訴你這個大智的意思呢,
不然的話就好像告訴你天上掉下來的東西,
是吧,
就是很神的一個東西,
但實際上你想法上它還是有一種自然的想法,
我就把這個自然的想法告訴你,
所以講義上我也是這麼寫的,
這個證明我不可能在我們這個課上來講它的證明,
這個是一個比較專門的,
甚至有人專門寫書來講這個證明的,
那我就說這個意思在這,
這個證明的思想大概怎麼分成幾點,
第一點,
你怎麼能夠說出有這麼一個函數,
也就是最優的東西爲什麼滿足H,
有這麼一個東西H是零,
那麼其實這裏最要緊的是,
核心在於你λ怎麼做,
你λ湊得好就是,
就問題是λ湊得好最後能滿足這個事情,
是還是有一定的內在的聯繫的,
是吧,
所以問題怎麼湊這個函數,
就λ怎麼造,
爲了造這個λ這東西,
我假定這麼一件事情,
隨便給個初始值,
對任一個初值,
初態,
對任給初態的話,
假定存在控制,
有了控制能夠存在,
這個事情怎麼樣呢,
使得從初始值把X0變走到末態,
X1是給定的,
就是我現在初始態,
X0給好了,
末態給好了,
我假定,
給任給初值,
我都能夠找到一個控制,
把這個點走下軌道,
這是很好的軌道,
X0t,
經過時間t到達這個末態,
這都作爲假定,
你能夠自由控制嗎,
假定這件事情都對,
這能實現,
當然要有存在一個控制函數,
等於你要開一個車,
你把這個車,
你這個駕駛的控制好了,
使得你整整的從這點出發,
能夠經過時間t到達另外一個目的地,
這個控制,
存在一個控制,
存在這條軌道走過去,
而且這個是最好的,
能夠控制過去,
而且是最好的,
他跟其他的來比較,
另外一條路,
你從這走過去,
另外一條路走過去,
走的價值,
剛纔付出的價值函數都比較大,
這是最小的,
那麼我就把一個定義的函數,
叫做接x0,
這個函數就是從0到t,
我剛纔那個t就不寫了,
我選擇寫,
這是x,
x0t,
u,
x0t,
dt,
每個初始值給好了,
最終要到這,
那麼總存在一個u,
也存在x,
走到這,
然後付出的代價多少,
算出來,
這是最小的,
那麼這個最小是一個函數,
它皆是一個,
是rn函數,
是吧,
好,
這件事情有了之後,
你說,
實際上我把,
我把這個換一換,
我說從這個軌道來看,
我假如跑到這個點去,
在t的時刻,
這是t0的時刻,
隨便一個t的時刻,
我說把初值如果是取這個,
而不是取x0,
是取這個,
那當然還是有軌道,
就是原來最好的軌道,
把它走到這,
對不對,
就是說,
假如我把這點不是t0開始,
我要是從某個t開始,
那初值我也跟着跑,
跟着就不是拿着它,
而是拿這個值,
那麼又還是沿着這個軌道,
還是沿着,
還是按照這個控制,
還是按照這個軌道,
那從這開始,
是不是也從到它了,
到它,
那是最優的,
否則你要不是的話,
就不對,
不是最優的了,
是吧,
假如不是的話,
假如你可以另外一條路走,
那當然那個就不是最優了,
是吧,
所以這個時候,
從這件事情說明什麼呢,
是換成x,
x0t,
等於t,
t,
而x,
x0t,
就s了,
u,
x0s,
ds,
對吧,
這就是最優的原理,
就跟我們說變分原理,
變分原理,
任何階一段,
還是最優的,
是吧,
就我們上次,
講歐拉拉格朗方程的時候,
那你是最優的話,
把時間縮小一點點,
就是區間隨便,
任何一個子區間來看,
它還是最優的,
這是一樣的,
我現在從它出發到它,
或者從中間的某一個點到它,
那當然同一個軌道了,
不然你就不和好了,
所以我就得到了這個事情,
所以這個事情的話,
現在這個x,
是依賴於初值的,
是個t的函數,
對所有t都對,
那麼我現在,
把方程兩邊圍一下,
左邊圍一下,
點成對t圍上,
右邊圍一下,
對吧,
你現在看看,
我說現在也不需要多,
沒多少算的,
就你看看,
你這個意思什麼意思啊,
你看,
我就把這個東西,
叫做負lambda,
t,
這個東西就是大F,
x,
x0,
t,
u,
x0,
t,
對吧,
我定義這個東西,
定義lambda,
t,
lambda哪來呢,
lambda我就讓等於它,
把這個放在一起看看,
什麼呢,
這個就是負l,
加上lambda,
F,
什麼東西啊,
這時候,
x是變成x心心,
u是u心心,
lambda就是剛纔那麼定義的,
那麼一個函數,
對吧,
就是你那個,
所以,
這個條件,
你說能夠不能滿足啊,
這個不太稀奇,
關鍵你lambda怎麼造,
你lambda怎麼造,
我剛纔lambda就做成這個了,
就剛纔定義出這個函數,
這個函數叫t度,
就叫做lambda,
是共和平量,
好,
這個想法,
咱們就承認它了,
是吧,
你沒什麼,
那麼,
你這樣子做出來的東西,
是不是真的好呢,
真的能夠說它,
實際上這個值是最大的值,
你換了,
這兒不是u心,
換了隨便任何一個v,
v在c裏頭,
它都是最大的值呢,
這件事情可不是隨便你說,
剛纔造出來的,
是吧,
你隨便lambda那麼湊出來,
你可以啊,
湊出來之後是不是真好呢,
是不是真好呢,
那還也是,
現在是不是真好,
我就這樣看,
我對你認給一個c,
v屬於c,
就是在那個,
任何一個向量來看,
我來考慮呢,
x一點等於大f,
xv,
這不是取u了,
就是不是跟着那邊的,
也不是那麼好的東西,
就是v放進去,
x0定於x0,
我來求解這個方程,
求解出這個方程,
我叫做x彎彎t,
這個解叫做x彎彎t,
那我還是這麼看,
從x0出發,
在t0的時候是x0出發,
原來的位置就在這兒,
中了的地方呢,
還是xt,
中它是這個,
一開始我不走,
本來最優的路線是,
是從,
從這兒有一個最優路線到它,
本來我們是跟着說的,
現在我一上來,
不是條最好的路,
所以就隨便一個v在這兒,
所以它走的另外一條路,
它最好的路本來是這樣一條路,
用紅筆來畫這條線,
那現在它不是了,
你拿個v在這兒做一個,
那就走的,
可能走的就在,
走的彎彎曲走到這兒去了,
是吧,
我隨便拿一點t拿來,
我拿這點t之後呢,
我拿這個,
它走到這兒叫做x彎彎t,
然後我知道,
從它做初值,
它做初值,
我可以走出一條好線來,
這是剛剛前面說過的,
我從隨便哪一點初值,
我都能做得最好,
找一下最優的路線,
所以我這時候能夠找出一條最優路線,
從這兒出發,
能夠走這條最優路線,
那麼我如果現在的路是從x0先走到這個,
然後再從x彎彎再走到xt,
如果是這樣做的話,
那麼我們就可以寫出來,
這個x0是從它走到它的這條路線走出來的,
那應該小一點,
從它走到它,
這是x0,
這是0到t,
這是L,
這是x彎彎svds,
加上這個截x彎彎,
對吧?
這條路走的最好的,
最小的,
最短的,
一條路是從這兒到這兒,
就是按照這條路走,
x彎彎路走,
這條路走出來之後,
當然不如這個好,
從它再出發到這兒,
如果這兩個加起來,
要比它小的話,
那剛纔這彎彎的路就是最好的了,
對吧?
當然不可能是,
所以這樣的小一點的,
這沒錯吧?
好,
然後你把這個截x彎彎t,
減掉截x0,
除t,
負的,
就小於等於這個0t,
Lx彎彎svds,
除t,
但t去0,
負的,
d接dt,
那麼小於等於這邊是Lx0,
這個東西算一算,
這是t度的,
在這裏導出是t度接,
是吧?
這是x0,
這個地方是乘上x彎彎點,
s彎彎點在0點的值,
所以s彎彎點,
s彎彎就是剛纔那個f,
所以就是fx0,
對吧?
所以我們算出來的是,
負的這個東西,
現在我x0是隨便給一個東西,
隨便給一個,
所以我現在特別的,
我x0就拿什麼去代呢?
就拿剛纔的那個好的xx0t放進去,
這個放進去,
這個變成L的地方,
是x0星了,
就是好的,
或者x1星,
這個東西,
是吧?
所以x一樣都換成x1星了,
都是好的了,
是吧?
x0都換成x1星了,
這個東西就變成了λ了,
是吧?
就是剛纔我們算的λ就是它了,
然後這就是λ了,
這個都是f相應的那個x星的地方就換它,
就唯獨u的地方沒換,
u的地方換成就是b,
好了,
所以這個東西就是什麼呢?
剛纔這個加起來就是,
h,
t,
x1星,
t,
這個是λ,
t,
v,
小一點0,
好,
這就是我們要做的第二件事情,
你看,
剛纔這個算了半天它是0,
它這個算了半天小一點0,
上切切當然能達到,
v的地方換成ut就是,
第二件事情整完了,
這些證明都是形式的,
這都不是真正證據辦法,
因爲可違性我也沒驗證,
還有很多是存不存在的道路等等都得仔細說,
我有大意思告訴你就是這個,
第三件事情再看這個了,
這是最核心的了,
是吧?
這個非常重要,
到底是不是哈梅特方程數,
是不是哈梅特方程數,
我現在就不,
就令,
x,
u,
等於這個是,
-l,
x,
u,
減掉接,
x,
乘上,
這個f,
x,
u,
t就接,
將來它不就是λ嗎?
它就是λ嗎?
所以好,
我就把它放在這兒,
然後,
然後我利用,
x,
u,
等於x心,
u心,
放進去達到極大,
實際範圍達到極大,
所以我然後就得到,
偏h,
偏xi,
我這是帶進去之後的,
這個我就剛這個以後,
剛纔這h又是任意這麼定義的,
然後我把這個帶進去,
帶進去之後我就把它記成心心吧,
就表示是它帶進去之後的值,
那麼這個值當然應該是0了,
它達到極大值,
是最優等於0,
然後你就算,
下面就簡單,
直接去算,
算出來就是,
就是我們這個,
所以現在我這算出來就是,
我,
我大致算一下,
偏l,
偏xi,
減掉,
偏偏xi,
sigma,
偏j,
偏xj,
fi,
fj,
那麼這就負的偏l,
偏xi,
減掉,
sigma,
i,
j,
2j,
f,
偏xi,
偏xj,
乘上fj,
減掉,
sigma,
偏j,
偏xj,
偏fj,
減,
偏xi,
這個不動它,
這個地方,
這個寫錯了啊,
是j,
這個地方就是,
偏lambda,
i,
偏xj,
因爲lambda剛纔就是那麼定義的,
lambda是t度,
所以這個就是它,
這個是,
這是lambdaj,
好了,
那麼現在我們看,
lambda一點,
就應該是sigma,
偏lambdai,
偏xj,
xj一點,
對吧,
求導數碼,
好,
這個是,
這個東西就是,
偏lambdai,
偏xj,
這個xj就是fj,
偏lambdaj,
xj就是它,
那麼就等於,
翻過來,
這個就是負的偏l,
偏xi,
減掉sigma,
lambdaj,
偏fj,
偏xi,
就是負的hxi,
就算一下,
沒有別的,
沒有什麼花樣,
就一個加號,
這可能算,
就符號上有點問題,
加,
對,
然後就是加,
就是,
等於加,
就是減,
好了,
所以,
我只是,
這個我跟大家說的是形式的證明,
不是一個嚴格的證明,
嚴格證明什麼可爲性啊,
什麼都得驗證,
很囉囉嗦嗦,
而且剛纔每個是不是存在那些事,
都得仔細檢查,
但是這裏證明很多,
本來證明是很長的,
但我現在是剛纔的一個線索,
大致是怎麼出來的,
所以這裏頭,
最要緊的三個結論,
第一個結論說明什麼呢,
沿着自由軌道,
自由控制之後,
得到一個自由軌道,
沿着自由軌道,
它們的量是常值,
而且是所有當中,
它們的量當中最大值,
什麼意義,
就是在這個意義下,
你控制換,
在每一點隨便換,
換哪一個控制處,
不是那個u,
都比較小,
最大值是它,
所以在某一點,
它是最大值的一個原理,
沿着軌道,
它們的量達到最大值,
第二件事情,
確實是一個哈密勒系統,
狀態變量引進的哈密勒系統,
下面做一個應用,
不然說了半天,
太複雜了,
那麼長的東西怎麼用,
怎麼用呢,
就回到我們剛纔舉的兩個例子,
沒有那麼多時間,
我在黑板上算一個例子,
大家自己再看看第二個例子,
自己再做做另外一個例子,
現在我們回到這個問題,
就是現在回到q一點等於αuq,
q0等於q0這個例子,
這是u,
是這些u屬於L無窮,
0t,
u在0之間,
u的每個值在0之間,
那麼目標範含,
L等於1-uq,
下面我們怎麼做這個事情呢,
就要想用這個計算式原理,
用計算式原理,
關鍵就要引進共額變量,
然後再引進它的哈密勒量,
引進共額變量λ,
然後我們就得到哈密勒量h,
等於負的L加上λ的f,
現在問題我要說一個要引起注意的話,
因爲這個問題是求這個量的極大化,
我們要使產品達到最大,
我們剛纔那個形式當中都是產品是h,
L達到極小,
所以這裏有一個正負號的問題,
所以這裏我本來應該是負的L是它,
現在就是正的L,
因爲L變成負的這個,
所以我就是1-uq,
λ是什麼,
放在這,
不管它,
f是什麼,
所以寫出來就是1-u加上αu,
加上λαu,
現在我們要想看怎麼能用剛纔原理呢,
那個原理呢,
就是我們要極大化h,
我們要想找到最好的u是什麼呢,
應該是h是最大的,
使得h能極大,
那麼h能跟極大,
h跟u的關係是q不管它了,
這是負u加上q減掉這個是加上λα-1的u,
你要想讓,
因爲你現在別的不動,
別的都不動的時候,
你換成把這個它變,
所以這個時候你q不管它了,
你現在q在這,
現在q只要它是非負的話,
那麼最大就是它,
所以我現在要使的什麼呢,
這個就是,
我已經假定q0總是非負的,
q0如果是用這個解方程式,
是e的多少次方的東西,
所以根據e來處置,
處置如果是正的就是正的,
處置是全負的,
全負的是沒有意義的,
因爲不會有意義,
所以只有意義是這個,
所以是q0,
q它是正的話,
q都是正的,
所以要極大化它的話,
就得要什麼,
要這個α,
這個我們就知道,
所以ut就應該是兩部分,
是1或者0,
當αλ大於1,
是αλ小於1的時候,
如果是正的,
那u是最大小到1,
本來就是最大1嗎,
要最小到0嗎,
那如果它負的話,
得就是最小小到0,
所以解,
當然αλ什麼東西也不知道,
所以先擱着,
先擱着,
第二件事情我們來看,
共和變量滿足方程,
那麼λ得解它了,
那麼λ自然滿足這個方程,
滿足這個方程是q的求導數,
所以它等於,
等於負的1-u,
加上λαu,
所以我們就得到了,
λ一點加上αλ等於0,
當α等於1的時候,
當λ一點,
等於負1,
等於α等於0的時候,
當u等於0的時候,
u等於1的時候,
這就是α,
翻過去,
等於0,
這個u等於0的時候,
u等於0的時候,
一減掉,
就是沒了這邊的1,
是吧,
所以就能寫出來,
λ等於,
一個叫做常數,
c1-αt,
當然這是負7,
加上一個d,
就是u等於0,
u等於1,
u等於0,
這個c和d是常數,
然後你要考慮一下,
怎麼銜接,
不過現在不知道在哪銜接,
所以現在去把它分段寫,
第三件事情,
要提醒大家一件事情,
就是末端條件,
這個事情跟我們原來變分問題相似,
其實我們原來講這個,
歐拉朗朗方程的時候,
是應該考慮到這個,
兩端點的條件,
但是過去我們考慮敵式問題,
兩端點固定了,
所以就不用考慮,
兩端點就是0就完了,
但是有時候,
現在我們的這個問題,
不是都是敵式問題,
它一邊是給定了,
因爲0初值是給定了,
但是中寮點這點,
t這點是沒有給定,
沒有給定之後,
這時候就要造成,
λ上頭要加條件,
就λt要加條件,
爲什麼,
請大家回去想,
原因就是在得到相應的方程的時候,
你要相應相應分佈積分,
歐拉方程當中都是,
可以隨便寫來寫去,
都是因爲邊界上都講定,
邊界向都變成0了,
邊界爲什麼是0呢,
原來初值是0,
兩個邊點都是0就算了,
現在邊界點有時乘上λ的,
那麼有一個點不是0的話,
那就必須λ是0,
所以這叫做末端條件,
這個我叫大家回去想一想,
因爲這個事情我們涉及到過去,
講敵式問題,
諾曼問題等等,
週期問題等等,
都有這些事,
這件事情我就不再說了,
末中端條件加了之後,
我們就得到了什麼呢,
就是在中端的地方,
UT是不等於的,
所以這時候UT等於0,
也就是D,
剛纔這個D就等於T,
所以D等於T之後,
我們最後就把控制變量的轉換,
我們已經知道了,
控制變量的值應該在αλT等於1,
這個地方轉換,
也就是T等於TS等於α減掉1。
最後的結論,
最後的結論我們就算出來,
UT等於這是A,
這是0,
這是0到TS,
這是TS到7,
這時候得到QT,
控制的就是Q0E-αT,
這是Q0E-αTS,
這也是0到TS,
這是TS到T,
那麼最後算出來I等於什麼東西,
這個積分是TS到T,
Q0E-αTS,
DT就等於Q0E-αTS,
好,這是我們最後的結果,
這個問題從頭到尾,
用極大數學原理辦法,
看出來我們最後的結果是Q,
最優控制的Q是什麼,
有一段跳了,
就是在有一個時間,
從0到TS之間,
TS是剛纔算出來的一個數,
這是一個數,
這是一個比例的數,
在這段時候,
我使出是多少件,
是固定的一個數A,
然後後頭就沒有了,
然後得到算,
算出來一步步算下去,
這個例子就給大家看一個怎麼算這個例子,
最要緊的辦法現在就是利用極大值,
它在什麼樣大極大值,
它極大值我就可以判斷優在什麼樣,
該怎麼樣,
這種結果是,
同樣第二個例子,
今天講的另外一個例子,
大家也可以用這個辦法去算,
算的時候主要體會一下這類問題,
我們怎麼用這個極大值原理去做,
比原來的歐來老常方程要複雜多了,
但是這種就是對處理這類問題一種很有意思的方法,
今天沈老師沒把講義帶來,
他沒拿來,
我已經發給他了,
我講義上可能寫的稍微有點,
有些地方寫的打印有點毛病,
到時候可能大家自己看,
以今天講的爲準,
打印有點,
下標打點什麼錯了,
你自己改改過去好不好,
今天就講到這,
今天我們就是給大家介紹一個最初步的,
這個 Pontiac 極大值原理。
