從另一個角度看拉普拉斯變換
全文轉載至 https://zhuanlan.zhihu.com/p/40783304
從另一個角度看拉普拉斯變換
J Pan
航空工程師
一、奧列弗. 赫維賽德是何許人也
二、傅立葉變換(輕量版拉普拉斯變換)
三、拉普拉斯變換(原來就是那麼回事)
拉普拉斯變換可以說是現代工程學使用最廣泛的數學工具,它通過數學變換將微積分方程轉化成代數方程,為求解連續空間連續時間的方程提供了可能。但是,一般的教材一上來就是拉普拉斯變換的數學定義,對於其歷史和代表的深刻含義沒有任何介紹,導致很多人一直頭疼不已。今天,我們嘗試一下從不同的角度來看看拉普拉斯變換到底是怎麼回事?先從一個人說起:奧列弗.赫維賽德,一位在科學史地位被嚴重低估的人。
一、奧列弗. 赫維賽德是何許人也
奧列弗. 赫維賽德(Oliver Heaviside)是維多利亞時期英國人,出身於極度貧窮的家庭,聽力部分殘疾,還得過猩紅熱,從未上過大學,完全靠自學和興趣掌握了高等科學和數學。
圖片來自:https://en.wikipedia.org/wiki/Oliver_Heaviside
很多人熟悉赫維賽德是因為MATLAB有一個赫維賽德(Heaviside)函式,它大概長這個樣子,可以看成一個階躍函式,這個函式因為和狄拉克(Dirac)函式之間的千絲萬縷的關係而顯得尤為重要。
我們現在說赫維賽德,當然不是因為這個函式,而是因為我們歎為觀止、驚為天人,怎麼誇都不過分的麥克斯韋方程組,麥克斯韋本人並沒有見過這個方程組,它在一定程度上應該叫“赫維賽德方程組”。
這四個公式簡直太對稱了!而且它們的含義也很清晰:
變化的電場產生磁場,變化的磁場產生電場,電磁波也就是電場和磁場此消彼長、相互轉化、向前傳播的形式。多虧了赫維賽德,麥克斯韋的理論才得以在十九世紀結束之前就真正站穩了腳跟併發揚光大。可以毫不謙虛的說:宇宙間任何的電磁現象,皆可由麥克斯韋方程組解釋,包括光。也正是因為這個方程組完美統一了整個電磁場,讓愛因斯坦始終想要以同樣的方式統一引力場,並將巨集觀與微觀的兩種力放在同一組式子中:即著名的“大一統理論”,不幸的是麥克斯韋成功了,而愛因斯坦沒有。
麥克斯韋早在1873年便出版了跨時代鉅著《電磁通論》,可惜的是,他英年早逝,他的方程組在生前並沒有得到科學界的關注,其中一個很重要的原因是他的理論描述複雜得令人吃驚,他最初提出的電磁理論公式包含了二十個方程,直接導致了他的理論在首次發表後的10多年時間內,幾乎無人問津。
赫維賽德最偉大的貢獻是簡化了麥克斯韋的原始方程組,通過他天才般的洞察力,挖掘出了蘊含在麥克斯韋方程內部的深刻意義,從而使簡化後麥克斯韋方程組呈現出無與倫比的對稱性,成為歷史上是最漂亮的方程式(沒有唯一)。
而我們今天要說的,是赫維賽德的第二個重要貢獻:運算微積分。
學過電磁學的人都知道,在歷史上人們發現好多定理公式,都是用微積分的形式表達的。1880年-1887年之間,赫維賽德在從事電磁場研究的同時,為求解微積分方程,在他的分析計算中引入了微分運算元的概念,這個方法牛逼在什麼地方呢?
——它可以將常微分方程轉換為普通代數方程。
天才與普通人的區別就是人家是靠“直覺”來解決問題的。赫維賽德是怎麼解微分方程的呢?他把微分、積分運算用一個簡單的運算元來代替。
——微分運算元用 p p p 來表示,
p ↔ d ( ) d x p\leftrightarrow\frac{d()}{dx} p↔dxd()
——高階微分運算元為,
p n ↔ d n ( ) d t n p^n\leftrightarrow\frac{d^n()}{dt^n} pn↔dtndn()
——積分運算元符號用 1 p \frac{1}{p} p1 表示,
1 p ( ) ↔ ∫ − ∞ t ( ) d τ \frac{1}{p}()\leftrightarrow\int_{-\infty}^{t}()d\tau p1()↔∫−∞t()dτ
也就是說,在某種運算元下,積分和微分對應的是倒數關係,至於運算元 p p p 代表什麼,赫維賽德也沒有多解釋,在缺乏嚴密數學基礎的情況下,人家直接放在文章就用了,還發表了。比如常見的一個二階常微分方程,
m d 2 x d t + c d x d t + k x = 0 m\frac{d^2x}{dt}+c\frac{dx}{dt}+kx=0 mdtd2x+cdtdx+kx=0
用赫維賽德的微分運算元變換一下,就變成了代數表示式,
m p 2 + c p + k = 0 mp^2+cp+k=0 mp2+cp+k=0
赫維賽德之所以這麼做,是因為他的“物理直覺”告訴他這麼做,就是這麼硬。這顯然是一種開外掛的行為,因此也受到當時的主流數學家們們的攻訐,他們認為赫維賽德就是十足的“民科”,文章沒什麼理論依據,自己在那空想呢。當然,赫維賽德也不是弱雞,科學家懟起人來,也是毫不含糊:“因為我不能理解消化過程就拒絕晚餐嗎?不,只要我滿意這個結果。”
好了,扯了那麼遠,有童鞋已經不耐心了:這些和拉普拉斯變換有什麼關係?謎底就是:赫維賽德的微積分運算元,就是拉普拉斯變換的前身。
赫維賽德的運算元驗算雖然缺乏嚴密的數學基礎,往往能給出重要且正確的結果,方法確實有效,無法駁倒。於是在世紀之交,數學家們開始嘗試隨運算元理論進行嚴格化。後來,人在在70年前法國數學家拉普拉斯的一本有關概率論的著作上,找到了這種演算法的依據,但是這本書上提出的並不是現在我們看到的拉普拉斯變換,而是著名的Z變換。什麼?拉普拉斯變換不是拉普拉斯提出的?隨著二戰後拉普拉斯變換的廣泛使用,赫維賽德運算元的作用被弱化了,但是不可否認的是,這是這種“不正規”,僅靠“天才的直覺”而發明的方法,促成了現在拉普拉斯分析法。
二、傅立葉變換(輕量版拉普拉斯變換)
在說拉普拉斯變換以前,我們要先提一下傅立葉變換,這可以看成是輕量版的拉普拉斯變換。傅立葉變換說的是什麼事?說的是自然界的很多現象,都可以用三角函式進行分解。
圖片來源:www.bolvan.ph.utexas.edu
古巴比倫科學家在很早就用了三角函式和逼近的方法,對天體運動進行觀測和預報,1748年,大神尤拉用類似的方法分析可弦的振動(大神就是高產,哪哪都有他的身影),1753年伯努利提出任意物理弦的振動都可以可以表達為三角函式的和,但是他沒給出證明(注意,伯努利是一個家族,3代人中產生了8位科學家,後裔有不少於120位被人們系統地追溯過)。1807年,傅立葉於年在法國科學學會上提交了一篇論文,運用正弦曲線來描述溫度分佈,論文裡有個在當時具有爭議性的觀點:任何連續週期訊號可以由一組適當的正弦曲線組合而成。傅立葉沒有做出嚴格的數學論證。這篇論文的審稿人中,有歷史上著名的數學家拉格朗日和拉普拉斯,當拉普拉斯和其它審稿人投票通過並要發表這篇論文時,拉格朗日堅決反對,認為傅立葉的方法無法表示帶有稜角的訊號。法國科學學會屈服於拉格朗日的威望,拒絕了傅立葉的工作。1822年,傅立葉變換隨其著作《熱的解析》發表,但已經是15年之後了。1829年,狄利赫裡通過推導其適用範圍,完善了傅立葉變換。
我們知道,三角函式可以通過尤拉公式與復指數函式聯絡起來,
e
i
ω
t
=
c
o
s
(
ω
t
)
+
i
s
i
n
(
ω
t
)
e^{i\omega t}=cos(\omega t)+isin(\omega t)
eiωt=cos(ωt)+isin(ωt)
也就是說,復指數函式是與正弦函式、餘弦函式緊密相關的,那是不是某些訊號也能通過復指數函式進行分解呢?我們不妨先來研究一下
e
i
ω
t
e^{i\omega t}
eiωt 有什麼特殊的性質。
在galieluo:自然常數“e”,工程中的自然數“1” galieluo:傅立葉變換後面的到底有什麼小祕密 galieluo:被眾人膜拜的尤拉恆等式是個什麼東東? 三篇文章中,我們得出了以下結論:自然常數 e e e 可以描述事物的連續變化,虛數單位 i = − 1 = e i π 2 i=\sqrt{-1}=e^{i\frac{\pi}{2} } i=−1=ei2π 可以描述旋轉,復指數函式 e i ω t e^{i\omega t} eiωt 代表一個連續旋轉的圓。(這一點不太理解的,可閱讀上面三篇文章,裡面有詳細介紹)。
當頻率為
ω
=
1
r
a
d
/
s
\omega =1rad /s
ω=1rad/s 時,
當
ω
=
2
r
a
d
/
s
\omega=2rad/s
ω=2rad/s時,
clc;clear;
h = animatedline;
xl=xlabel('cos(\omegat)');%
yl=ylabel('sin(\omegat)');%
grid on;
title('\omega = 1rad/s Made by J Pan')
axis([-1,1,-1,1]);
axis square;
N = 100;
t=linspace(0,2*pi,N);
w=1;
x=cos(w*t);
y=sin(w*t);
a = tic; % start timer
for k = 1:N
addpoints(h,x(k),y(k));
hold on
quiver(0,0,x(k)*1.1,y(k)*1.1)
b = toc(a); % check timer
if b > (1/90)
drawnow % update screen every 1/30 seconds
a = tic; % reset timer after updating
end
end
因此,
{
e
i
ω
t
}
\{e^{i\omega t}\}
{eiωt} 可以看成是一組連續旋轉的曲線,幅值永遠為1,頻率一直在變。這些旋轉的曲線能幹什麼?
圖片來源網路
你能想象到很多曲線,都可以用這些不同頻率,連續旋轉的圓,通過線性疊加得到,而傅立葉定律,就是對這個結論的數學描述,傅立葉定律說:只要一個函式滿足如狄利赫裡條件,都能分解為復指數函式之和,哪怕是如拉格朗日提到的帶有稜角的方波函式。
狄利赫裡條件為:
(1) 函式在任意有限區間內連續,或只有有限個第一類間斷點;
(2)在一個週期內,函式有有限個極大值或極小值;
(3)
x
(
t
)
x(t)
x(t) 在絕對可積,即
∫
0
∞
∣
x
(
t
)
∣
≺
∞
\int_{0}^{\infty}\left| x(t) \right|\prec\infty
∫0∞∣x(t)∣≺∞ 。
當滿足狄利赫裡條件時,傅立葉變換及其逆變換為:
F ( ω ) = ∫ − ∞ + ∞ f ( t ) e − i ω t d t F(\omega)=\int_{-\infty}^{+\infty}f(t)e^{-i\omega t}dt F(ω)=∫−∞+∞f(t)e−iωtdt
f ( t ) = 1 2 π ∫ − ∞ + ∞ F ( ω ) e i ω t d ω f(t)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}F(\omega)e^{i\omega t}d\omega f(t)=2π1∫−∞+∞F(ω)eiωtdω
於是就可以很好的解釋拉格朗日和傅立葉之間的爭論了——拉格朗日是對的:正弦曲線無法組合成一個帶有稜角的訊號,稜角處會有很小高頻波動(吉布斯現象)。但是,我們可以用正弦曲線來非常逼近地表示它,逼近到兩種表示方法不存在能量差別,基於此,傅立葉也是對的。一個從數學家的角度,一個從工程師的角度。
三、拉普拉斯變換(原來就是那麼回事)
傅立葉變換能幫我們解決很多問題,一經問世後便受到廣大工程師們的喜愛,因為它給人們提供了一扇不同的窗戶來觀察世界,從這個窗戶來看,很多事情往往變得簡單多了。但是,別忘了,傅立葉變換有一個很大侷限性,那就是訊號必須滿足狄利赫裡條件才行,特別是那個絕對可積的條件,一下子就攔截掉了一大批函式。比如函式
f
(
t
)
=
t
2
f(t)=t^2
f(t)=t2 就無法進行傅立葉變換。這點難度當然拿不到聰明的數學家們,他們想到了一個絕佳的主意:把不滿足絕對的可積的函式乘以一個快速衰減的函式,這樣在趨於
∞
\infty
∞ 時原函式也衰減到零了,從而滿足絕對可積。
圖片來自:https://www.zhihu.com/question/22102732/answer/369089156
數學描述是:
lim x → + ∞ f ( x ) e − σ x = 0 , σ ∈ R \lim_{x \rightarrow +\infty}f(x)e^{-\sigma x}=0,\sigma\in R limx→+∞f(x)e−σx=0,σ∈R
為保證 e − σ x e^{-\sigma x} e−σx 一直為衰減函式,我們把 x x x定義域縮減到正半軸,這樣可以進行傅立葉變換就變成了:
F ( ω ) = ∫ 0 + ∞ f ( t ) e − σ t e − i ω t d t = ∫ 0 + ∞ f ( t ) e − ( σ + i ω ) t d t F(\omega)=\int_{0}^{+\infty}f(t)e^{-\sigma t}e^{-i\omega t}dt=\int_{0}^{+\infty}f(t)e^{-(\sigma+i\omega) t}dt F(ω)=∫0+∞f(t)e−σte−iωtdt=∫0+∞f(t)e−(σ+iω)tdt
如果假設: s = σ + i ω s=\sigma+i\omega s=σ+iω 那麼就得到:
F ( s ) = ∫ 0 + ∞ f ( t ) e − s t d t F(s)=\int_{0}^{+\infty}f(t)e^{-s t}dt F(s)=∫0+∞f(t)e−stdt
這就是拉普拉斯變換。
我知道大部分人前面的數學推導沒什麼興趣,接下來就是放彩蛋的時刻了,很多童鞋會說不管傅立葉變換或者拉普拉斯變換是什麼細節,你能說點有意思的,讓人能記憶深刻的資訊嗎?
我前面的專欄文章說了,
e
i
ω
t
e^{i \omega t}
eiωt 代表按不同頻率旋轉的單位圓,那是在複平面來看的,想象力豐富的同學可以腦補一下,如果把時間軸也加上,
e
i
ω
t
e^{i \omega t}
eiωt 長什麼樣子呢?那就是螺旋曲線!
clc;clear;
h = animatedline;
h1=gcf;
view(3);
xl=xlabel('cos(\omegat)');%
yl=ylabel('sin(\omegat)');%
zl=zlabel('t');%
set(xl,'Rotation',30);%
set(yl,'Rotation',-30);%
grid on;
title('\omega = 1rad/s Made by J Pan')
axis([-1,1,-1,1,0,4*pi])
N = 200;
t=linspace(0,4*pi,N);
w=1;
x=cos(w*t);
y=sin(w*t);
a = tic; % start timer
for k = 1:N
addpoints(h,x(k),y(k),t(k));
hold on
line([0 x(k)],[0 y(k)],[t(k) t(k)],'Color','red')
b = toc(a); % check timer
if b > (1/90)
drawnow % update screen every 1/30 seconds
a = tic; % reset timer after updating
end
end
從其他不同的平面看,螺旋曲線就是正弦或者餘弦曲線。
下面我們再來看看
e
s
t
,
(
s
=
σ
+
i
ω
)
e^{st},(s=\sigma+i\omega)
est,(s=σ+iω) 長什麼樣子:
clc;clear;
h = animatedline;
h1=gcf;
view(3);
xl=xlabel('cos(\omegat)');%
yl=ylabel('sin(\omegat)');%
zl=zlabel('t');%
set(xl,'Rotation',30);%
set(yl,'Rotation',-30);%
grid on;
title('\omega = 1rad/s Made by J Pan')
axis([-1,1,-1,1,0,4*pi])
N = 200;
t=linspace(0,4*pi,N);
w=1;sig=-0.2;
x=exp(sig*t).*cos(w*t);
y=exp(sig*t).*sin(w*t);
a = tic; % start timer
for k = 1:N
addpoints(h,x(k),y(k),t(k));
hold on
line([0 x(k)],[0 y(k)],[t(k) t(k)],'Color','red')
b = toc(a); % check timer
if b > (1/90)
drawnow % update screen every 1/30 seconds
a = tic; % reset timer after updating
end
end
螺旋曲線和衰減函式的乘積:一個半徑不斷減小的螺旋曲線。從不同的平面看,就是不斷衰減的正弦或者餘弦曲線,從複平面來看,是一個半徑不斷減小的圓。
總結一下:傅立葉變換是將函式分解到頻率不同、幅值恆為1的單位圓上;拉普拉斯變換是將函式分解到頻率幅值都在變化的圓上。因為拉普拉斯變換的基有兩個變數,因此更靈活,適用範圍更廣。
最後的彩蛋:拉普拉斯變換變換和赫維賽德的微積分運算元有什麼關係?為什麼說微分運算元是拉普拉斯變換的前身?其實很簡單。
對於微分運算:
( e s t ) ′ = s e s t (e^{s t})'=s e^{s t} (est)′=sest ,令 f ( t ) = e s t f(t)=e^{st} f(t)=est , 則 d f ( t ) d t = s ⋅ f ( t ) \frac{df(t)}{dt}=s\cdot f(t) dtdf(t)=s⋅f(t) ;
對於積分運算:
∫ − ∞ t e s τ d τ = 1 s e s t \int_{-\infty}^{t}e^{s\tau}d\tau=\frac{1}{s}e^{st} ∫−∞tesτdτ=s1est , 令 f ( t ) = e s t f(t)=e^{st} f(t)=est , 則 ∫ − ∞ t f ( τ ) d τ = 1 s f ( t ) \int_{-\infty}^{t}f(\tau)d\tau=\frac{1}{s}f(t) ∫−∞tf(τ)dτ=s1f(t)
是不是和赫維賽德微分運算元長得很像?
相關文章
- 換個角度看GAN:另一種損失函式函式
- 換個角度看原型鏈原型
- 拉普拉斯變換10.24
- 換一個角度,看華為雲的變化,雲產業的更迭產業
- 自控導學:拉普拉斯變換
- 換個角度看 JavaScript 中的 (this) => { 整理 (JavaScript 深入之從 ECMAScript 規範解讀 this ) }JavaScript
- 另一個角度看元宇宙與RPA:人工世界、平行員工與RPA元宇宙
- 從原始碼角度看ContentProvider原始碼IDE
- 【詳解】換一個角度看Socket的資料讀寫
- 從NewSQL的角度看Apache ShardingSphereSQLApache
- 從JDK原始碼角度看LongJDK原始碼
- 從JDK原始碼角度看IntegerJDK原始碼
- 從JDK原始碼角度看FloatJDK原始碼
- 從 JDK 原始碼角度看 BooleanJDK原始碼Boolean
- 換個角度看中國
- 傳遞函式、拉普拉斯變換的方便理解函式
- 讓CRM與BI完美融合?換個角度看其實不難!
- github從一個倉庫切換到另一倉庫Github
- 【雜談】從實現角度看ChannelFuture
- 從程式設計師的角度看 12306程式設計師
- 從設計模式角度看OkHttp原始碼設計模式HTTP原始碼
- 從語言學角度看詞嵌入模型模型
- 從微服務的角度看,如何 Be Cloud Native微服務Cloud
- [譯] 從設計師的角度看 ReduxRedux
- 換個角度,重新理解架構架構
- [WAF攻防]從WAF攻防角度重看sql注入SQL
- 從 generator 的角度看 Rust 非同步程式碼Rust非同步
- 世界是平的嗎?——從不同角度看前端前端
- 從原始碼角度看CPU相關日誌原始碼
- 別拿開源當創新,從另一種角度思考開源
- 換個角度使用VUE過濾器Vue過濾器
- 從nacos-spring-boot-project角度全面看Springboot StarterProjectSpring Boot
- 從Oracle資料庫管理員的角度看PostgreSQLOracle資料庫SQL
- 從巨集觀的角度看 Gradle 的工作過程Gradle
- 從微服務治理的角度看RSocket,. Envoy和. Istio微服務
- 從區塊鏈的角度看企業協作區塊鏈
- 換個角度提升APP效能和質量APP
- 聊聊Netty那些事兒之從核心角度看IO模型Netty模型