CH
NG 8: PH
NG TRÌNH VI PHÂN
Đ O HÀM RIÊNG
§1. M Đ U
1. Khái ni m chung: Partial Differential Equation (PDE) Toolbox cung c p
m t môi tr ng m nh và m m m i đ nghiên và gi i các ph ng trình vi phân
đ o hàm riêng trong m t ph ng. D ng ph ng trình c b n c a PDE Toolbox
là:
∇.(c∇u) + au = f trong mi n Ω
Các ph ng trình đ c r i r c hoá b ng ph ng pháp ph n t h u h n(FEM).
Các đ i t ng trong PDE cung c p cơng c đ :
• xác đ nh bài toán PDE, nghĩa là xác đ nh vùng 2D, các đi u ki n biên và
các h s PDE.
• gi i b ng ph
ng pháp s các bài tốn, nghĩa là t o ra l i khơng có
c u trúc, r i r c hố ph ng trình và tìm nghi m x p x .
• hi n th k t qu
2. S d ng GUI:
a. GUI: PDE Toolbox có m t b giao di n đ ho ng i dùng (graphical
user interface GUI) bao g m các khiá c nh c a quá trình tìm nghi m c a PDE.
Đ kích ho t nó ta nh p l nh pdetool t i c a s l nh c a MATLAB.
Trên c a s GUI có các menu và các icon. Ta dùng các menu hay icon
này đ th c hi n các nhi m v nh t đ nh.
b. Các menu: Có m t s menu sau đây trên c a s GUI:
• File: T
menu này ta có th Open và Save mơ hình d i d ng M file. Ta
có th in đ th và thốt kh i GUI.
• Edit:T
menu này ta có th c t, dán, xoá, copy các đ i t ng và ch n t t
c các đ i t ng.
• Options: Menu này ch a các tu ch n cũng nh
các thay đ i trên tr c x.
• Draw: T
menu này ta có th ch n các đ i t ng c b n đ v .
• Boundary: Menu này dùng đ nh p các đi u ki n biên cho các vùng.
• PDE: Menu này cung c p các h p tho i đ mô t PDE và xu t các h s
c a nó vào vùng làm vi c.
• Mesh: Ta dùng menu này đ t o ra l
i và thay đ i các tam giác.
• Solve: Ta ch n menu này đ gi i các ph
ng trình PDE.
• Plot: T
menu này ta v nghi m.
154
Window: Ch n c a s làm vi c
• Help: Hi n th c a s tr giúp.
c. Thanh công c :
Thanh cơng c có d ng nh hình v :
•
d. Các GUI mode: Q trình gi i PDE g m các b c sau:
• xác đ nh vùng 2 D
• xác đ nh đi u ki n biên
• xác đ nh PDE
• t o l
i tam giác
• gi i PDE
• v nghi m và các thu c tính v t lí
pdetool GUI đ c thi t k theo cách t ng t . Ta làm vi c trong 6 ki u khác
nhau, m i ki u t ng ng v i m t b c trong quá trình gi i PDE.
• Trong Draw mode ta t o vùng 2 D.
• Trong Boundary mode ta có th mơ t đi u ki n biên
• Trong PDE mode ta nh p các h s c a ph
ng trình vi phân.
• Trong Mesh mode ta kh i t o l
i.
• Trong Solve mode ta gi i ph
ng trình.
• Trong Plot mode ta ve nghi m và các thu c tính v t lí khác
e. Mơ hình CGS và Set Formular: PDE Toolbox dùng m u mơ hình CSG
đ mơ hình hố.Ta có th v các đ i t ng ch ng nhau. Có 4 lo i đ i t ng:
• Circle
• Polygon
• Rectangle
• Ellipse
M i đ i t ng có m t tên duy nh t trong GUI. Tên m c đ nh c a đ i t ng
circle là C, đ i t ng đa giác là P, đ i t ng hình ch nh t là R, đ i t ng hình
vng SQ và đ i t ng ellip là E. Tên đ c hi n th trên đ i t ng. Trong
Draw mode ta có th thay đ i tên và hình d ng đ i t ng b ng cách nh p đúp
lên nó. Khi đó m t h p tho i đ c m ra và ta thay đ i thơng s . Các tốn t +
, =, * đ c dùng đ k t h p các vùng. Toán t + đ c dùng đ t o t h p, tốn
t dùng t o vùng có ph n r ng và toán t * dùng đ t o ra vùng có giao nhau
155
f. T o các góc trịn: M t ví d v cách dùng các công th c là t o ra m t
hình ch nh t có góc trịn. Ta kh i đ ng GUI và ch n Grid và Snap to grid.
Sau đó thay đ i Grid Spacing trên tr c x là [ 1.5:0.1:1.5] và trên tr c y là [
1:0.1:1]. Ch n Rectangle/square t menu Draw đ v hình ch nh t b t đ u
t i( 1,0.5) r ng 2 và cao 1. Đ t o góc trịn ta thêm các hình trịn các góc. M i
hình trịn có bán kính 0.2 và tâm cách góc đo n 0.2. Ti p đ n ta v 4 hình
vng m i hình có c nh 0.2 4 góc. Bây gi ta so n công th c cho vùng:
R1 (SQ1+SQ2+SQ3+SQ4)+C1+C2+C3+C4
và ghi vào ph n trên c a GUI.
3. S d ng pdrtool: Đ b t đ u ta s d ng graphic user interface (GUI)
pdetool đ gi i t ng b c PDE. Ta s gi i ph ng trình Poisson ∆u = f. Mi n
2 D mà ta gi i bài toán s r t ph c t p. Đi u ki n biên dùng ki u Neumann và
Dirichlet.
Tr c h t ta g i MATLAB. Đ g i GUI ta nh p l nh pdetool t c a s
MATLAB. Đ d v hình ta ch n Grid và Snap t menu Option.
B c đ u tiên đ gi i bài toán là v vùng 2 D c n gi i. GUI cung c p 4
lo i đ i t ng c b n: đa giác, hình ch nh t, và hình ellip. Các đ i t ng
đ c dùng đ t o ra mơ hình Constructive Solid Geometry(CSG). M i đ i
t ng đ c gán cho m t nhãn và dùng các nhãn này ta t o ra đ c m t hình
ph c t p là t h p c a các hình đ n gi n trên.
Đ ch n m t đ i t ng, ta nh p chu t lên icon c a nó hay ch n nó t
menu Draw. Icon hình có d u + dùng đ v hình t tâm. N u khơng có d u +
hình đ c v t góc. Khi mu n v hình ta b m vào icon và đ t con tr chu t
lên hình r i kéo và th . Mu n t o hình vng hay trịn ta dùng chu t ph i.
Đ u tiên ta v m t hình ch nh t và đ t tên là R1. Mu n di chuy n hình ta
b m chu t vào hình và kéo đ n v trí mong mu n r i th . Mu n thay đ i kích
th c hình b m đúp chu t vào nó đ kích ho t h p tho i r i nh p kích th c
mong mu n. T h p tho i ta có th thay đ i tên c a nhãn. N u ta mu n xố
hình, ch n nó r i nh n Del hay ch n Clear t menu Edit. Khi đ c ch n biên
đ i t ng có màu đen. Mu n ch n nhi u đ i t ng cùng lúc ta nh n thêm
phím Shifft. Khi mu n ch n t t c ta dùng Select All trong menu Edit(hay
dùng Ctrl + A).
Ti p theo ta v m t hình trịn b ng nh p chu t vào icon hình ellip có d u
+ r i kéo và th (dùng chu t ph i). CSG ta t o là hình ch nh t R1 và E1 có
đ c b ng cách dùng công th c R1 + C1 ô Set formula trên c a s .
156
Cu i cùng ta thêm hai đ i t ng là hình ch nh t R2 và hình trịn E2. Đ
t o mơ hình ta nh p cơng th c (R1 + E1 + R2) E2. Ta có th l u CSG nh là M
file b ng cách dùng Save as t menu File.
Sau khi v xong hình ta nh p đi u ki n biên cho các biên ngoài cùng. Đ
nh p đi u ki n biên ta b m chu t vào icon ∂Ω hay ch n Boundary Mode t
menu Boundary. Ta có th b các biên c a vùng con và xác đ nh đi u ki n
biên. Các đo n có c nh xám là biên c a vùng con là các vùng ch ng nhau c a
các đ i t ng ban đ u. T menu Boundary ch n Remove All Subdomain
Borders đ b t t c các biên con. Các biên có màu và mũi tên. Màu ph n ánh
ki u đi u ki n biên và mũi tên h ng v cu i c a đo n biên. Thông tin v
h ng đ c dùng khi khi đi u ki n biên đ c thơng s hố d c theo biên.
Đi u ki n biên có th là hàm c a x, y hay là h ng. M c đ nh trên biên có đi u
ki n biên Dirichlet u = 0. Đi u ki n biên Dirichlet đ c th hi n b ng màu đ .
Đi u ki n biên có th là Neumann t ng quát(màu xanh) hay h n h p(màu
green). Ta ch n đi u ki n biên mong mu n b ng cách nh p chu t vào đo n
biên hay Shift click n u mu n ch n nhi u đo n biên hay vào menu Edit và
ch n Select All và các đo n biên đ c ch n có màu đen. Khi này h p tho i
đi u ki n biên hi n ra và ta nh p đi u ki n biên mong mu n. Trong ví d này
∂u
ta ch n đi u ki n biên Neumann
= −5 , nghĩa là đ d c c a nghi m theo
∂n
ph ng pháp tuy n c a đo n biên này là 5. B m đúp chu t vào các đo n biên
và trong ô Boundary Condition ch n Neumann. Sau đó nh p giá tr 5 vào ô g
r i ch n OK. Giá tr v n đ m c đ nh là 0.
Sau khi mô t đi u ki n biên ta c n nh p các h s c a PDE. Ta kích ho t
h p tho i PDE Specification b ng cách nh p đúp chu t vào icon PDE hay ch n
PDE Specification trong menu PDE. Ta cũng có th b m đúp vào t ng vùng
con đ nh p các h s PDE cho t ng vùng con đó. Trong h p tho i này ta còn
ph i ch n ki u ph ng trình(elliptic, parabolic, hyperbolic hay eigenmode) và
xác đ nh ki u ng d ng theo ki u PDE. Bài toán ta đang xét là bài toán elliptic
nên ta đánh d u vào ô t ng ng. Ta nh p các giá tr c = 1.9, a = 0.0 và f = 10
cho bài toán này.
Ti p theo ta t o l i tam giác b ng cách b m chu t vào icon hình tam
giác hay ch n Mesh | Initialize Mesh. N u mu n k t qu chính xác h n ta tinh
ch nh l i b ng cách nh p vào icon có 4 tam giác hay ch n Mesh | Refine
Mesh. d ng Mesh | Jiggle Mesh ta có th tăng ch t l ng c a l i. Ta có th
hu các thay đ i v l i b ng cách ch n Mesh | Undo.
Đ gi i ph ng trình ta b m vào icon = hay ch n Solve | Solve PDE. K t
157
qu đ c v ra. M c đ nh, hình v dùng màu và thanh màu đ ch giá tr . N u
mu n nghi m đ c xu t d i d ng vec t cho vùng làm vi c c a MATLAB.
Có nhi u ki u v cho phép ta quan sát nghi m. Mu n v y ta vào menu Plot và
ch n ki u hi n th nghi m thích h p.
4. Dùng các hàm dịng l nh: M c dù pdetool Gui cung c p m t môi tr ng
làm vi c thu n ti n nh ng v n có nh ng tr ng h p ta ph i dùng các hàm
dòng l nh. Đó là:
• hình d ng hình h c c a vùng đ
c kh o sát khác đ ng th ng, cung
trịn, cung ellip.
• đi u ki n biên khơng tiêu chu n
• các h s c a PDE và c a đi u ki n biên ph c t p
• có trên hai bi n ph thu c
• nghi m khơng b h n ch
• nghi m khó bi u di n.
Q trình xác l p bài tốn và gi i nó đ c ph n ánh trong thi t k c a
GUI. M t s c u trúc d li u xác đ nh các khía c nh khác nhau c a bài toán và
các giai đo n x lí khác nhau t o ra các c u trúc d li u m i.
a. Mơ hình CSG: Mơ hình CSG đ c mô t b ng ma tr n Geometry
Description, set formular và ma tr n Name Space. Các c u trúc d li u này
đ c mô t trong hàm decsg.
b. Phân nh các hình: Hình đ c phân nh đ c mô t b ng ma tr n
Decomposed Geometry hay b ng ma tr n Geometry M file. Khi này hình d ng
đ c mơ t nh là m t b các vùng c nh nhau c c ti u bao b i các đo n biên.
M t ma tr n Decomposed Geometry có th đ c t o t mơ hình CSG b ng
dùng hàm decsg. Nó cũng có th xu t t GUI b ng cách ch n Export
Decomposed Geometry trong menu Boundary. M t Geometry M file t ng
đ ng v i m t ma tr n Decomposed Geometry đã cho có th đ c t o ra b ng
cách dùng hàm wgeom và xem b ng hàm pdegplot. C u trúc d li u c a ma
tr n Decomposed Geometry và M file Geometry đ c mô t trong hàm
pdegeom
c. Đi u ki n biên: Đi u ki n biên đ c mô t b ng ma tr n Boundary
Condition hay M file Boundary. Các đi u ki n biên đ c cho nh là hàm trên
các biên. Ma tr n đi u ki n biên có th xu t t GUI b ng ch n Export
Decomposed Geometry, Boundary Cond’s. . .trong menu Boundary. M t M file
ch a đi u ki n biên t ng đ ng v i ma tr n đi u ki n biên có th t o đ c
158
t hàm wbound. C u trúc d li u c a ma tr n đi u ki n biên mô t trong hàm
assemb và pdebound.
d. H s c a ph ng trình: PDE đ c mơ t b ng ma tr n Coefficient hay
M file Coffficient đ i v i m i h s c, a, f và d. Các h s là hàm trên các vùng
con. Các h s có th xu t t GUI b ng ch n Export PDE Coefficients. . . t
menu PDE. C u trúc d li u c a nó đ c mơ t trong hàm assempde.
e. L i: M t l i tam giác đ c mô t b ng d li u l i g m ma tr n
Points, ma tr n Triangle. Trong l i, vùng nh nh t đ c tam giác hoá thành
các vùng con, các đo n biên. S li u l i đ c t o t hình d nh hình h c b ng
hàm initmesh và thay đ i b ng hàm refinemesh và jigglemesh. Hàm
adaptmesh t o s li u l i. L i đ c v b ng hàm pdemesh.
f. Nghi m: Nghi m c a bài toán PDE đ c bi u di n b ng vec t . M i
nghi m là giá tr t i m t đi m l i c a m i bi n ph thu c. Các véc t nghi m
đ c t o ra b ng hàm assempde, pdenonlin, adaptmesh, parabolic, hyperbolic,
và pdeeig.
g. Quá trình và bi u di n: Cho c p nghi m l i ta có các cơng c khác
nhau đ xem các nghi m. pdeintrp và pdertni có th dùng đ n i suy gi a các
hàm. tri2grid dùng đ n i suy hàm t l i tam giác t i l i hình ch nh t.
pdegrad và pdecgrad tính gradient c a nghi m. pdeplot đ v nghi m và
pdecont, pdesurf th hi n nghi m d ng contour và m t.
§1. M T S BÀI TỐN
1. Các ví d v bài tốn elliptic:
a. Ph ng trình Poisson trên hình trịn đ n v :
Ví d đ u tiên v bài tốn elliptic là gi i ph ng trình Poisson xác đ nh
trên hìng trịn đ n v . Bài tốn đ c mơ t b ng ph ng trình:
∆u = 1 trong mi n Ω, u = 0 trên ∂Ω. Trong đó Ω là hình trịn đ n v .
Trong tr ng h p này nghi m chính xác là:
1 − x2 − y2
u( x , y) =
4
Nh v y ta có th đánh giá đ c sai s theo các ph ng pháp chia l i
khác nhau.
Ta th c hi n gi i bài toán theo các b c sau:
• nh p l nh pdetool t
c a s l nh c a MATLAB và con tr chu t tr
thành d u +.
• m
menu Options, đánh d u m c Grid và Snap. V hình trịn đ n v
b ng b m vào icon hình ellip trên thanh cơng c và kéo r i th chu t. N u
159
hình trịn ch a th a mãn u c u thì b m đúp vào nó đ kích ho t h p tho i
và nh p l i các thông s mơ t chính xác tâm và bán kính c a hình trịn.
• nh p ki u biên b ng cách b m vào menu Boundary và ch n Boundary
Mode hay b m đúp vào nút
. Khi này biên c a vùng ∂Ω đ c v và biên
ngoài đ c gán đi u ki n biên m c đ nh(đi u ki n biên Dirichlet u = 0 trên
biên). Trong tr ng h p này đây là đi u ki n biên mong đ i. N u đi u ki n
biên khác đi ta b m đúp vào biên đ hi n th h p tho i và s a l i đi u ki n
biên cho phù h p và hi n th nó.
• đ xác đ nh ph
ng trình vi phân đ o hàm riêng nh p chu t vào nút
PDE trên thanh cơng c (có th ch n menu PDE | PDE Speficification). Khi
này m t h p tho i đ c m ra và ta có th xác đ nh các h s c , a và f. Trong
tr ng h p này c = 1 , f = 1 và a = 0.
• nh p chu t vào nút Mesh(nút hình tam giác) hay ch n Mesh | Initialize
Mesh . Khi này m t l i hình tam giác đ c kh i gán và hi n th .
• nh p nút Refine(nút tam giác có nhi u tam giác con) hay ch n Mesh |
Refine Mesh. Nh v y l i m n h n đ c kh i gán và hi n th .
• đ
gi i ph ng trình nh p nút = hay ch n menu Solve | Solve PDE
(Ctrl E). Dùng h p tho i Plot Selection trong menu Plot | Parameters đ ch n
các hi n th nghi m khác nhau.
• đ
so sánh nghi m s và nghi m chính xác, ch n menu Plot |
Parameters đ hi n th h p tho i Plot Selection. Trong m c Property c a
Color ch n user enrty. Sau đó nh p bi u th c MATLAB u (1 x.^2 y.^)/4 vào
tr ng so n th o user etry và nh p nút l nh Plot. Ta nh n đ c hình v sai s
tuy t đ i c a nghi m. Đ xu t k t qu vào vùng làm vi c c a MATLAB ta
dùng Mesh | Export Mesh và Solve | Export Solution. Đ tinh ch nh k t qu
nh p nút Refine và = nhi u l n. K t qu l u trong ct8_2.m.
b. Bài toán ph n x sóng:
Bài tốn này dùng đ tính ph n x sóng t m t v t th b r i sóng t i.
V i bài tốn này ta kh o sát m t màng n m ngang r ng vô h n ch u các d ch
chuy n nh theo chi u th ng đ ng u. Màng c đ nh biên. Ta coi môi tr ng
đ ng nh t và t c đ sóng là h ng c. Khi sóng là đi u hồ theo t ta có th tính
tr ng b ng cách gi i m t bài toán xác l p duy nh t.
V i u( x , y , t ) = u( x , y)e − iωt ph ng trình sóng có d ng:
∂2u
− c∆u = 0
∂t 2
tr thành:
− ω2 u − c∆u = 0
160
hay ph ng trình Helmholz:
− ∆u − k 2 u = 0
Trong đó k là s sóng, liên quan đ n t n s góc ω, t n s f và đ dài sóng λ
b ng:
ω 2 πf 2 π
k= =
=
c
c
λ
Bây gi ta ph i mô t đi u ki n biên. Coi sóng t i là m t sóng ph ng theo
h ng:
r
a = (cos(a), sin(a)) :
r r
v( x , y , t ) = e i( ka .x − ωt ) = v( x , y)e − iωt
r r
Trong đó : e ika .x = v( x , y)
u là t ng c a v và sóng ph n x r:
u=v+r
Đi u ki n biên đ i v i biên đ i t ng là u = 0, nghĩa là r = v(x,y)(v i sóng âm,
v là nhi u lo n áp su t do đó đi u ki n biên thích h p ph i là ∂u/∂n=0). Sóng
ph n x đi ra kh i đ i t ng. Đi u ki n biên bên ngoài ph i ch n sao sóng
khơng b ph n x . Đi u ki n nh v y th ng g i là không ph n x và ta dùng
đi u ki n b c x Sommerfeld. Khi đ t đ n vơ cùng, r tho mãn x p x ph ng
trình sóng m t chi u:
r
∂r
+ cξ∇r = 0
∂t
cho phép sóng ch chuy n đ ng theo h ng x(x là kho ng cách b c x t v t
th ). V i nghi m đi u hoà theo t,đ i u này tr thành đi u ki n biên Neumann
t ng qt hố:
r
ξ∇r = ikr
Vì lí do đ n gi n hố, coi pháp tuy n bên ngồi c a vùng kh o sát x p x
h ng bên ngoài ξ.
Bây gi ta dùng pdetool đ gi i bài toán. S d ng mode Generic Scalar
b ng cách vào menu Option|Application và đánh d u vào Generic Scalar , b t
đ u b ng cách v vùng 2 D c a bài toán.
Đ i t ng b chi u sáng là m t hình vng R1 v i c nh 0.1 đ n v và tâm
[0.8 0.5] và quay 450 (vào Draw|Rotate ) và coi vùng tính là C1 là hình trịn
có bán kính 0.45 và tâm cùng m t ch v i hình vng. Mơ hình CGS là C1 R1.
V i biên ngoài, ta dùng đi u ki n biên Neumann v i q = jk. H s sóng
k = 60 t ng ng v i b c sóng 0.1 đ n v . Nh v y ta c n nh p giá tr q = 60j
và g = 0 b ng cách vào menu Boundary| Specify Boundary Condition...
Đ i v i biên hình vng ta dùng đi u ki n biên Dirichlet:
161
r r
r = −v( x , y) = −e ika .x
Trong bài tốn này, sóng t i ph i đi qua đo n x. Nh v y đi u ki n
biên có d ng đ n gi n là:
r = −v( x , y) = −e ikx
Vào menu Boundary| Specify Boundary Condition... và nh p đi u ki n
biên Dirichlet h = 1, r = exp( i*60*x). Vào menu PDE|PDE Specification... và
nh p các h s c a ph ng trình là c = 1, a = 3600 và f = 0. Ti p theo b m vào
nút công c chia l i đ chia l i cho bài toán. Ta l u t t c k t qu vào file
ct8_4.m.
Bây gi ta có th gi i bài tốn và có nghi m ph c.
Đ th y đ c s lan truy n sóng ph n x , sau khi gi i bài toán ta ch n
Draw|Export Geometry Description, Set Formular, Label...; Boundary|Export
Decomposed Gemetry, Boundary Cond s...; PDE|Export Coeficients...;
Solve|Export Solution... và ch y các l nh MATLAB sau(l u trong file
ct8_5.m):
m = 10; % so khung hinh
h = newplot;
hf = get(h, Parent );
set(hf, Renderer , zbuffer )
axis tight;
set(gca, DataAspectRatio ,[1 1 1]);
axis off;
M = moviein(m,hf);
maxu = max(abs(u));
for j = 1:m
uu = real(exp( j*2*pi/m*sqrt( 1))*u);
fprintf( %d ,j);
pdeplot(p,e,t, xydata ,uu, colorbar , off , mesh , off );
caxis([ maxu maxu]);
axis tight, set(gca, DataAspectRatio ,[1 1 1]);
axis off;
M(:,j) = getframe(hf);
if j = = m
fprintf( done\n );
end
end
movie(hf,M,50);
162
c. Bài toán m t c c ti u: Trong nhi u bài toán h s c, a và f khơng ch
ph thu c vào x và y mà cịn vào u. Ta kh o sát ph ng trình:
⎛
⎞
1
⎜
− ∇.
∇u ⎟ = 0
⎜
⎟
2
⎝ 1+ |∇u|
⎠
trong hình trịn đ n v Ω = {(x , y )|x 2 + y 2 ≤ 1} v i u = x2 trên ∂Ω. Đây là bài tốn
phi tuy n tính và khơng th gi i v i trình gi i solver. Do đó trình pdenonlin
đ c dùng.
Vùng tìm nghi m là hình trịn đ n v . V hình trịn này và xác đ nh đi u
ki n biên b ng cách vào menu Boundary|Boundary Mode. Dùng Select All c a
menu Edit đ ch n t t c các biên. Sau đó nh p đúp vào biên đ m h p tho i
Boundary Condition. Đi u ki n biên u = x^2 đ c nh p vào b ng cách đánh
x.^2 vào m c c a r. Ti p theo m h p tho i PDE Specification đ xác đ nh
1
PDE. Đây là ph ng trình elliptic v i c =
, a = 0 và f = 0. H s c đ c
1+ |∇u|2
nh p vào b ng cách đánh c =1./sqrt(1+ux.^2+uy.^2). Kh i gán l i và làm tinh
l i m t l n. Tr c khi gi i ph ng trình ch n Parameters . . . t menu Solve và
dùng tu ch n Use nonlinear và đ t sai s 0.001. Nh n nút = đ gi i ph ng
trình. Dùng h p tho i Plot Selection đ v nghi m d ng 3 D.
d. Chia vùng: PDE Toolbox đ c thi t k đ làm vi c v i s phân vùng
c p 1. N u vùng Ω ph c t p, th ng nên phân nó thành các vùng có c u trúc
đ n gi n h n đ n gi n. Các c u trúc nh v y th ng đ c th c hi n b i
pdetool.
Gi s Ω là m t t p h p các vùng con Ω1, Ω2,..., Ωn.V y ta có th đánh s
l i các nút c a l i trên Ω sao cho ch s c a các nút các vùng con đ c
nhóm l i v i nhau trong khi t t c ch s c a các nút chung c a 2 hay nhi u
vùng con nh cũ. Do ma tr n K có các s h ng khác 0 ch các hàng và các c t
ch các nút c nh nhau, nên nó đ c phân thành:
⎛ K 1 0 ⋅ ⋅ ⋅ 0 B1T ⎞
⎜
⎟
T
⎜ 0 K 2 ⋅ ⋅ ⋅ 0 B2 ⎟
K=⎜ M
M O M
M ⎟
⎜
⎟
0 L K n BTn ⎟
⎜ 0
⎜
⎟
⎝ B1 B 2 L B n C ⎠
Trong khi v ph i là:
163
⎛ f1 ⎞
⎜ ⎟
⎜ f2 ⎟
f =⎜ M ⎟
⎜ ⎟
⎜ fn ⎟
⎜f ⎟
⎝ c⎠
Th ng trình assempde c a PDE Toolbox có th g p các ma tr n Kj, Bj, fj
và C m t cách riêng r nên ta có th ki m sốt đ c vi c l
và x lí các ma
tr n này. H n n a c u trúc c a h th ng tuy n tính Ku = F đ c đ n gi n hoá
b ng cách chia K thành t ng ma tr n riêng ph n nh trên.
Bây gi ta kh o sát m t màng hình L. Ta có th v màng này b ng l nh:
pdegplot( lshapeg )
Chú ý các biên gi a các vùng con. Có 3 vùng con vì mi n đang xét có d ng L.
Nh v y công th c ma tr n v i n = 3 t trên có th dùng. Bây gi ta t o l i :
[p,e,t] = initmesh( lshapeg );
[p,e,t] = refinemesh( lshapeg ,p,e,t);
[p,e,t] = refinemesh( lshapeg ,p,e,t);
V i tr ng h p này v i n = 3 ta có:
⎛ K1 0
0 B1T ⎞⎛ u1 ⎞ ⎛ f1 ⎞
⎜
⎟⎜ ⎟ ⎜ ⎟
T
⎜ 0 K 2 0 B2 ⎟⎜ u 2 ⎟ ⎜ f2 ⎟
=
⎜ 0
0 K 3 BT3 ⎟⎜ u 3 ⎟ ⎜ f3 ⎟
⎜
⎟⎜ ⎟ ⎜ ⎟
⎜B B
⎟⎜ c ⎟ ⎜ f ⎟
B
C
2
3
⎝ 1
⎠⎝ ⎠ ⎝ c ⎠
Và nghi m xác đ nh b ng cách lo i tr kh i:
(C − B1K 1−1B1T − B2 K 2−1BT2 − B3K 3−1BT3 )u c = fc − B1K 1−1f1 − B2 K 2−1f2 − B3K 3−1f3
u1 = K 1−1 (f1 − B1T u c )
L
Khi gi i bài toán, ta dùng ph ng pháp phân tích Choleski. Cac l nh
MATLAB nh sau( l u trong ct8_7.m):
echo on
clc
%
Gia pt Poisson s
%
div(grad(u))=1
%
tren mang L voi u=0 tren bien.
%
Bai toan duoc gia bang cach chia vung.
pause % Nhan phim bat ki de tiep tuc.
164
clc
%
Dinh nghia bai toan
g = lshapeg ; % mang dang L
b = lshapeb ; % 0 tren bien
c = 1;
a = 0;
f = 1;
time = [];
[p,e,t] = initmesh(g);
[p,e,t] = refinemesh(g,p,e,t);
[p,e,t] = refinemesh(g,p,e,t);
pause % Nhan phim bat ki de tiep tuc.
clc
np = size(p,2);
%
Truoc het tim cac diem chung
cp = pdesdp(p,e,t);
%
Dinh vi khong gian
nc = length(cp);
C = zeros(nc,nc);
FC = zeros(nc,1);
pause % Nhan phim bat ki de tiep tuc.
%
Ket hop vung 1 va cap nhat
[i1,c1] = pdesdp(p,e,t,1);
ic1 = pdesubix(cp,c1);
[K,F] = assempde(b,p,e,t,c,a,f,time,1);
K1 = K(i1,i1);
d = symmmd(K1);
i1 = i1(d);
K1 = chol(K1(d,d));
B1 = K(c1,i1);
a1 = B1/K1;
C(ic1,ic1) = C(ic1,ic1) + K(c1,c1) a1*a1 ;
165
f1 = F(i1);
e1 = K1 \f1;
FC(ic1) = FC(ic1) + F(c1) a1*e1;
pause % Nhan phim bat ki de tiep tuc.
%
Ket hop vung 2 va cap nhat
[i2,c2] = pdesdp(p,e,t,2);
ic2 = pdesubix(cp,c2);
[K,F] = assempde(b,p,e,t,c,a,f,time,2);
K2 = K(i2,i2);
d = symmmd(K2);
i2 = i2(d);
K2 = chol(K2(d,d));
B2 = K(c2,i2);
a2 = B2/K2;
C(ic2,ic2) = C(ic2,ic2) + K(c2,c2) a2*a2 ;
f2 = F(i2);
e2 = K2 \f2;
FC(ic2) = FC(ic2) + F(c2) a2*e2;
pause % Nhan phim bat ki de tiep tuc.
%
Ket hop vung 3 va cap nhat
[i3,c3] = pdesdp(p,e,t,3);
ic3 = pdesubix(cp,c3);
[K,F] = assempde(b,p,e,t,c,a,f,time,3);
K3 = K(i3,i3);
d = symmmd(K3);
i3 = i3(d);
K3 = chol(K3(d,d));
B3 = K(c3,i3);
a3 = B3/K3;
C(ic3,ic3) = C(ic3,ic3) + K(c3,c3) a3*a3 ;
f3 = F(i3);
e3 = K3 \f3;
FC(ic3) = FC(ic3 )+ F(c3) a3*e3;
pause % Nhan phim bat ki de tiep tuc.
166
% Giai
u = zeros(np,1);
u(cp) = C\FC; % cac diem chung
u(i1) = K1\(e1 a1 *u(c1)); % cac diem tren vung 1
u(i2) = K2\(e2 a2 *u(c2)); % cac diem tren vung 2
u(i3) = K3\(e3 a3 *u(c3)); % cac diem tren vung 3
% Ve
pdesurf(p,t,u)
pause % Nhan phim bat ki de tiep tuc.
echo off
Các l nh gi i b ng GUI l u trong ct8_8.m
2. Các ví d v bài tốn parabolic:
a. Ph ng trình truy n nhi t: kh i kim lo i b đ t nóng: Bài tốn
parabolic nói chung là bài tốn v ph ng trình truy n nhi t d ng:
∂u
d
− ∆u = 0
∂t
Ph ng trình truy n nhi t mô t s lan truy n nhi t trong các v t th . Ví
d đ u tiên mà ta xem xét là m t thanh kim lo i có m t l hình ch nh t b đ t
nóng. T i đ u bên trái c a thanh nhi t đ là 1000C. T i đ u bên ph i nhi t lan
truy n t thanh vào môi tr ng khơng khí chung quanh v i t c đ h ng, ví d
là 10. Các biên khác cách nhi t. Do đó ta có các đi u ki n biên sau:
• u = 100
bên trái (đi u ki n biên Dirichlet)
∂u
•
= −10 bên ph i (đi u ki n biên Neumann)
∂n
∂u
= 0 trên các biên khác(đi u ki n biên Neumann)
•
∂n
V i ph ng trình truy n nhi t ta c n đi u ki n đ u: nhi t đ c a thanh
kim lo i t i t0. Trong bài toán này nhi t đ ban đ u c a thanh là 00C. Cu i
cùng ta xác đ nh th i đi m b t đ u truy n nhi t là t = 0 và ta mu n tính tốn
q trình truy n nhi t trong su t 5s.
Sau khi đã kh i đ ng pdetool và ch n Generic Scalar ta v mơ hình CSG
d dàng. Ta v hình ch nh t R1: [ 0.5 0.8 1 1.6]. Ta v ti p hình ch nh t khác
(l ) R2: [ 0.05 0.4 0.1 0.8]. Mơ hình này là R1 R2.
B m vào nút ∂Ω đ xác đ nh biên đ mô t biên và đi u ki n biên. Dùng
167