
發布
注冊
/
登錄方程組求解
關注創建者:sniper_5292 創建時間:2020-01-12
方程組求解的視頻教程
Matlab求解常微分方程/偏微分方程/復雜邊值問題
復雜邊界問題如何求解,邊界條件同時包含初始時刻和終止時刻; 4.常微分方程和偏微分方程的擬合問題等等。 但凡遇到比較特殊的,有意思的,值得分享的微分方程求解案例,我都會做成課程分享給大家。
¥59 1小時50分鐘 154播放
查看
ABAQUS UEL/UMAT子程序綜合實例訓練營
UEL、UMAT子程序嵌入線性方程組求解、非線性方程組迭代求解子程序。 11. UEL、UMAT子程序本構方程或雅克比矩陣(包括二維平面應力、二維平面應變、三維各向同性、三維各向異性、三維橫觀各向同性、軸對稱單元本構及其他自定義本構(比如隨時間、溫度等變化))。
¥200 7小時26分鐘 5691播放
查看
方程組求解的實例教程
背景
在工業仿真領域,對各種現實世界的問題進行數值模擬時,如流體動力學分析、電磁場仿真、結構力學應力應變分析等,其控制方程通常是偏微分方程組,在經過不同方法的隱式離散之后最終都可轉化為大型稀疏線性方程組。隨著人們對計算精度要求的不斷提高,方程組的階數也從上千階、幾十萬階提高到百萬、千萬階甚至更高,所需的計算量以及存儲需求也隨之迅速膨脹。根據一般經驗,方程組求解時間會占總計算時間的70%以上,往往是整個計算過程中的性能瓶頸。如果說求解器是工業CAE軟件的核心模塊,那么大型稀疏線性方程組的求解技術將毫無疑問是底層求解器的核心。
NASA翼型網格經過離散得到的稀疏矩陣(素材來源于網絡)
方法
眾所周知,稀疏線性方程組的求解方法可以分為直接法和迭代法 ,兩類方法各有優劣,特點比較如下:
迭代法[1]:
對于不同類型稀疏矩陣表現差異較大,存在收斂性與收斂速度問題,催生了許多預處理技術(Preconditioners);
對原矩陣的編輯很少,SpMV(Sparse matrix-vector multiplication)是其核心運算;
內存需求小,求解速度較快,算法復雜度低;
較易實現并行化。
直接法[2]:
通用、穩定;通過前后處理,能夠保證計算的收斂性與精度;
對原矩陣的編輯多(分解、排序、縮放等);
內存需求大,求解速度慢,算法復雜度更高;
并行度有限。
其中迭代法的種類很多,可以分為定常(Stationary)迭代法與非定常迭代法[3]。
展開 在有限元程序開發中,線性方程組的求解是一個重要組成部分。在百萬自由度大規模計算的情況下,線性方程組的高效快速求解對整個求解器的計算效率有著至關重要的作用。無論實際上計算的是線性問題,還是各種非線性問題,最終都需要落實到線性方程組的求解上去。非線性方程組的求解實際上往往就是多次求解線性方程組。
目前,線性方程組的求解主要分為直接法和迭代法兩種。
在之前的文章[數值算法與編程]高斯消去法中,我們討論的高斯消去法就是直接法的一種。而本文即將討論的共軛梯度法,是迭代法的一種,并且,其屬于目前求解對稱線性方程組的主要迭代方法。各大商業有限元軟件,在面臨對稱線性方程組的求解時幾乎都會選用各種變化形式的共軛梯度法進行求解。
共軛梯度法的具體原理和算法如下:
假定要求解的對稱線性方程組是:
其中,A是對稱正定的系數矩陣。
則實際上待求的解也是方程
取得最小值的時候的解。
求該方程的最小值的常見方法是最速下降法,該方法算法偽代碼如下:
該方法實際上是沿著負梯度方向進行搜索,直至殘量接近0,較為簡便,但是在條件數很大時,該方法收斂很慢。
展開 一、背景
在工業仿真領域,對各種現實世界的問題進行數值模擬時,如流體動力學分析、電磁場仿真、結構力學應力應變分析等,其控制方程通常是偏微分方程組,在經過不同方法的隱式離散之后最終都可轉化為大型稀疏線性方程組。隨著人們對計算精度要求的不斷提高,方程組的階數也從上千階、幾十萬階提高到百萬、千萬階甚至更高,所需的計算量以及存儲需求也隨之迅速膨脹。根據一般經驗,方程組求解時間會占總計算時間的70%以上,往往是整個計算過程中的性能瓶頸。如果說求解器是工業CAE軟件的核心模塊,那么大型稀疏線性方程組的求解技術將毫無疑問是底層求解器的核心。
NASA翼型網格經過離散得到的稀疏矩陣(素材來源于網絡)
二、方法
眾所周知,稀疏線性方程組的求解方法可以分為直接法和迭代法 ,兩類方法各有優劣,特點比較如下:
迭代法[1]:
對于不同類型稀疏矩陣表現差異較大,存在收斂性與收斂速度問題,催生了許多預處理技術(Preconditioners);
對原矩陣的編輯很少,SpMV(Sparse matrix-vector multiplication)是其核心運算;
內存需求小,求解速度較快,算法復雜度低;
較易實現并行化。
直接法[2]:
通用、穩定;通過前后處理,能夠保證計算的收斂性與精度;
對原矩陣的編輯多(分解、排序、縮放等);
內存需求大,求解速度慢,算法復雜度更高;
并行度有限。
其中迭代法的種類很多,可以分為定常(Stationary)迭代法與非定常迭代法[3]。
展開 首先是頭文件數據信息
然后是要進行基本操作的函數文件:
==> 這里調用的上三角形方程組求解的實現過程如下:
主函數的測試案例為:
==> 下面進行矩陣的LU分解,進而求解方程組.
==> 關于下三角形方程組求解函數試下如下:
==> 這里的兩個工具類函數,如下所示:
==>
高斯消去的計算結果為:
LU分解的計算結果為:
==> 標準數據為:
標準結果為:
==> 我們所完成的兩種方法的計算結果是正確的。
支付寶贊助
微信:
enddo
write(*,*)"the solution of equation:"
write(*,"(es18.8)")x
end subroutine bicgstab
依據上述過程編寫程序,計算前述非對稱矩陣線性方程組求解結果:
采用matlab求解該方程組的解:
通過對比可知11次迭代已經獲得即為準確的結果。實際上,對于該方法也可以通過一定的預處理方式,使得其所需要的迭代次數更少。
以上,就是穩定雙共軛梯度法求解線性方程組的內容,感謝您的閱讀!
歡迎關注公眾號 有限元術
展開 
方程組求解的相關專題、標簽、搜索
方程組求解的最新內容
將結構劃分為若干層后,在每一層的傅里葉域中,麥克斯韋方程組被解析求解。這些傅里葉模式的波矢量被稱為 k 矢量。由于結構的周期性,僅允許存在離散的 k 矢量。增加 k 矢量的數量可以提高計算精度,但代價是仿真時間的增加。
隨后,對每個區段的求解結果進行雙向傳播,以計算整個器件的 S 矩陣。一旦 S 矩陣計算完成,即可將入射平面波的光通過該結構進行傳播。
在網格內,我們假設物理量的變化是簡單的(如線性變化),就能將復雜的偏微分方程組轉化代數方程組進行求解。
因此,計算的準確度就依賴網格的精細程度。如果網格太粗,就如同用正方形等效圓形,必然誤差巨大。
網格盡量很細,計算可能更準,但計算量也越大。你看看內存條的價格,會立馬放棄加密網格的想法。
這時可以采用分布式測量方案(如圖3):
將單個球形陣列依次放置在不同位置測量
或使用多個球形陣列同時測量
最后將不同位置的局部展開系數統一變換到全局坐標系下
圖3
聲場展開系數的計算方法
除了標準的球面傅里葉變換法,實際應用中還有兩種更常用的計算方法:
最小二乘法:建立線性方程組求解,對傳聲器布置沒有嚴格要求,數量可減少,
</div><div contenteditable="false" width="100%">
3?? 直接耦合 (Direct Coupled Solving) 將不同物理場的控制方程合并成一個單一的、更大的方程組同時求解。方程組中包含耦合項。
</p><h2><strong>03 HSF-AI智能求解技術</strong></h2><p> 現代高保真仿真面臨兩大瓶頸:一是計算性能——大型稀疏線性方程組的求解動輒耗費總算力的 70% 以上;二是物理機理——傳統湍流模型在復雜條件下精度欠佳,黑箱機器學習改進又缺乏物理可信度。
關鍵詞:CFD,有限元,三角形單元,罰函數,粘性流動
最近工作室有流體有限元求解器的開發需求,我在前面講飛機結冰的文章提到過,差不多10年前瞎搗鼓過這個東西。
好多東西都記不清了,先從一些簡單的流動模型入手,做一些恢復性訓練。考慮到我是結構力學出身,在進行流體有限元開發的時候,我會代入結構有限元的視角進行分析。
流體也好,固體也好,CFD也好,FEM也好,有很多開源工具、源代碼可以用。
摘要
平面波對于任意半徑和折射率的球形粒子的吸收和散射問題,米氏解是嚴格的麥克斯韋求解器。其得到的散射效應十分依賴于粒子的大小。根據其特性,散射可以分為瑞利散射、米氏散射和幾何光學散射。VirtualLab Fusion中包含了完整的米氏解。該案例研究了不同半徑的球形粒子散射。
模擬任務
AMGCL 是一個基于 C++ 的開源代數多重網格(Algebraic MultiGrid, AMG)求解器框架,具有模塊化、可擴展和高性能的特點,廣泛應用于大規模稀疏線性方程組的求解。
PINN求解burger方程,tensorflow框架,附代碼(三)
TensorFlow 1.x和TensorFlow 2.x區別
TensorFlow 1.x版本只有靜態圖模式,需要手動構建計算圖,調試困難,但性能好。
TensorFlow 2.x 初期:默認Eager Execution,易于調試,但性能較差。TensorFlow 2.x + @tf.function:兩全其美
多體系統仿真
常微分方程組數值求解
順序性強、規模相對較小、對CPU頻率敏感
CPU多核為主,CPU單核為輔
對CPU主頻要求高,GPU加速應用較少。
