
發布
注冊
/
登錄abaqus方程求解的案例
Python 實現方程組的直接求解,用于求解力/位移方程組 ¥3.33
列主元三角分解法求解
【數值算法】系數矩陣非對稱時,線性方程組如何求解?-穩定雙共軛梯度法(Bicgstab)求解線性方程組
在前面的文章和中表明共軛梯度法是求解對稱正定線性方程組的一種有效方法,當針對不同的系數矩陣采用不同的預處理方式時,其可以以較少的迭代次數獲得較高精度的解。然而,該方法的一個缺點就是其只能適用于對稱正定系數矩陣,當系數矩陣不再是對稱正定時,此方法可能失效。
以下舉例:
上面矩陣A為非對稱矩陣,采用共軛梯度法求解過程如下:
該方程組采用共軛梯度法迭代4862次依然未收斂。因此,對于該非對稱方程,可以認為,共軛梯度法幾乎是失效的。
在實際工程中,有限元方法形成的剛度系數以對稱正定居多,但是實際上也存在非對稱的可能,例如,當材料本構采用摩爾-庫倫本構時,其形成的剛度矩陣就有可能會是非對稱的,此時如果是使用商業軟件,應當在軟件中選擇非對稱求解器。如果是自主編程且采用迭代法求解線性方程組,則需要找到一種適用于非對稱矩陣的求解方法。
常見的非對稱系數矩陣求解方法主要有:廣義最小殘差法(GMRES),雙共軛梯度法(Bicg)穩定雙共軛梯度法(BiCGStab),穩定混合雙共軛梯度法(BiCGStab(l)),這些方法相對于常規的共軛梯度法在推導上均增加了一些難度,實際推導往往較為復雜。本文不展開推導,僅對穩定雙共軛梯度法(BiCGStab)的偽代碼作簡要粘貼。
展開 Python 求解偏微分方程 1D下的熱傳導方程 ¥2.22
Python 求解偏微分方程 1D下的熱傳導方程
11,comsol求解諧振子方程 ¥1000
根據牛頓第二定律 F合=ma,可寫出下式
上圖也有一個偏微分方程dx^2/dt^2+k/m*x=0。還認識它嗎?不要被它嚇住了,翻翻高等數學上冊第七章第七節 常系數齊次線性微分方程,就有答案了。但是本文不想討論數學解方程,我想說的,有了comsol,直接輸入偏微分方程,讓comsol來解方程就輕松多了。
這里m我取1kg,k取1N/m,球的初始坐標x0=1m。求得球的x坐標與時間關系如下
可以看到,隨著時間變化,x在-1到1之間來回振蕩。
2,阻尼諧振子
在理想諧振子中假定地面是光滑無摩擦力的,在實際中地面不可能光滑,假定地面存在摩擦阻力f阻,且f阻與小球速度呈正比,正比的系數為gamma,則f阻=gamma*(dx/dt)。有以下方程
輸入偏微分方程到comsol中分別求解出如下圖像
3,阻尼諧振子+周期性外力
這里的周期性外力就是最初的入射光場給金顆粒電子的力,是這三個諧振子模型中最接近真實情況的模型。請注意,本模型不考慮電子移動產生的輻射電場對入射電場施加的周期性外力的影響。
當omega0^2>2*beta^2時,外加力的角頻率omega=sqrt(omega0^2-2*beta^2)時,振幅(小球能達到的最遠的位置)達到最大值
如下圖
可以看到穩定后振幅會大于初始位置x0(x0=1m)
當omega0^2<2*beta^2時,振幅隨外加力角頻率增大而減小,如下圖
4,近似擬合吸收光譜
改變3中外加力的角頻率omega(需要滿足omega0^2>2*beta^2),可以繪制出不同角頻率的力施加后,小球能到達的最遠的位置是多少。
展開 
Creo 關系的聯立方程求解
下面我們以一個四方體特征為例做一個詳細的講解:
2.雙擊零件,把鼠標左鍵選中尺寸,然后右鍵選擇尺寸,把長方體的長、寬、高三個尺寸d1,d2,d3,尺寸名稱分別改成long、wide、high如下圖:
3.如果我們對現在的長方體底面積定義為200mm2,體積定義為350mm3,這時候我們要用到solve語句,是求解的意思,然后在關系里面輸入:
Solve
Long*wide=200
Long*wide*high=350
For long,wide,high
如下圖所示:
以上就是solve方程講解的內容,希望對大家有幫助,謝謝!
文章來源:creo10
展開 偏微分方程的數值求解 ¥66
用差分法求解了這個方程。
希望可以和“格子boltzmann方法”研究方向的學者們探討探討。
付費內容為差分法求解的詳細推導步驟和代碼。
matlab 微分方程求解
想求解一個微分方程,用dsolve得到的結果是下邊這樣,看不懂,向各位大神求救!
syms v(z) a g L b
%a=1;g=1;L=1;b=1;
eqn=(diff(v,z)+g/v+b*v==a/(z*v*sqrt(L^2+z^2)));
dsolve(eqn)
ans =
(exp(-2*b*z)*(C1 + 2*int(-exp(2*b*z)*(g - a/(z*(L^2 + z^2)^(1/2))), z, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true)))^(1/2)
-(exp(-2*b*z)*(C1 + 2*int(-exp(2*b*z)*(g - a/(z*(L^2 + z^2)^(1/2))), z, 'IgnoreSpecialCases', true, 'IgnoreAnalyticConstraints', true)))^(1/2)
展開 Maple 求解方程真不錯
666
彈性力學方程求解
幾種求解彈性力學方程的方法及特點
【數值算法】共軛梯度法求解線性方程組
在有限元程序開發中,線性方程組的求解是一個重要組成部分。在百萬自由度大規模計算的情況下,線性方程組的高效快速求解對整個求解器的計算效率有著至關重要的作用。無論實際上計算的是線性問題,還是各種非線性問題,最終都需要落實到線性方程組的求解上去。非線性方程組的求解實際上往往就是多次求解線性方程組。
目前,線性方程組的求解主要分為直接法和迭代法兩種。
在之前的文章[數值算法與編程]高斯消去法中,我們討論的高斯消去法就是直接法的一種。而本文即將討論的共軛梯度法,是迭代法的一種,并且,其屬于目前求解對稱線性方程組的主要迭代方法。各大商業有限元軟件,在面臨對稱線性方程組的求解時幾乎都會選用各種變化形式的共軛梯度法進行求解。
共軛梯度法的具體原理和算法如下:
假定要求解的對稱線性方程組是:
其中,A是對稱正定的系數矩陣。
則實際上待求的解也是方程
取得最小值的時候的解。
求該方程的最小值的常見方法是最速下降法,該方法算法偽代碼如下:
該方法實際上是沿著負梯度方向進行搜索,直至殘量接近0,較為簡便,但是在條件數很大時,該方法收斂很慢。
展開 基于PiNNS神經網絡求解Burgers方程 ¥10
Burger's方程如下:
邊界條件如下:
使用python,通過PINN方法,結合神經網絡,可以快速地求解該偏微分方程,以下是三個t時刻的結果,和方程解析解幾乎完全一致:

