PINN求解一維波動方程,pytorch框架,附代碼(二)
PINN求解一維波動方程,pytorch框架,附代碼(二)
pytorch和tensorflow區(qū)別
以下tensorflow簡稱TF
- pytorch具有更加易用的API,目前的TF 2.x + Keras也提供類似的易用的API
- pytorch構(gòu)建動態(tài)計算圖,方便調(diào)試,TF以靜態(tài)圖為主,有利于部署和加速,目前也支持動態(tài)圖,鼓勵用語法糖轉(zhuǎn)化為靜態(tài)圖獲得性能提升
- 部署方面,TF有完整的工具鏈,目前pytorch也增強了部署能力
- 可視化工具,TF集成有TensorBoard,pytorch也支持用TensorBoard
總結(jié):但隨著版本迭代,兩者正在相互借鑒優(yōu)點,差距逐漸縮小。學(xué)習(xí)階段可以采用pytorch,獲得成熟可用的項目后可以轉(zhuǎn)用tensorflow部署獲得更高的性能。
正問題
正問題是已知一切條件預(yù)測結(jié)果,這是一個確定性的計算過程。
- 已知方程形式,且已知:
初始條件:
邊界條件:
解析解: 根據(jù)達朗貝爾公式可得:
表達式如下:
損失函數(shù)表達式:
- 網(wǎng)絡(luò)架構(gòu)
- 輸入層:空間坐標(biāo)(
- )
- 隱藏層:3層,每層50個神經(jīng)元
- 輸出層:物理場預(yù)測值
值得一提的是: PINN本身并不提供解的存在唯一性證明。這個保證來自于應(yīng)用數(shù)學(xué)領(lǐng)域的微分方程理論。在將一個問題交給PINN求解之前,我們通常依賴于已知的數(shù)學(xué)定理來確保問題是一個“適定性問題”,即:
- 存在性:至少有一個解。
- 唯一性:最多有一個解。
- 穩(wěn)定性:解連續(xù)地依賴于初始條件或邊界條件。
例如將上述波動方程初始條件中的一階導(dǎo)公式去掉,解就失去了唯一性,PINN就無法按預(yù)期工作。
原始采樣點
損失函數(shù)變化
真實結(jié)果、預(yù)測結(jié)果、絕對誤差
逆問題
逆問題是已知一些觀測數(shù)據(jù),但是不確定方程中的一些系數(shù)是多少,目標(biāo)是利用這些觀測數(shù)據(jù)來反推出方程中的系數(shù)。更進一步,有大量的觀測數(shù)據(jù),但是不知道方程的具體形式,利用已有數(shù)據(jù)來推出方程的表達式,因此逆問題可能不具備適定性,求解更困難。
- 將上述正問題做兩點改動,1.添加一些已知觀測數(shù)據(jù)。2.參數(shù)c的數(shù)值未知。那么上述正問題就變成了一個逆問題。
此時損失函數(shù)表達式:
表示的是和參數(shù)的集合。
原始采樣點
損失函數(shù)變化、參數(shù)變化
真實結(jié)果、預(yù)測結(jié)果、絕對誤差
本本文涉及的完整代碼,請后臺回復(fù)關(guān)鍵詞" pinn-2" 獲取。
感謝每一位朋友的關(guān)注!期待能和大家在這個領(lǐng)域攜手前行,后續(xù)會有更多技術(shù)解讀和實戰(zhàn)技巧分享,我們一起學(xué)習(xí),共同成長!~~~??????
工程師必備
- 項目客服
- 培訓(xùn)客服
- 平臺客服
TOP




















