Upload
tienanh08
View
220
Download
0
Embed Size (px)
Citation preview
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
1/35
403
CHNG 9: PHNG TRNH VI PHN O HM RING
1.KHINIMCHUNGPhngtrnhviphn ohmring(PDE)lmtlpccphngtrnh
vi phn c sbin c lp ln hn 1. Trong chng ny ta s kho st cc
phng trnh vi phn o hm ring cp 2 vi haibin c lp x v y, cdngtngqut:
+ + =
2 2 2
2 2
u u u u uA(x,y) B(x,y) C(x,y) f x,y,u, ,
x x y y x y (1)
vixoxxf,yoyyfvcc iukinbin:=o you(x, y ) b (x) =f yfu(x,y ) b (x)
=o xou(x , y) b ( y) =f xfu(x ,y) b (y) (2)CcPDE cphnthnh3loi:PDEelliptic: 2B 4AC 0
Ccphngtrnhnygnmtcchtng ngvitrngthicnbng,trngthitruynnhit,h thngdao ng
2.PHNGTRNHELLIPTICTaxtphngtrnhHelmholz:
+ = + + =
2 22
2 2
u(x, y) u(x, y)u(x,y) g(x,y) g(x,y)u(x,y) f(x,y)
x y (1)
trnmin { }= o f o fD (x,y) : x x x ,y y y vi iukinbindng:= =
= =o yo f yf
o xo f xf
u(x,y ) b (x) u(x, y ) b (x)
u(x ,y) b (y) u(x , y) b (y) (2)
Phng trnh(1) cgi lphngtrnhPoissonnug(x,y)=0vgi lphngtrnhLaplacenug(x,y)=0vf(x,y)=0. dngphngphpsai
phntachiaminthnhMx on,mi ondix=(xf xo)/MxdctheotrcxvthnhMy on,mi ondiy=(yf yo)/Mydctheotrcyvthay ohmbc2bngxpx 3 im:
+ +
j i
2i ,j 1 i ,j i ,j 1
2 2
x ,y
u 2u uu(x,y)
x xvixj=xo+jx,yj=yo+jy (3.a)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
2/35
404
+ +
j i
2i 1,j i ,j i 1,j
2 2
x ,y
u 2u uu(x,y)
y xviui,j=u(xj,yi) (3.b)
Nh vytimi imbntrong(xj,xi)vi1iMy 1v1jMx itnhncphngtrnhsaiphn:
+ + + ++ = =
i ,j 1 i ,j i ,j 1 i 1,j i ,j i 1,ji ,j i,j i ,j2 2
u 2u u u 2u u g u fx y
(4)
Trong :ui,j=u(xj,yi) fi,j=f(xj,yi) gi,j=g(xj,yi)
Ccphngtrnhnyspxplitheocchno thnhh phngtrnhvi
(My 1)(Mx 1)bin{ } x x y y x1,1 1,2 1,M 1 2,1 2 ,M 1 M 1,2 M 1,M 1u ,u ,...,u ,u ,...,u ,...,u ,...,u . d dngtavitliphngtrnhv iukinbindidng:
+ + = + + + +
i ,j y i ,j 1 i ,j 1 x i 1,j i 1,j xy i ,j i ,j i ,ju r (u u ) r (u u ) r (g u f ) (5a)= = = =x yi ,o xo i i ,M xf i o,j yo j M ,j yf j
u b (y ) u b (y ) u b (x ) u b (x ) (5b)
Trong :
= +
2
y 2 2
yr
2( x y )
=
+
2
x 2 2
xr
2( x y )
=
+
2 2
xy 2 2
x yr
2( x y ) (6)
Bygi takhosttipccdng iukinbin.CcbitonPDEc2 loiiukinbin: iukinbinNeumannv iukinbinDirichlet. iukin
binNeumannmtbng:
=
= o
o
xx x
u(x,y) b (y)x
(7)
Thay ohmbc1 bintri(x=xo)bngxpx 3 im: =
oi ,1 i , 1
x i
u ub (y )
2 x oi , 1 i ,1 x iu u 2b (y ) x i=1,2,...,My1 (8)
Thaythrngbucnyvo(5a) cc imbintac: + = + + + + i ,0 y i ,1 i , 1 x i 1,0 i 1,0 xy i ,0 i ,0 i ,0u r (u u ) r (u u ) r (g u f )
+ = + + + + 0y i ,1 i ,1 x i x i 1,0 i 1,0 xy i ,0 i ,0 i ,0r u u 2b (y ) x r (u u ) r (g u f )
+ = + + + 0y i ,1 x i 1,0 i 1,0 xy i ,0 i ,0 i ,0 x i2r u r (u u ) r g u f 2b (y ) x (9)
Nu iukinbintrnbindi(y=yo)cnglkiuNeumanntas vitccphngtrnhtngt vij=1,2,...,Mx1:
+ = + + + 00,j x 1,j y 0 ,j 1 0 ,j 1 xy 0,j 0 ,j 0 ,j y ju 2r u r (u u ) r g u f 2b (x ) y (10)
vbsungchogcditri(xo,yo):
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
3/35
405
= + + +
00 y 0x 0
0,0 y 0,1 x 1,0 xy 0,0 0 ,0 0 ,0
b (x )b (y )u 2(r u r u ) r g u f 2 2
x y (11)
iukinbinDirichletchogitr hmtrnbinnncththaytrctipvophngtrnh.Tacth lygitr trungbnhcaccgitr bin lmgitr
ucaui,j.Taxydnghmpoisson() thchinthuttonny:
function[u,x,y]=poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,maxiter)
%giaia(u_xx+u_yy+g(x,y)u=f(x,y)
%trenmienD=[x0,xf,y0,yf]={(x,y)|x0
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
4/35
406
forj=1:Mx
F(i,j)=f(x(j),y(i));
G(i,j)=g(x(j),y(i));
end
end
dx2=dx*dx;
dy2=dy*dy;
dxy2=2*(dx2+dy2);
rx=dx2/dxy2;
ry=dy2/dxy2;
rxy=rx*dy2;
foritr=1:maxiter
forj=2:Mx
fori=2:My
u(i,j)=ry*(u(i,j+1)+u(i,j 1))+rx*(u(i+1,j)+u(i 1,j))...
+rxy*(G(i,j)*u(i,j) F(i,j));%Pt.(5a)
end
end
ifitr>1&max(max(abs(u u0)))
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
5/35
407
f=inline(0 ,x , y);
g=inline(0 ,x , y);
x0=0;
xf=4;
Mx=20;
y0=0;
yf=4;
My=20;
bx0=inline(exp(y) cos(y) , y);%(vd.2a)
bxf=inline(exp(y)*cos(4) exp(4)*cos(y) , y);%(vd.2b)
by0=inline(cos(x) exp(x) ,x);%(vd.3a)
byf=inline(exp(4)*cos(x) exp(x)*cos(4) ,x);%(vd.3b)
D=[x0xfy0yf];
maxiter=500;
tol=1e4;
[U,x,y]=poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,maxiter);
clf
mesh(x,y,U)
axis([0404 100100])
3.PHNGTRNHPARABOLIC
1. Dng phng trnh: Mt phng trnh vi phn o hm ring dngparaboliclphngtrnhmt s phnbnhit imxtithi imtcamtthanh:
=
2
2
u(x,t) u(x,t)A
x t (1)
phng trnh c th gii c ta phi cho iu kinbin u(0, t) =b0(t),=
ff xu(x , t) b (t) v iukin uu(x,0)=i0(x)
2.PhngphpEulertintngminh: pdngphngphpsaiphnhu hn, ta chia min khng gian [0, xf] thnh M on, mi on di = fx x / M vchiathigianTthnhNphn,miphnlt=T/N.Sau tathay ohmbc2 vtriv ohmbc vphica(1)bngccxpx3 imvnhn c:
++ + =
k k k k 1 ki 1 i i 1 i i
2
u 2u u u uA
x t (2)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
6/35
408
Cngthcnycthgignvothuttonsau,gilthuttonEul tintngminh:
++
= + + =
k 1 k k ki i 1 i 1 i 2
tu r(u u ) (1 2r)u r A
x (3)
i=1,2,...,M1
tm iukin n nhcathutton,tathaynghimth:
= ji
k k Piu e (4)
viPlsnguynkhczerovophngtrnh(3)vc:
= + + =
j j
P Pr e e (1 2r) 1 2r 1 cosP
(5)
Dotaphic||1vibitonkhngcngunnn iukin n nhl:
=
2
t 1r A
x 2
(6)
Taxydnghmfwdeuler() thchinthuttontrn
function[u,x,t]=fwdeuler(a,xf,T,it0,bx0,bxf,M,N)
%giaiau_xx=u_tvoi 0
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
7/35
409
end
end3.PhngphpEuler li n: Ta kho st mt thut ton khc gi l thuttonEulerli, nsinhradothaythlixpx ohm ivi ohmbc1trnvphica(1):
+ + =
k k k k k 1i 1 i i 1 i i
2
u 2u u u uA
x t (7)
+
+ + = =
k k k k 1i 1 i i 1 i 2
tru (1 2r)u ru u r A
x (8)
Nu cc gi tr k0u vkMu c hai u cho trc t iu kinbin kiu
Dirichletnnphngtrnh(8) atih phngtrnh:
+ +
+ + = + + +
M M M M M M M M
L
L
k k 1 k1 1 0
k k 1
2 2k k 13 3
k k 1M 2 M 2
k k 1 kM 1 M 1 M
u u ru1 2r r 0 0 0 0
u ur 1 2r r 0 0 0
0 r 1 2r r 0 0 u u
0 0 0 1 2r r u u0 0 0 r 1 2r u u ru
(9)
iukinbinNeumann=
= 0x 0
ub (t)
xc avophngtrnhbngcch
xpx:
=
k k1 1
0
u ub (k)
2 x (10)
vghpnviphngtrnhc n k0u :
+ + =k k k k 1
1 0 1 0ru (1 2r)u ru u (11)c cphngtrnh:
+ = k k k 10 1 0 0(1 2r)u 2ru u 2rb (k) x (12)Ktqu tac ch phngtrnh:
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
8/35
410
+ + +
+ =
+ + +
L
L
L
LM M M M M M M
L
L
k k0 0 0
k k 11 1
k k 12 2
k k 13 3
k k 10 M 2
k k 1 k0 M 1 M
1 2r r 0 0 0 0 u u 2rb (k) x
r 1 2r r 0 0 0 u u
0 r 1 2r r 0 0 u u
0 0 r 1 2r 0 0 u ur 0
0 0 0 0 1 2r r u u
0 0 0 0 r 1 2r u u ru
(13
iukin n nhcanghiml:
+ + =
j j
P P1
re (1 2r) re
hay: = +
1
1 2r 1 cosP
1 (14)
Taxydnghmbackeuler() thchinthuttonny:
function[u,x,t]=backeuler(a,xf,T,it0,bx0,bxf,M,N)
%Giaiau_xx=u_tvoi0
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
9/35
411
A(i,i)=r2;%Pt.(9)
ifi>1
A(i 1,i)= r;
A(i,i 1)= r;end
end
fork=2:N+1
b=[r*u(1,k);zeros(M 3,1);r*u(M+1,k)]+u(2:M,k 1);%Pt.(9)
u(2:M,k)=trid(A,b);
end
4.PhngphpCrank Nicholson:Trong(7),xpx ohm vtrily thi imk,trongkhixpx ohm vphi. cithin,taly ohm vtriltrongbnhcaxpx ohmtihai imlkvk+1vc:
+ + + ++ + + + + =
k 1 k 1 k 1 k k k k 1 ki 1 i i 1 i 1 i i 1 i i
2 2
A u 2u u u 2u u u u
2 x x t (15)
vnhn cphngphpCrank Nicholson:+ + +
+ +
+ + = + + =
k 1 k 1 k 1 k k ki 1 i i 1 i 1 i i 1 2
tru (1 2r)u ru ru (1 2r)u ru r A
x (16)
Vi iukinbinDirichlettix0v iukinbinNeumanntixMtachphngtrnh:
+
+
+
+
+
+ + + + +
M M M M M M M
L
L
k 11
k 12
k 13
k 1M 1
k 1M
u2(1 r) r 0 0 0 0
ur 2(1 r) r 0 0 0
0 r 2(1 r) r 0 0 u
0 0 0 2(1 r) r u0 0 0 r 2(1 r) u
=
M M M M M M M
L
L
k1
k
2
k3
kM 1
kM
u2(1 r) r 0 0 0 0
ur 2(1 r) r 0 0 00 r 2(1 r) r 0 0 u
0 0 0 2(1 r) r u0 0 0 r 2(1 r) u
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
10/35
412
[ ]
+ + +
+ +
M
k 1 k0 0
M M
r(u u )
0
0
02r b (k 1) b ( k)
(17)
iukin n nh cxc nhbng: + =
2 1 r 1 cos 2 1 r 1 cosP P
hay:
= +
1 r 1 cosP 1
1 r 1 cos P
(18)
Taxydnghmcranknicholson() thchinthuttontrn:
function[u,x,t]=cranknicholson(a,xf,T,it0,bx0,bxf,M,N)
%Giaiau_xx=u_tvoi0
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
11/35
413
A(i,i)=r2;%Pt.(17)
ifi>1
A(i 1,i)= r;
A(i,i 1)= r;
end
end
fork=2:N+1
b=[r*u(1,k);zeros(M 3,1);r*u(M+1,k)]...
+r*(u(1:M 1,k 1)+u(3:M+1,k 1))+r1*u(2:M,k 1);
u(2:M,k)=trid(A,b);%Pt.(17)
end
giiphngtrnh: =
2
2
u(x,t) u(x,t)0 x 1, 0 t 0.1
x t (vd1)
vi iukin u:u(x,0)=sinx u(0,t)=0 u(1,t)=0 (vd2)
Nh vyvix=xf/M=1/20vt=T/N=1/100tac:
= = = 2 2
t 0.001r A 1. 0.4
x 0.05 (vd3)
Tadngchngtrnhctheat.m tmnghimca(vd1):
clearall,clc
a=1;%cacthongsocua(vd1)
it0=inline(sin(pi*x) ,x);%dieukiendau
bx0=inline(0);
bxf=inline(0);%dieukienbien
xf=1;
M=25;
T=0.1;N=100;
[u1,x,t]=fwdeuler(a,xf,T,it0,bx0,bxf,M,N);
figure(1),clf,mesh(t,x,u1)
[u2,x,t]=backeuler(a,xf,T,it0,bx0,bxf,M,N);
figure(2),clf,mesh(t,x,u2)
[u3,x,t]=cranknicholson(a,xf,T,it0,bx0,bxf,M,N);
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
12/35
414
figure(3),clf,mesh(t,x,u3)
4.PDEparabolic2chiu:Taxtbitonphngtrnhviphn ohmringparabolichaichiumt s phnbnhit u(x,y,t):
+ =
2 2
2 2
u(x, y, t) u(x, y, t) u(x, y, t)A x y t (19)
phngtrnhcthgii ctacncho iukinbin:=
00 xu(x ,y,t) b (y,t) =
ff xu(x ,y,t) b (y,t)
=00 y
u(x,y , t) b (x,t) =ff y
u(x,y ,t) b (x,t)
v iukin uu(x,y,0)=i0(x,y)Tathay ohmbc1theot vphibngsaiphn3 imti imgia(tk+1+tk)/2nh phngphpCrank Nicholson.Tacngthaythmttrong
cc ohmbchaiuxxvuyybngxpx 3 imtithi imtkv ohmkiatitk+1vc:
++ + + + =
k k k k k k k 1 ki ,j 1 i ,j i ,j 1 i ,j 1 i ,j i ,j 1 i ,j i ,j
2 2
u 2u u u 2u u u uA
x x t (20)
Tavitphngtrnhtithi imtiptheotk+1:+ + + + ++ + + + =
k 1 k 1 k 1 k k k k 2 k 1i ,j 1 i ,j i ,j 1 i ,j 1 i ,j i ,j 1 i ,j i ,j
2 2
u 2u u u 2u u u uA
x x t (21)
Cng thc ny, c Peaceman vRachford a ra, l phng php n vtonnh phngtrnh:
( ) ( )+ + + + + + + + = + k 1 k 1 k 1 k k ky i 1,j i 1,j y i,j x i ,j 1 i ,j 1 x i,jr u u (1 2r )u r u u (1 2r )u (22a)vi0jMx 1
( ) ( )+ + + + + + + + + + + = + k 2 k 2 k 2 k 1 k 1 k 1x i ,j 1 i ,j 1 x i,j y i 1,j i 1,j y i,jr u u (1 2r )u r u u (1 2r )u (22b)vi0iMy 1
v:
=x 2
tr A
x
=
y 2t
r Ay
f 0x
x xx =M
f 0y
y yy =M
= TtN
Taxydnghmheat2D() thchinthuttonny:
function[u,x,y,t]=heat2D(a,D,T,ixy0,bxyt,Mx,My,N)
%Giaiau_t=c(u_xx+u_yy)voiD(1)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
13/35
415
%Dieukiendau:u(x,y,0)=ixy0(x,y)
%Dieukienbien:u(x,y,t)=bxyt(x,y,t)voi(x,y)cB
%Mx/My cacdoancodoctheotrucx/y
%N cackhoangthoigian
dx=(D(2) D(1))/Mx;
x=D(1)+[0:Mx]*dx;
dy=(D(4) D(3))/My;
y=D(3)+[0:My]*dy;
dt=T/N;
t=[0:N]*dt;
%Khoigan
forj=1:Mx+1
fori=1:My+1
u(i,j)=ixy0(x(j),y(i));
end
end
rx=a*dt/(dx*dx);
rx1=1+2*rx;
rx2=1 2*rx;
ry=a*dt/(dy*dy);
ry1=1+2*ry;
ry2=1 2*ry;
forj=1:Mx 1%Pt.(22a)
Ay(j,j)=ry1;
ifj>1
Ay(j 1,j)= ry;
Ay(j,j1)= ry;
end
end
fori=1:My 1%Pt.(22b)Ax(i,i)=rx1;
ifi>1
Ax(i 1,i)= rx;
Ax(i,i 1)= rx;
end
end
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
14/35
416
fork=1:N
u_1=u;
t=k*dt;
fori=1:My+1%Dieukienbien
u(i,1)=feval(bxyt,x(1),y(i),t);
u(i,Mx+1)=feval(bxyt,x(Mx+1),y(i),t);
end
forj=1:Mx+1
u(1,j)=feval(bxyt,x(j),y(1),t);
u(My+1,j)=feval(bxyt,x(j),y(My+1),t);
end
ifmod(k,2)==0
fori=2:My
jj=2:Mx;
bx=[ry*u(i,1)zeros(1,Mx 3)ry*u(i,My+1)]...
+rx*(u_1(i1,jj)+u_1(i+1,jj))+rx2*u_1(i,jj);
u(i,jj)=trid(Ay,bx) ;%Pt.(22a)
end
else
forj=2:Mx
ii=2:My;
by=[rx*u(1,j);zeros(My3,1);rx*u(Mx+1,j)]...
+ry*(u_1(ii,j1)+u_1(ii,j+1))+ry2*u_1(ii,j);
u(ii,j)=trid(Ax,by);%Pt.(22b)
end
end
end
Taxtphngtrnh:
+ =
2 24
2 2
u(x, y, t) u(x, y, t) u(x, y, t)10
x y t (vd1)
trongmin:0x4,0y4vtrongkhongthiggian0t5000iukin u:
u(x,y,0)=0 (vd2a)v iukinbin:eycosx excosytix=0,x=4;y=0,y=4 (vd2b)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
15/35
417
Chngtrnhchngtrnhctheat2D.mdng giiphngtrnhl:
clear,clc,clf
a=1e4;
it0=inline(0 ,x , y);%(vd2a)
bxyt=inline(exp(y)*cos(x)exp(x)*cos(y) ,x , y ,t);%(vd.2b)
D=[0404];
T=5000;
Mx=40;
My=40;
N=50;
[u,x,y,t]=heat2D(a,D,T,it0,bxyt,Mx,My,N);
mesh(x,y,u)
4.PHNGTRNHHYPERBOLIC1.Dng phng trnh: Phng trnh truyn sng mt chiu l PDE dnghyperbolic:
=
2 2
2 2
u(x, t) u(x, t)A
x t (1)
0xxf,0tTiukinbin:
u(0,t)=b0(t), = ff xu(x , t) b (t)
v iubin:
u(x,0)=i0(x),=
= 0t 0
ui (x)
t
phi cchotrc phngtrnhcthgii c2. Phng php sai phn tngminh: Tng t nh khi gii PDE dngparabolic,tathay ohmbchai haivca(1)bngsaiphn3 im:
+ + + +
=
k k k k 1 k k 1i 1 i i 1 i i i
2 2
u 2u u u 2u u
A x t (2)
= fx
xM
=T
tN
vc cphngphpsaiphntngminh:
( )+ + = + + k 1 k k k k 1i i 1 i 1 i iu r u u 2(1 r)u u (3)
vi:
=
2
2
tr A
x
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
16/35
418
V = 1i iu u(x , t) khngchotrcnntakhngthdngtrctip1iu t (3)
vik=0:
( ) + = + + 1 0 0 0 1i i 1 i 1 i iu r u u 2(1 r)u u (4)
Nh vy,taxpx iukin uv ohmbngsaiphn:
=
1 1
i i0 iu u i (x )
2 t (5)
vrtra 1iu avo(3):
( )+ = + + 1 0 0 0 1i i 1 i 1 i i 0 iu r u u 2(1 r)u u 2i (x ) t
( )+ = + + + 1 0 0 0i i 1 i 1 i 0 i
1u r u u (1 r)u i (x ) t
2 (6)
Tadng(6)cngvi iukin u c 1iu vrithayvo(3).Chl:r1 bo m n nh
chnhxccanghimtngkhirtng choxgimHplnhtllyr=1. iukin n nhcthnhn cbngcchthay(4)vo(3):
= +
1
2rcos 2(1 r)P
hay: + + =
2 2 r 1 cos 1 1 0P
Nh vy:
=
2
21 tr r A 1
x1 cos
P
Taxydnghmwave() thchinthuttontrn:
function[u,x,t]=wave(a,xf,T,it0,i1t0,bx0,bxf,M,N)
%giaiau_xx=u_ttvoi 0
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
17/35
419
fori=1:M+1
u(i,1)=it0(x(i));
end
fork=1:N+1
u([1M+1],k)=[bx0(t(k));bxf(t(k))];
end
r=a*(dt/dx)^2;
r1=r/2;
r2=2*(1 r);
u(2:M,2)=r1*u(1:M 1,1)+(1 r)*u(2:M,1)+r1*u(3:M+1,1)...
+dt*i1t0(x(2:M));%Pt.(6)
fork=3:N+1
u(2:M,k)=r*u(1:M 1,k 1)+r2*u(2:M,k1)+r*u(3:M+1,k 1)...
u(2:M,k 2);%Pt.(3)
end
Taxtphngtrnh:
=
2 2
2 2
u(x, t) u(x, t)
x t (vd1)
0x2,0t2iukin uv iukinbin:
u(x,0)=x(1 x)=
= t 0u 0t
(vd2a)
=u(0,t) 0 u(1,t)=0 (vd2b)Tadngchngtrnhctwave.m giiphngtrnhny:
clearall,clc
a=1;
it0=inline(x.*(1x) ,x);
i1t0=inline(0);%(vd2a)bx0t=inline(0);
bxft=inline(0);%(vd2b)
xf=1;
M=20;
T=2;
N=50;
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
18/35
420
[u,x,t]=wave(a,xf,T,it0,i1t0,bx0t,bxft,M,N);
figure(1),clf
mesh(t,x,u)
figure(2),clf
forn=1:N%hinhdong
plot(x,u(:,n)),axis([0xf0.30.3]),pause(0.2)
end
4.PDEhyperbolic2chiu:PhngtrnhtruynsnghaichiulPDEdnghyperbolic:
+ =
2 2 2
2 2 2
u(x, y, t) u(x, y, t) u(x, y, t)A
x y t (8)
0xxf,0yyf,0tTiukinbin:=
0xu(0,y,t) b (y,t) =
ff xu(x ,y,t) b (y,t)
=0y
u(x,0,t) b (x,t) =ff y
u(x,y ,t) b (x,t)
v iubin:
= 0u(x,y,0) i (x,y)=
=
0t 0
u(x,y)i (x,y)
t
Tngt nh hmmtbin,tathay ohmbc2bngxpx 3 im:+
+ + + + ++ =
k k k k k k k 1 k k 1
i ,j 1 i ,j i ,j 1 i 1,j i ,j i 1,j i ,j i ,j i ,j2 2 2
u 2u u u 2u u u 2u uAx y t
(9)
= fx
xx
M = f
y
yy
M =
Tt
N
vnhn i nphngphptngminh:
( ) ( )+ + + = + + + + k 1 k k k k k k 1i ,j x i ,j 1 i ,j 1 x y i ,j y i 1,j i 1,j i ,ju r u u 2(1 r r )u r u u u (10)vi:
=
2
x 2
tr A x
=
2
y 2
tr A y
V = 1i,j i iu u(x ,y , t) khngchotrcnntakhngthdngtrctip1i ,ju t
(10)vik=0:
( ) ( ) + + = + + + + 1 0 0 0 0 0 1i ,j x i ,j 1 i ,j 1 x y i ,j y i 1,j i 1,j i ,ju r u u 2(1 r r )u r u u u (11)Nh vy,taxpx iukin uv ohmbngsaiphn:
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
19/35
421
=
1 1i ,j i ,j
0 j i
u ui (x ,y )
2 t (12)
vrtra 1i ,ju avo(11):
( ) ( )+ + = + + + + +
1 0 0 0 0i ,j x i ,j 1 i ,j 1 y i 1,j i 1,j
0x y i ,j 0 j i
1u r u u r u u
22(1 r r )u i (x ,y ) t (13)
iukin n nh:
= +
2
2 2
4A tr 1
x y
Taxydnghmwave2D() thchinthuttontrn:
function[u,x,y,t]=wave2D(a,D,T,it0,i1t0,bxyt,Mx,My,N)
%giai
a(u_xx
+u_yy)
=u_tt
voi
D(1)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
20/35
422
rxy1=1 rx ry;
rxy2=rxy1*2;
u_1=u;
fork=0:N
t=k*dt;
fori=1:My+1%dieukienbien
u(i,[1Mx+1])=[bxyt(x(1),y(i),t) bxyt(x(Mx+1),y(i),t)];
end
forj=1:Mx+1
u([1My+1],j)=[bxyt(x(j),y(1),t);bxyt(x(j),y(My+1),t)];
end
ifk==0
fori=2:My
forj=2:Mx%Pt.(13)
u(i,j)=0.5*(rx*(u_1(i,j 1)+u_1(i,j+1))...
+ry*(u_1(i 1,j)+u_1(i+1,j)))+rxy1*u(i,j)+dt*ut(i,j);
end
end
else
fori=2:My
forj=2:Mx
u(i,j)=rx*(u_1(i,j 1)+u_1(i,j+1))...
+ry*(u_1(i 1,j)+u_1(i+1,j))+rxy2*u(i,j) u_2(i,j);
end
end
end
u_2=u_1;
u_1=u;
mesh(x,y,u),axis([0202 .1.1])
pause(0.1);end
Taxtphngtrnh:
+ =
2 2 2
2 2 2
u(x, y, t) u(x, y, t)1 u(x,t)
4 x y t (vd1)
0x2,0y2,0t2
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
21/35
423
iukin uv iukinbin:u(0,y,t)=0 u(2,y,t)=0 u(x,0,t)=0 u(x,2,t)=0 (vd2)
=
yxu(x,y,0) 0.1sin sin
2 2
=
=
t 0
u0
t (vd3)
Tadngchngtrnhctwave2D.m giiphngtrnhny:
clearall,clc
it0=inline(0.1*sin(pi*x)*sin(pi*y/2) ,x , y);%(vd3)
i1t0=inline(0 ,x , y);
bxyt=inline(0 ,x , y ,t);%(vd2)
a=.25;
D=[0202];
T=2;
Mx=40;
My=40;
N=40;
[u,x,y,t]=wave2D(a,D,T,it0,i1t0,bxyt,Mx,My,N);
5.PHNGPHPPHNTHUHN(FEM)GIIPDEPhngphpFEMdng tmnghimscaPDEvi iukinbin.
TaxtmtPDEdngelliptic:
+ + =
2 2
2 2
u(x, y) u(x, y)g(x,y)u(x,y) f(x,y)
x y (1)
trongminDbaobibinBvtrnbinccc iukin:u(x,y)=b(x,y) trnB (2)
CcbcdngFEM giiphngtrnhgm:)ChiaminDthnhNsmincon{S1,S2,...,SNs}cdnghnhtamgic)Mt v trcaNnntv nhschngbt ut ccnttrnbin:n=1,2,...,Nbvccntbntrong:n=Nb+1,Nb+2,...,Nn)Xc nhcchmnisuy,hnhdngvc s:
{ } = = n n ,s s(x,y) s 1,...,N (x,y) D (3a) = + +n,s n ,s n,s n,s(x, y) p (1) p (2)x p (3)y
chomiminSs (3b)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
22/35
424
ivittccccmincons=1:Nsvccntn=1:Nnsaochonbng1ch ntnvbngzeroticcntkhc.Lc nghimxpx caPDElthptuyntnhcacchmc s n(x,y):
[ ] [ ]=
= = nN
T
n ni 1
u(x,y) c (x,y) c (x,y)
= = +
= + b n
b
N N
n n n ni 1 i N 1
c (x,y) c (x,y)
[ ] [ ] [ ] [ ]= + T T
1 1 2 2c c (4)
Trong :
[ ] = L bT
1 1 2 N [ ] = L bT
1 1 2 Nc c c c (5a)
[ ] + + = Lb b nT
2 N 1 N 2 N [ ] + + = Lb b nT
2 N 1 N 2 Nc c c c (5b)
Vimimincon,nghimnycthvitdidng:
= =
= = + + n nN N
s n n ,s n n,s n,s n ,si 1 i 1
(x,y) c (x,y) c p (1) p (x) p (3)y (6)
) tccgitr cah sntbintrong[c1]bngccgitrbintngngvi iukinbin)Xc nhtr scah sntbntrongtrong[c2]bngcchgiihphngtrnh:
[A2][c2]=[d] (7)
trong :
[ ]
=
= + sN
TT
1 2,s 1,s 2 ,s 1,s s
s 1
A Sx x y y
{ }=
sN
T
s s 2 ,s 1,s s
s 1
g(x , y ) S (8)
= L bT
1,s 1,s 2 ,s N ,s
= L
b
T1,s 1,s 2 ,s N ,sp (2) p (2) p (2)
x
=
Lb
T
1,s 1,s 2 ,s N ,sp (3) p (3) p (3)y
[ ]
=
= + sN
TT
2 2,s 2 ,s 2,s 2 ,s s
s 1
A Sx x y y
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
23/35
425
{ }=
sN
T
s s 2,s 2 ,s s
s 1
g(x , y ) S (9)
+ + = Lb b nT
2,s N 1,s N 2,s N ,s
+ +
=
L
b b n
T
2,s N 1,s N 2,s N ,sp (2) p (2) p (2)x
+ +
=
Lb b n
T
2,s N 1,s N 2,s N ,sp (3) p (3) p (3)y
[ ] [ ][ ]=
= sN
1 1 s s 2 ,ss 1
d A c f(x ,y ) S (10)
(xs,ys)ltrongtmcaminconSsFEMdatrnnguyntclnghimca(1)cthnhn cbngcch
cctiuhohm:
= + 22
R
J u(x,y) u(x,y)x y
} +2g(x,y)u (x,y) 2f(x,y)u(x,y) dxdy (11)Viu(x,y)=[c]T[(x,y)]tac:
[ ] [ ] [ ][ ]{ [ ] [ ] [ ] [ ] = + T T TR
J c c c cx x y y
[ ] [ ][ ] [ ] [ ] [ ]} + T T T
g(x,y) c c 2f(x, y) c dxdy (12)iukin hmnycctiutheo[c]l:
[ ][ ] [ ] [ ]{ [ ] [ ] = + T T22
R
dJ c c
d c x x y
[ ][ ] [ ] [ ]} + T2 2g(x,y) c 2f(x,y) dxdy = 0 (13)
[ ][ ] [ ][ ]=
+ + = sN
1 1 2 2 s s 2 ,ss 1
A c A c f(x ,y ) S 0 (14)
xydnghmc s n,s(x,y) th s ivimintn=1,2,...,Nnvmimincons=1,2,...,Nstaxydnghmfembasisftn():
functionp=fembasisftn(N,S)
%p(i,s,1:3):cachesocuamoihamcosophi(i)
%cuamientamgiac(miencon)thus
%N(n,1:2):x&ytoadocuanutthun
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
24/35
426
%S(s,1:3):nutthuscuamiencontamgiacthus
Nn=size(N,1);%tongsonut
Ns=size(S,1);%tongsocacnutcuamiencontamgiac
forn=1:Nn
fors=1:Ns
fori=1:3
A(i,1:3)=[1N(S(s,i),1:2)];
b(i)=(S(s,i)==n);%hamcosothunbang1chionutthun
end
pnt=A\b ;
fori=1:3\
p(n,s,i)=pnt(i);
end
end
end
xc nhccvect h s[c]canghim(4)nh (7)vcc athcnghim s(x,y) nh (6) ivimimincons=1,2,...,Nstaxydnghmfemcoef():
function[U,c]=femcoef(f,g,p,c,N,S,Ni)
%p(i,s,1:3):cachesocuahamcosophi(i)cuamienconthun
%c=[.11.00.]voicacgiatribienva0voicacnutbentrong
%N(n,1:2):x&ytoajdocuanutthun
%S(s,1:3):nutthuscuamienconthus
%Ni:sonutbentrong
%U(s,1:3):cachesocuap1+p2(s)x+p3(s)ycuamoimiencon
Nn=size(N,1);%tongsonutbangNb+Ni
Ns=size(S,1);%tongsomiencon
d=zeros(Ni,1);
Nb=Nn Ni;
fori=Nb+1:Nn
forn=1:N_n
fors=1:Ns
xy=(N(S(s,1),:)+N(S(s,2),:)+N(S(s,3),:))/3;%trongtam
%phi(i,x)*phi(n,x)+phi(i,y)*phi(n,y) g(x,y)*phi(i)*phi(n)
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
25/35
427
pvctr=[p([in],s,1)p([in],s,2)p([in],s,3)];
tmpg(s)=sum(p(i,s,2:3).*p(n,s,2:3))...
g(xy(1),xy(2))*pvctr(1,:)*[1xy]*pvctr(2,:)*[1xy] ;
dS(s)=det([N(S(s,1),:)1;N(S(s,2),:)1;N(S(s,3),:)1])/2;
%dientichmiencon
ifn==1
tmpf(s)= f(xy(1),xy(2))*pvctr(1,:)*[1xy] ;
end
end
A12(i Nb,n)=tmpg*abs(dS) ;%Pt.(8),(9)
end
d(iNb)=tmpf*abs(dS) ;%Pt.(10)
end
d=d A12(1:Ni,1:Nb)*c(1:Nb) ;%Pt(10)
c(Nb+1:Nn)=A12(1:Ni,Nb+1:Nn)\d;%Pt.(7)
fors=1:Ns
forj=1:3
U(s,j)=c*p(:,s,j);%Pt.(6)
end
end
TrckhidngFEM giimtPDEtaxemth hmc s(hmhnhdng)n(x,y) ivimintn=1,2,...,Nn c nhngha ivittc ccminconhnhtamgicsaochonbng1ch tintnvbng0ticcntkhcc tobi hmfembasisfth() hot ng nh th no. Ta s v hm hnhdngcamin cchiathnh4tamgicnh hnhsau:
To cant: SntmiminconN=[ 1 1; S=[1 2 5;
1 1; 2 3 5;1 1; 3 4 5;
1 1; 1 4 5];0 0.5];
1 10
1
0
n=4
n=5
n=3
n=2n=1 S1
S4
S3
S2
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
26/35
428
theo hai cch. Trc ht ta to cc hm c s bng cch dng hmfembasisftn() v v mt hm trong s bng cch dng lnh MATLABmesh()nh hnha.Th hai,khngtorahmc s,tadnglnhMATLABtrimesh() v cchmhnhdngchoccntn=2,3,4v5nh hnhbe.Hnhfl th cathptuyntnhcacchmc s:
[ ] [ ]=
= = nN
T
n nn 1
u(x,y) c (x,y) c (x, y) (15)
ctr scntimintn.Tachychngtrnhctshowbasic.m:
clearall,clc
N=[11;11;1 1;1 1;0.20.5];%danhsachcacnuttrenhinh1
Nn=size(N,1);%sonut
S=[125;235;345;145];%danhsachcamiencontrenhinh1
Ns=size(S,1);%somiencon
figure(1),clf
fors=1:Ns
nodes=[S(s,:)S(s,1)];
fori=1:3
plot([N(nodes(i),1)N(nodes(i+1),1)],...
[N(nodes(i),2) N(nodes(i+1),2)])
holdon
end
end
ins=[12345];%danhsachcacnutmacachamcosoduocve
foritr=1:5
in=ins(itr);
ifitr==1
fori=1:length(xi)
forj=1:length(yi)
Z(j,i)=0;fors=1:Ns
ifinpolygon(xi(i),yi(j),N(S(s,:),1),N(S(s,:),2))>0
Z(j,i)=p(in,s,1)+p(in,s,2)*xi(i)+p(in,s,3)*yi(j);
break;
end
end
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
27/35
429
end
end
subplot(321),mesh(xi,yi,Z)%hamcosocuanut1
else
c1=zeros(size(c));
c1(in)=1;
subplot(320+itr)
trimesh(S,N(:,1),N(:,2),c1)%hamcosocuacacnut25
end
end
c=[01230];%cacgiatritaicacnut
subplot(326)
trimesh(S,N(:,1),N(:,2),c)%hamtonghopohinhf
-10
1
-10
10
0.5
1
-10
1
-10
10
0.5
1
-10 1
-101
0
0.5
1
-10 1
-101
0
0.5
1
-10
1
-10
10
0.5
1
-10
1
-10
10
2
4
c=[01230];
p=fembasisftn(N,
S);
x0= 1;
xf=1;
y0= 1;
yf=1;%cacmien
figure(2),clf
Mx=50;
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
28/35
430
My=50;
dx=(xf x0)/Mx;
dy=(yfy0)/My;
xi=x0+[0:Mx]*dx;
yi=y0+[0:My]*dy;
Vd:GiiphngtrnhLaplace:
= + =
2 22
2 2
u(x, y) u(x, y)u(x,y) f(x,y)
x y (1)
trnmin 1 x 1; 1 y 1vi:
1f(x,y)= +1
0
(2)
v iukinbinlu(x,y)=0timi imtrnbin.
vi(x,y)=(0.5,0.5)vi(x,y)=(0.5, 0.5)
ccch khc
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
29/35
431
giibitonnybngFEM,taxc nh12 imtrnbinv19 imbntrong, nhschngvchiaminch nhtthnh36minconhnhtamgicnh hnhv trn.Tiptheotaxydngchngtrnhctlaplace.m giibiton
clearall,clc
N=[10;1 1;1/2 1;0 1;1/2 1;1 1;10;11;1/21;01;
1/21;11; 1/2 1/4; 5/8 7/16;3/4 5/8;1/2 5/8;
1/4 5/8;3/8 7/16;00;1/21/4;5/87/16;3/45/8;
1/25/8;1/45/8;3/87/16;9/16 17/32;7/16 17/32;
1/2 7/16;9/1617/32;7/1617/32;1/27/16];%nut
Nb=12;%sonuttrenbien
S=[11112;11119;101119;4519;5719;567;1215;2315;
31517;3417;41719;131719;11319;11315;7822;8922;
92224;91024;101924;192024;71920;72022;131418;
141516;161718;202125;212223;232425;142628;
162627;182728;212931;232930;253031;
262728;293031];%miencontamgiac
fexemp= (norm([xy]+[0.50.5])
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
30/35
432
Mx=16;
dx=(xf x0)/Mx;
xi=x0+[0:Mx]*dx;
My=16;
dy=(yfy0)/My;
yi=y0+[0:My]*dy;
fori=1:length(xi)
forj=1:length(yi)
fors=1:Ns
ifinpolygon(xi(i),yi(j),N(S(s,:),1),N(S(s,:),2))>0
Z(i,j)=U(s,:)*[1xi(i)yi(j)] ;%Pt.(4.5b)
break;
end
end
end
end
figure(2);
clf;
mesh(xi,yi,Z)
%desosanh
bx0=inline(0);
bxf=inline(0);
by0=inline(0);
byf=inline(0);
D=[x0xfy0yf];
[U,x,y]=poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,1e6,50);
figure(3)
clf;
mesh(x,y,U)
6.GUICAMATLAB GIIPDE1.Ccphngtrnhcthgii cbngPDETOOL:Cngc PDETOOLcaMATLABcthdng giiccloiphngtrnhsau:
a.Phngtrnhelliptic:Tas giiphngtrnhelliptic + =(c u) au f (1)
vi iukinbn:
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
31/35
433
=
rhu r Dirichlet
nc u+qu=g Neumann (2)
trnbin,trong rn lvect phptuyn.
Trongtrnghpul ilngvhng,phngtrnh(1)tr thnh:
+ + =
2 2
2 2u(x, y) u(x, y)c au(x,y) f(x,y)x y (3)
vnu iukinbin iviphnbinbntril iukinbinNeumann
dng=
=
00
xx x
u(x,y)b (y)
xth(2)cthvitthnh:
+ +
= + =
r r rx x y
u(x, y) u(x, y)e c e e qu(x,y)
x y
u(x,y)
c qu(x,y) g(x,y)x
(4)
vvect phptuyncabinphil =r r
xn e b.Phngtrnhparabolic:Taxgiiphngtrnh:
+ + =
u
(c u) au d ft
(5)
trnminvtrongkhongthigian0tT,vi iukinbnging(2)viukin uu(t0)
c.Phngtrnhhyperbolic:
+ + =
2
2u(c u) au d f
t (6)
trnminvtrongkhongthigian0tT,vi iukinbnging(2)viukin uu(t0),u(t0)
d.Phngtrnhgitr ring:
+ = u
(c u) aut
(7)
trnminvimtgitr ringchabitv iukinbintngt (2).
Cngc PDETOOLcngcthdng giih phngtrnhdng: + + = + + =
11 1 12 2 11 1 12 2 1
21 1 22 2 21 1 22 2 2
(c u ) (c u ) a u a u f
(c u ) (c u ) a u a u f (8)
trnminvi iukinbinDirichlet:
=
1 111 12
2 221 22
u rh h
u rh h (9)
hay iukinNeumanntngqut:
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
32/35
434
+ + + =
+ + + =
r r
r r11 1 12 2 11 1 12 2 1
21 1 22 2 21 1 22 2 2
n(c u ) n(c u ) q u q u g
n(c u ) n(c u ) q u q u g (10)
hay iukinbinhnhp:
=
11 12
21 22
c cc
c c
=
11 12
21 22
a aa
a a
=
1
2
ff
f
=
1
2
uu
u
=
11 12
21 22
h hh
h h
=
1
2
rr
r
=
11 12
21 22
q qq
q q
=
1
2
gg
g
2.S dngPDETOOL:PDETOOLgiiphngtrnhviphn ohmringbng cch dng phng php FEM. gii phng trnh ta theo ccbcsau:
) Nhp lnhpdetool vo ca s lnh MATLAB. Ca s PDE toolbox
xuthin.Tacthbt/tttu chnGridbngcchbmvoGridtrnmenuOption.TacngcthhiuchnhphmvitrcxvybngcchchnAxesLimittrongnemuOption
Numunchocchnhgnvoli,tachnSnaptrongmenuOption.Numunt l xchcatrcxvtbngnhau hnhtrnnhnkhngginghnhelliptachnAxesEqualtrongmenuOption.) v min ta dng menuDraw hay cc icon trn thanh cng cngayphadiccmenu.) t iukinbintadngmenuBoundaryhayicon.Tabmlntng onbin t iukinchon.
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
33/35
435
) TiptheotatolibngcchdngmenuMeshhayicon. tinhchnhlitabmvoRefineMeshhayicon) Tip theo ta m t dng phng trnh v cc thng s ca nbngcchdngmenuPDE.Mun th,tam menuPDEhaychn iconPDEvchnPDESpecificationvchoccthamscaphngtrnh.) giiphngtrnhtadngmenuSolvehaychnicon= .Tachnmenu con Parameters nhp iu kin u v khong thi gian tmnghim)Numunv ktqu,tadngmenuPlot
3.Mtsvd:a.Vd 1:GiiphngtrnhLaplace:
= + =
2 22
2 2
u(x, y) u(x, y)
u(x,y) 0x y (vd1.1)trongmin0x4,0y4vicc iukinbin:
u(0,y)=ey cosy u(4,y)=eycos4 e4cosy (vd1.2)u(x,0)=cosx ex u(x,4)=e4cosx excos4 (vd1.3)giiphngtrnhtathchinccbcsau:M cngc PDETOOL.VomenuOption|AxesLimithiuchnhli phm vi gi tr ca x v y l [0 5] ri chnApply vClose. ChnOption|AxesEqualBmvoicon v hnhvung.Khiv xong,nucha ngkchthctabm pvo itngbygi ctnlR1 hiuchnhlithnhLeft:0,Bottom:0,Height:4,Width:4.Bmvoiconth ngbinca itngcmu .Trnmionbintacho iukinbintheo(vd1.2)v(vd1.3). ghi iukin
bincho onnotabm pchutln on . iukinbin chol iukinbinDirrichlet.Trnbintri,taghi iukinbin:
h=1,r=exp(y) cos(y)
trnbinphi:h=1,r=eycos4 e4cosy
trnbindi:h=1,r=cosx ex
vtrnbintrn:h=1,r=e4cosx excos4
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
34/35
436
Bm pchutvoiconPDEvchnphngtrnhdngellipticvccthngstheo(vd1.1):c=1,a=0,f=0Bm pchutvoicon tolivsau tinhchnhn.Bm pchutvoicon= giiphngtrnh.VomenuPlot|Parameters chncchv vsau v raktqu
b.Vd 2:Giiphngtrnhparabolic:
+ =
2 24
2 2
u(x, y, t) u(x, y, t) u(x, y, t)10
x y t (vd2.1)
trongmin0x4,0y4v0t5000 vicc iukin uv iubin:
u(x,y,0)=0 (vd2.2a)
u(x,y,t)=ey
cosx ex
cosyvix=0,x=4,y=0,y=4 (vd2.2b)giiphngtrnhtatheoccbcsau:M cngc PDETOOL.VomenuOption|AxesLimithiuchnhli phm vi gi tr ca x v y l [0 4] ri chnApply vClose. ChnOption|AxesEqualBmvoicon v hnhvung.Khiv xong,nucha ngkchthctabm pvo itngbygi ctnlR1 hiuchnhlithnhLeft:0,Bottom:0,Height:4,Width:4.Bmvoiconth ngbinca itngcmu .Trnmionbintacho iukinbintheo(vd2.2b). ghi iukinbinchoonnotabm pchutln on . iukinbin chol iukinbinDirrichlet.Trnbintri,taghi iukinbin:
h=1,r=exp(y) cos(y)trnbinphi:
h=1,r=eycos4 e4cosytrnbindi:
h=1,r=cosx exvtrnbintrn:
h=1,r=e4cosx excos4Bm pchutvo iconPDEvchnphngtrnhdngparabolicv cc thng s theo (vd2.1): c = 1e4, a = 0, f = 0, d = 1. Trong menuSolve|ParameterstaghiTime:0:100:5000,u(t0)=0(iukin u).Bm pchutvoicon tolivsau tinhchnhn.Bm pchutvoicon= giiphngtrnh.
7/27/2019 Chuong 9 - Gio trnh Matlab, BK Nng
35/35
VomenuPlot|Parameters chncchv vsau v raktqu
c.Vd 3:Giiphngtrnhhyperbolic:
+ =
2 2 2
2 2 2
u(x, y, t) u(x, y, t) u(x, y, t)1
4 x y t
(vd3.1)
trongmin0x2,0y2v0t2 vicc iukinbinzerov iukin u:u(0,y,t)=0 u(2,y,t)=0 u(x,0,t)=0 u(0,2,t)=0 (vd3.2)u(x,y,0)=0.1sin(x)sin(y/2) u/t(x,y,0)=0vit=0 (vd3.3)giiphngtrnhtatheoccbcsau:
M cngc PDETOOL.VomenuOption|AxesLimithiuchnhli phm vi gi tr ca x v y l [0 2] ri chnApply vClose. Chn
Option|AxesEqualBmvoicon v hnhvung.Khiv xong,nucha ngkchthctabm pvo itngbygi ctnlR1 hiuchnhlithnhLeft:0,Bottom:0,Height:2,Width:2.Bmvoiconth ngbinca itngcmu .Trnmionbintacho iukinbintheo(vd3.2). ghi iukinbinchoonnotabm pchutln on . iukinbin chol iukinbinDirrichlet.Trnbintri,taghi iukinbin:
h=1,r=0trnbinphi:
h=1,r=0trnbindi:
h=1,r=0vtrnbintrn:
h=1,r=0Bm pchutvo iconPDEvchnphngtrnhdngparabolicvccthngstheo(vd2.1):c=1/4,a=0,f=0,d=1.TrongmenuSolve|ParameterstaghiTime:0:0.1:2,u(t0)=0.1*sin(pi*x).*sin(pi*y/2).Bm pchutvoicon tolivsau tinhchnhn.Bm pchutvoicon= giiphngtrnh.VomenuPlot|Parameters chncchv vsau v raktqu