大型稀疏線性方程組求解技術——工業仿真的底層核心
背景
在工業仿真領域,對各種現實世界的問題進行數值模擬時,如流體動力學分析、電磁場仿真、結構力學應力應變分析等,其控制方程通常是偏微分方程組,在經過不同方法的隱式離散之后最終都可轉化為大型稀疏線性方程組。隨著人們對計算精度要求的不斷提高,方程組的階數也從上千階、幾十萬階提高到百萬、千萬階甚至更高,所需的計算量以及存儲需求也隨之迅速膨脹。根據一般經驗,方程組求解時間會占總計算時間的70%以上,往往是整個計算過程中的性能瓶頸。如果說求解器是工業CAE軟件的核心模塊,那么大型稀疏線性方程組的求解技術將毫無疑問是底層求解器的核心。
NASA翼型網格經過離散得到的稀疏矩陣(素材來源于網絡)
方法
眾所周知,稀疏線性方程組的求解方法可以分為直接法和迭代法 ,兩類方法各有優劣,特點比較如下:
迭代法[1]:
對于不同類型稀疏矩陣表現差異較大,存在收斂性與收斂速度問題,催生了許多預處理技術(Preconditioners);
對原矩陣的編輯很少,SpMV(Sparse matrix-vector multiplication)是其核心運算;
內存需求小,求解速度較快,算法復雜度低;
較易實現并行化。
直接法[2]:
通用、穩定;通過前后處理,能夠保證計算的收斂性與精度;
對原矩陣的編輯多(分解、排序、縮放等);
內存需求大,求解速度慢,算法復雜度更高;
并行度有限。
其中迭代法的種類很多,可以分為定常(Stationary)迭代法與非定常迭代法[3]。
展開 scipy求解常微分方程組
Scipy求解常微分方程組有scipy.integrate.solve_ivp和scipy.integrate.odeint,后者是較老的版本主要是采用 FORTRAN 的odepack庫里面的lsoda 方法,而前者是后面更新的函數,支持的方法也更多,按照官方的文檔介紹大致有如下的方法。
C語言實現方程組求解-指針操作
在有限元的計算過程中,當我們得出剛度矩陣之后,接下來是帶入邊界條件來求解方程組中的未知量。
1. 求解方程組中的未知量的具體方式分直接法和迭代法,一般在有限元計算過程中都采用的是迭代法,但是對于那些很小的問題便可以采用直接法來直接得到。
2. 本次主要討論的是列主元高斯消去法。
==》 順道吐槽一下這個自帶的插入代碼的功能,很差勁。
轉貼:變參數非線性方程組的求解!
變參數非線性方程組的求解!
對于求解非線性方程組一般用fsolve命令就可以了,但是對于方程組中某一系數是變化的,該怎么求呢?
%定義方程組如下,其中k為變量
function F = myfun(x,k)
H=0.32;
Pc0=0.23;W=0.18;
F=[Pc0+H*(1+1.5*(x(1)/W-1)-0.5*(x(1)/W-1)^3)-x(2);
x(1)-k*sqrt(x(2))];
%求解過程
H=0.32;
Pc0=0.23;W=0.18;
x0 = [2*W; Pc0+2*H]; % 取初值
options = optimset('Display','off');
k=0:0.01:1; % 變量取值范圍[0 1]
for i=1:1:length(k)
kk=k(i);
x = fsolve(@(x) myfun(x,kk), x0, options);%求解非線性方程組
x1(i)=x(1);
x2(i)=x(2);
end
plot(k,x1,'-b',k,x2,'-r');
xlabel('k')
legend('x1','x2')
[ 本帖最后由 studyboy 于 2006-7-30 17:38 編輯 ]
圖片附件: k-x1.x2.bmp (2006-7-5 23:07, 689.12 K)
展開