偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现
【實例簡介】
工程中有許多問題可以歸結為偏微分方程問題,如彈塑性力學中研究對象(結構、邊坡等)內部的應力應變問題、地下水滲流問題等。這些由偏微分方程及邊界條件、初始條件等組合成的數學模型,只有在十分特殊的條件下才能求得解析解。因此,在很長一段時間內,人們對于這一類問題是無能為力的。隨著計算機技術的發展,各種數值方法應運而生,如有限元法、有限差分法、離散元法、拉格朗日元法等等。利用數值法,可以求得這些問題的數值解。它不是問題的精確解,但可以無限接近精確解。Matlab采用有限元法求解偏微分方程的數值解
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
中輸入公式:C1-C2。
3.3定義邊界條件
在 Boundary菜單中選擇 Boundary mode選項或直接在工具條中單擊a按鈕,則顯示幾何模型的外
邊界和內邊界。如圖24所示。
回區
-1;
11l=3,re,命,=|÷正m=:2-1
〔!1〔2〕001〔E
圖24定義邊界條件
在圖中單擊邊界,則邊界線變成黑色,表示它被選中。按住 Shift鍵,可以連續選擇多條邊界線段。
選擇要定義的邊界以后,雙擊邊界或在 Specify Boundary conditions…近項,打開 Boundary Condition
對話框,如圖25所示。
吧ndar丁 Condition
瓦[
F IrI dNrs I: ' ll 1(u-I
cue
11
IuI-H
圖25 Boundary Condition對話框
對話框中各選項的意義分別為:
Boundary cond. cquation標簽顯示邊界條件方程。
Condition type在下面的兩個單選鈕中進行選擇,確定邊界條件類型。
Neumann單選鈕選擇此項,將邊界條件類型確定為 Neuman條仵。
Dirichlet單選鈕缺省時選此項。選擇此項時,將邊界條件類型確定為
Dirichlet邊界條件。
● Coelficient value欄在該欄中的對應文丕框中輸入邊界條件公式卬的系數值。
本例中選擇缺省設置。
在 Boundary菜單中近擇 Show Edge labels選項和 Show Subdomain labels選項,可以在圖中顯示
邊緣標簽和子域標簽。
3.4定義PDE類型和PDE系數
偏微分方覆憝寬解的 Matlab寥硯
foxdog制作
在PDE菜單中選擇 PdE mode選項,圖形將顯示為PE模式。選擇 Show subdomain labels選項,將
在圖中顯示子域標簽。
在工具條中單擊r按鈕或在PDE菜單中單擊 PDE Specification…選項,可以打開PDE
Specification對話框,如圖26所丌。
E日
+改
二1三
圖26 PDE Specification對話框
對話框中各選項的意義分別為
Equation標簽該標簽顯示PDE方程表達式。
Type of pD欄在該欄中進行選擇,確定PDE問題的類型。
▲ Elliptic單選鈕為缺省選項。選擇此項,設置為橢圓型PD問題。
Parabolic單選鈕選摻此項,設置為拋物線型PDE問題。
▲ Hyperbolic單選鈕選擇此項,設置為雙曲線型PDE問題。
Eigenmodes單選鈕選擇此項,設置為特征值PE問題。
● Coefficient欄在該欄中設置PDE方程的系數值。
3.5三角形網格剖分
在工具爛中單擊△按鈕,或在Mesh菜單中選擇 Initialize mesh選項,可以進行研究域的三角形
網格初始化。如圖27所示。
四17訓n小網
上
[呂
-s「∵斗-1.三卩U..甲亠[E了
11
在工具條中單擊按鈕或在Mesh菜單中選擇 Refine mesh選項,可以對初始網格迸行加密。如圖
28所示。利用加密后的網格進行計算,可以獲得具更高精度的解。
11|」|
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
在Mesh菜單中選擇 Jiggle mesh選項,可以對網格進行微調。選擇 Display triangle圖29微調網
格
Quality,將顯示三角形的質量圖。如圖29所示。圖中,將三角形的最好質量定為1,并用紅色表
,最差質量為0,用蘭色表示,二者之間的三角形質量根據質量得分的大小用紅色和蘭色的過度色表
小。
在Mesh菜單中選擇 Show node labels近項,將在圖中顯示網格節點的編號,如圖30所示。選擇
Show Subdomain labels選項,將顯示各子域的編號。
其司
C
性
勺
h
12111
圖30顯示子域編號
在Mesh菜單中選擇 Parameters…選項,打開 Mesh parameters劉話框,如圖31所示。在該對話框
中進行設置,可以明確與網格剖分有關的參數。
Hesh P
Ah rate
M Jiggle mesh
ggm∈ sh parameters
Jiggle mod
Number of jiggle iterat ons
Refinement method
oK
圖31 Mesh Parameters對話框
對話框叩各控件的意義分別為
Maximun edge siκe文本框在該文本框中輸入數值,確定最大邊緣大小。
Mesh growth rate文本框在該文本框中輸入網格生長率。缺芻值為1.3。
Jiggle mesh核選框迒擇此項,微調網格。缺省時選擇此項。
Jiggle mode下拉式列表欄在其中進行選擇,確定微調模式。可選模式有on、 optimize minimum
和 optimize mean等三項。
Number of jiggle iterations文木框在該文本框口輸入微調迭代的次數。
Refinement method下拉式列表框在該控件中進行冼擇,確定進行網格加密的方法,包括
regular和 longest兩個選項。具體內容參見前面函數部分。
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
3.6PDE求解
在工具條中單擊=按鈕或在 Solve菜單口選擇 Solve pDe選項,可以對前面定義的PDE問題進行求
解。本例的解如圖32所示。
斗
1·3111
圖32問題的缺省圖解(色譜圖)
在 Solve菜單中單擊 Parameters…選項,打開 Solve parameters對話框,如圖33所示。在該對話
框中進行設置,可以確定求解方法和參數。
rIlI Ir H■"l
hlurIl'Itri ruri t-=ul lI-'iyle
Ncnlliee l0ler3T
1E4
fuyi'nLrI rur=·urk'l≌.
I'TilinI lill
IIuII_.'Iuu
laurI
FI:h nr r h
J
圖33 Solve Parameters對話框
該對話框中各選項的意義分別為
daptive mode核選框選擇此項,即選擇自適應模式,系統將自適應生成網格并進行求解。
● Maximum number of triangles文本框在其中輸入三角形的最大個數。
Maximum number of refinements文本框在其中輸入網格加密的最大次數。
Triangle selection method在下面的三個單選鈕中進行選擇,確定三角形的選擇方法。
Worst triangles單選鈕為缺省選項。選擇此項,根據最壞三角形進行迒擇。
▲ Relate tolerance單選鈕選此項,根據相對容限進行選擇。
▲User- defined function單選鈕選擇此項,在下面的文本框中輸入函數,用該函數選擇三角
形
Worst triangle fractions文本框在該文本框中翰入最壞三角形分量。
Refinement method下拉式列表框在其中進行選擇,確定進行網格加密的方法,有 regular
和 longest兩個選項。
User nonlincar solver核選框選擇此項,用非線性求解器進行求解。
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
onl inear tolerance文本框在該文本中輸入非線性迭代終止的容限。缺省值為lE-4。
Initial solution文本框在該文本框中輸入問題的解的初值。
Jacobian下拉式列表框在該控件中進行選擇,確定雅可比矩陣的確定方式。有 fixed、 lumped
和fu11三個選項。
Norm文本框在其口輸入范數值,缺省值為Inf(∞)。
3.7解的圖形表達
PDE工具項提供了解的多種圖形表達方式,上面顯示的是彩色圖,為缺省顯示。單擊頑按鈕或在
Solve菜單中單擊 Parameters…選項,可以打開 Plot selection刈話框,如圖34所示。
圖34P1 ot selection對話框
F|t/∈
P=:s;
tional
廠 AlmIr,Ad ITE:
leigl H plot I
cor:i I5 T
廠 animato
甲Flls-』 o- SucIm.l
TIn 1.nn
該對話框中各選項的意義分別為:
Plot type控件列該列控件控制圖形類型的選擇。包括
▲ Color核選框選擇此項,生成并顯示解的彩色圖。缺省時選擇此項。
Contour核選框選擇此項,生成并顯示解的等值線圖。如圖35所示。
Δ rrows核選框選擇此項,生成并顯示解的矢量圖。如圖36所示
De formed mesh核選框選擇此項,生成并顯示解的變形Ⅸ格圖。如圖37所示。
▲ Height(3- D plot)核選框選擇此項,生成并顯示解的三維圖。如圖38所示。
Animation核選框選擇此頂,生成解的系列演示圖。
Property空件列該列控件為一組下拉式列表框,定義對解的哪一部分進行圖形顯小。
User entry控件列為一組文本框,在其中輸入用戶輸入
Plot style控件列該控件列控制前面選擇圖型的不冋風格。
Plot in x- y grid核選框選擇此項,在x-y網格中繪圖。
how mesh核選框選擇此項,在當前圖中顯示網格。
Color: u
D
0
E
0
4
0
0.3
"
1-08-0.3-14-0.2C320.40.603112141161
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
圖35色譜圖疊加等值線圖
.2
4
U.2
06
n8-3-14∩.2C12自406811214161.8
圖36色譜圖疊加矢量圖
Y
K
l
4
凵2「2:斗
1叫1
圖37變形網格圖
E
圖38三維高程圖
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
Contour plot levels文本框在其中輸入等值線的水平數。
Colormap下拉式列表框在該控件中選擇繪彩色圖的顏色。
Plot solution automatically核選框選擇此項,系統自動繪解的圖形。
4幾種常見的偏微分方程數值求解問題
4.1橢圓型問題
4.1.1單位圓盤的泊松方程
泊松方程是最簡單的橢圓型PDE問颎。
該問題的公式為
△U=1
邊界上U=0。該問題的精確解為:
U/(x,y)=
y
(1)、用圖形用戶界面計算
在命令窗囗中輸入 pdetool命令,選用 Generic scalar模式
1.單擊0 ption菜單,選擇 add a grid選項,設置“snap-to-grid”特點。單擊+按鈕面一個圓,
若該圖不是標準的單位圓,雙擊該圓,打開一對話棰,在其中可以指定圓心的糈確位置和半徑的
大小\。
2.通過單擊2按鈕來設置邊界模式。分割的幾何邊界顯示出來,并目外邊界指定為缺省設置,即
Dirichlet邊界條件,u=0。本例中采月缺省設置,若邊界條件不同,可以通過雙擊邊界打開
對話框,在其中入對應的邊界條件。
3.單擊按丑,定義偏微分方稈,該操作打開一對話框,可以在其中定義PDE系數c,a和f。本
例中,它們均為常數:c-1,f-1,a-0。
4.單擊△按扭或選擇Mesh菜單中的 Initialize mesh選項,初始化顯示三角形Ⅸ格。
5.單擊公按扭或在Mesh莫單中選擇 Refine mesh選項,改進初始網格并顯示新網格。
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-0.5
0.5
圖39初始化網格
偏微吩方程數寬解的 Matlab罷硯
foxdog制作
6.單擊=按扭進行求解,Mat1ab可以用圖形來表示問題的解。單擊按鈕,打開 Plot selection
對語框。利月該對話框,可以選擇不同類型的解圖。
11
[IT
圖40問題解的色譜圖
7.比較數值解與精確解之間的誤差。
為 Plot selecting對話框中的 Color選擇 Property彈出式菜單中的 User entry。然后在 User entry
編輯區中輸入 Matlab表達式u-(1-x.2-y.2)/4。可以獲得解的絕對誤差的圖形表示。
圖41解的絕對誤差圖形
(二)、使用命令行函數
首先必須創建 MATLAB函數,使二維幾何模型參數化。
M文件 circles.m返回單位圓盤邊界點的坐標。下面是該文件的內容
nbs=4
if nargin==0
x=nbs;%邊界線段個數
retur
eI
0000%參數初值
1111%參數終值
10
【實例截圖】
【核心代碼】
總結
以上是生活随笔為你收集整理的偏微分方程数值解的matlab 实现,偏微分方程数值解的Matlab 实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作241:判断数组里面是否有某个值
- 下一篇: 前端学习(2685):重读vue电商网站