Tải bản đầy đủ (.pdf) (14 trang)

Chương 8: Phương trình vi phân đạo hàm riêng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (309.07 KB, 14 trang )

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




×