Tải bản đầy đủ

Tài liệu CHƯƠNG 9: PHƯƠNG TRÌNH VI PHÂN ĐẠO HÀM RIÊNG ppt


403
CHƯƠNG 9: PHƯƠNG TRÌNH VI PHÂN ĐẠO HÀM RIÊNG

§1.KHÁINIỆMCHUNG
 Phươngtrìnhviphânđạohàmriêng(PDE)làmộtlớpcácphươngtrình
viphâncósốbiếnđộclậplớnhơn1.Trongchươngnàytasẽkhảosátcác
phươngtrìnhvi
phânđạohàm riêng cấp 2 với hai biếnđộc lập x vày,có
dạngtổngquát:

⎛⎞
∂∂∂ ∂∂
++=
⎜⎟
∂∂∂∂ ∂∂
⎝⎠
222
22
uuu uu
A(x, y) B(x,y) C(x, y) f x, y, u, ,

xxyy xy
 (1)
vớix
o≤x≤xf,yo≤y≤yfvàcácđiềukiệnbiên:

=
oyo
u(x,y ) b (x)
=
fyf
u(x,y ) b (x)

=
oxo
u( x ,y) b (y)
=
fxf
u( x ,y) b (y) (2)
CácPDEđượcphânthành3loại:
 PDEelliptic:
−<
2
B4AC0

 PDEparabolic:
−=
2
B4AC0

 PDEhyperbolic:
−>
2
B4AC0

Cácphươngtrìnhnàygắnmộtcáchtươngứngvớitrạngtháicânbằng,trạng
tháitruyềnnhiệt,hệthốngdaođộng

§2.PHƯƠNGTRÌNHELLIPTIC
 TaxétphươngtrìnhHelmholz:


∂∂
∇+= + + =
∂∂
22
2
22
u( x ,y) u( x ,y)
u( x ,y) g(x ,y) g( x ,y)u(x ,y) f( x ,y)
xy
 (1)
trênmiền
{
}
=≤≤≤≤
ofo f
D(x,y):xxx,yyyvớiđiềukiệnbiêndạng:
==
==
oyo fyf
oxo fxf
u(x, y ) b (x) u(x, y ) b (x)
u( x ,y) b ( y) u( x ,y) b ( y)
(2)
Phươngtrình(1)đượcgọilàphươngtrìnhPoissonnếug(x,y)=0vàgọilà
phươngtrìnhLaplacenếug(x,y)=0vàf(x,y)=0.Đểdùngphươngphápsai
phântachiamiềnthành
Mxđoạn,mỗiđoạndài∆x=(xf‐xo)/Mxdọctheotrục
xvàthànhM
yđoạn,mỗiđoạndài∆y=(yf‐yo)/Mydọctheotrụcyvàthayđạo
hàmbậc2bằngxấpxỉ3điểm:

+−
−+


∂∆
ji
2
i,j 1 i,j i,j 1
22
x,y
u2uu
u(x,y)
xx
vớix
j=xo+j∆x,yj=yo+j∆y (3.a)

404
+−
−+


∂∆
ji
2
i1,j i,j i1,j
22
x,y
u2uu
u(x,y)
yx
vớiu
i,j=u(xj,yi)  (3.b)
Nhưvậytạimỗiđiểmbêntrong(x
j,xi)với1≤i≤My‐1và1≤j≤Mx‐ậitnhận
đượcphươngtrìnhsaiphân:

+−+−
−+ −+
+==
∆∆
i,j 1 i,j i,j 1 i 1,j i,j i 1,j
i,j i,j i,j
22
u2uu u2uu
gu f
xy
  (4)
Trongđó:
 u
i,j=u(xj,yi) fi,j=f(xj,yi) gi,j=g(xj,yi)
Cácphươngtrìnhnàysắpxếplạitheocáchnàođóthànhhệphươngtrìnhvới
(M
y‐1)(Mx‐1)biến
{
}
−−−−−
xxyyx
1,1 1,2 1,M 1 2 ,1 2 ,M 1 M 1,2 M 1,M 1
u ,u , ,u ,u , ,u , ,u , ,u .Để
dễdàngtaviếtlạiphươngtrìnhvàđiềukiệnbiêndướidạng:

+− +−
=++++ −
i,j y i,j 1 i,j 1 x i 1,j i 1,j xy i,j i,j i,j
ur(u u)r(u u)r(guf)  (5a)
====
xy
i,o xo i i,M xf i o,j yo j M ,j yf j
ub(y)u b(y)ub(x)u b(x)
  (5b)
Trongđó:


=
∆+∆
2
y
22
y
r
2( x y )


=
∆+∆
2
x
22
x
r
2( x y )

∆∆
=
∆+∆
22
xy
22
xy
r
2( x y )
 (6)
Bâygiờtakhảosáttiếpcácdạngđiềukiênbiên.CácbàitoánPDEcó2loại
điềukiệnbiên:điềukiênbiênNeumannvàđiềukiênbiênDirichlet.Điềukiện
biênNeumannmôtả
bằng:

=


=

o
o
x
xx
u(x,y)
b
(y)
x
(7)
Thayđạohàmbậc1ởbiêntrái(x=x
o)bằngxấpxỉ3điểm:




=

o
i,1 i, 1
xi
uu
b
(y )
2x




−∆
o
i, 1 i,1 x i
uu2b(y)xi=1,2, ,My‐1 (8)
Thaythếràngbuộcnàyvào(5a)ởcácđiểmbiêntacó:

−+−
=++ ++ −
i,0 y i,1 i, 1 x i 1,0 i 1,0 xy i,0 i,0 i,0
ur(uu)r(u u)r(guf)
 
+−

⎡⎤
=+− ∆+ ++ −
⎣⎦
0
y i,1 i,1 x i x i 1,0 i 1,0 xy i,0 i,0 i,0
ru u 2b(y)x r(u u )r(gu f)
 
+−



=+ ++ −− ∆


0
y i ,1 x i 1,0 i 1,0 xy i,0 i ,0 i ,0 x i
2r u r ( u u ) r g u f 2 b (y ) x  (9)
Nếuđiềukiênbiêntrênbiêndưới(y=y
o)cũnglàkiểuNeumanntasẽviếtcác
phươngtrìnhtươngtựvớij=1,2, ,M
x‐1:

+−



=+ ++ −− ∆


0
0,j x 1,j y 0,j 1 0,j 1 xy 0,j 0,j 0,j y j
u2rur(u u)rguf2b(x)y (10)
vàbổsungchogócdướitrái(x
o,yo):

405





=++ −− +


∆∆


0
0
y0
x0
0,0 y 0,1 x 1,0 xy 0,0 0,0 0,0
b
(x )
b
(y )
u2(ruru)rguf2 2
xy
 (11)
ĐiềukiệnbiênDirichletchogiátrịhàmtrênbiênnêncóthểthaytrựctiếpvào
phươngtrình.Tacóthểl ấygiátrịtrungbìnhcủacácgiátrịbiênlàmgiátrị
đầucủau
i,j.Taxâydựnghàmpoisson()đểthựchiệnthuậttoánnày:

function[u,x,y]=poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,maxiter)
%giaia(u_xx+u_yy+g(x,y)u=f(x,y)
%trenmienD=[x0,xf,y0,yf]={(x,y)|x0<=x<=xf,y0<=y<=yf}
%voidieukienbien:

%u(x0,y)=bx0(y),u(xf,y)=bxf(y)
%u(x,y0)=by0(x),u(x,yf)=byf(x)
%Mx‐sodoancontrentrucx
%My‐sodoancontrentrucy
%tol:saisochophep
%maxiter:solanlap
x0=D(1);
xf=D(2);
y0=
D(3);
yf=D(4);
dx=(xf‐x0)/Mx;
x=x0+[0:Mx]*dx;
dy=(yf‐y0)/My;
y=y0+[0:My]ʹ*dy;
Mx1=Mx+1;
My1=My+1;
%dieukienbien
form=1:My1
u(m,[1Mx1])=[bx0(y(m))bxf(y(m))];
end
forn=
1:Mx1
u([1My1],n)=[by0(x(n));byf(x(n))];
end
sumbv=sum(sum([u(2:My,[1Mx1])u([1My1],2:Mx)ʹ]));
u(2:My,2:Mx)=sumbv/(2*(Mx+My‐2));
fori=1:My

406
forj=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;
foritr=1:maxiter
forj=2:Mx
fori=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
ifitr>1&max(max(abs(u‐u0)))<tol
break;
end
u0=u;
end


TagiảiphươngtrìnhLaplace:

∂∂
∇= + =
∂∂
22
2
22
u(x, y) u(x, y)
u(x,y) 0
xy
(vd1)
trongmiền0≤x≤4,0≤y≤4vớiđiềukiệnbiên:

=− = −
y
x4
u(0,y) e cosy u(4,y) e cos4 e cosy
(vd2)
 ==
x4x
u(x,0) cosx‐eu(x,4)ecosx‐ecos4(vd3)
Tamuốnnhậnđượcu(x,y),môtảphânbốnhiệtđộtrênmộttấmvuôngmỗi
cạnhdài4đơnvị.Tadùngchươngtrình
ctpoisson.mgọihàmpoisson()để
giảibàitoánnày.

clearall,clc

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=[x0xfy0yf];
maxiter=500;
tol=1e‐4;
[U,x,y]=poisson(f,g,bx0,bxf,by0,byf,D,Mx,My,tol,maxiter);
clf
mesh(x,y,U)
axis([0404‐100100])


§3.PHƯƠNGTRÌNHPARABOLIC
1. Dạng phương trình
: Một phương trình vi phânđạo hàm riêng dạng
paraboliclàphươngtrìnhmôtảsựphânbốnhiệtđộởđiểmxtạithờiđiểmt
củamộtthanh:

∂∂
=
∂∂
2
2
u(x,t) u(x,t)
A
xt
(1)
Đểphươngtrình cóthểgiảiđượctaphảichođiềukiệnbiênu(0, t)=b
0(t),
=
f
fx
u(x , t) b (t)vàđiềukiệnđầuu(x,0)=i0(x)
2.PhươngphápEulertiếntườngminh:Đểápdụngphươngphápsaiphân
hữu hạn, ta chia miên không gian [0, x
f] thành Mđoạn, mỗiđoạn dài
∆=
f
xx/MvàchiathờigianTthànhNphần,mỗiphầnlà∆t=T/N.Sauđóta
thayđạohàmbậc2ởvếtráivàđạohàmbậcởvếph ảicủa(1)bằngcácxấpxỉ
3điểm
vànhạnđược:

+
+−
−+ −
=
∆∆
kkkk1k
i1 i i1 i i
2
u2uu u u
A
xt
(2)

408
Côngthứcnàycóthểgóigọnvàothuậttoánsau,gọilàthuậttoánEulẻtiến
tườngminh:

+
+−

=++− =

k1 k k k
ii1i1 i
2
t
ur(uu)(12r)urA
x
(3)
 i=1,2, ,M‐1
Đểtìmđiềukiệnổnđịnhcủathuâttoán,tathaynghiệmthử:

π

j
i
kk
P
i
ue(4)
vớiPlàsốnguyênkháczerovàophươngtrình(3)vàcó:

ππ

π




λ= + + − = − −








j
j
PP
re e (1 2r) 1 2r1 cos
P
(5)
Dotaphảicó|λ|≤1vớibàitoánkhôngcónguồnnênđiềukiệnổnđịnhlà:


=≤

2
t1
rA
x2
(6)
Taxâydựnghàm
fwdeuler()đểthựchiệnthuậttoántrên

function[u,x,t]=fwdeuler(a,xf,T,it0,bx0,bxf,M,N)
%giaiau_xx=u_tvoi0<=x<=xf,0<=t<=T
%dieukiendau:u(x,0)=it0(x)
ieukienbien:u(0,t)=bx0(t),u(xf,t)=bxf(t)
%M‐sodoancontheox

%N‐sodiemtheot
dx=xf/M;
x=[0:M]ʹ*dx;
dt=T/N;
t=[0:N]*dt;
fori=1:M+1
u(i,1)=it0(x(i));
end
forn=1:N+1
u([1M+1],n)=[bx0(t(n));bxf(t(n))];
end
r=a*dt/dx/dx
r1=
1‐2*r;
fork=1:N
fori=2:M
u(i,k+1)=r*(u(i+1,k)+u(i‐1,k))+r1*u(i,k);%Pt.(3)

409
end
end

3.PhươngphápEulerlùiẩn:Takhảosátmộtthuậttoánkhácgọilàthuật
toánEulerlùi,ẩnsinhradothaythếlùixấpxỉđạohàmđốivớiđạohàmbậc
1trênvếphảicủa(1):

+−
−+ −
=
∆∆
kkkkk1
i1 i i1 i i
2
u2uu uu
A
xt
(7)


−+

−++ − = =

kkkk1
i1 i i1 i
2
t
ru (1 2r)u ru u r A
x
(8)
Nếucácgiátrị
k
0
u và
k
M
u ởcảhaiđầuđãchotrướctừđiềukiệnbiênkiểu
Dirichletnênphươngtrình(8)đưatớihệphươngtrình:





−−

−−

⎤⎡ ⎤
+
⎡⎤
+−

⎥⎢ ⎥
⎢⎥
−+−

⎥⎢ ⎥
⎢⎥

⎥⎢ ⎥
⎢⎥
−+−

⎥⎢ ⎥
⎢⎥
=

⎥⎢ ⎥
⎢⎥

⎥⎢ ⎥
⎢⎥
+−

⎥⎢ ⎥
⎢⎥

⎥⎢ ⎥
⎢⎥
−+
+
⎣⎦

⎦⎣ ⎦
MMMMMM
MM
L
L
kk1k
110
kk1
22
kk1
33
kk1
M2 M2
kk1k
M1 M1 M
uuru
12rr0000
uu
r12r r 0 0 0
0r12rr00
uu
000 12rr
uu
000 r12r
uuru
(9)
ĐiềukiệnbiênNeumann
=


=

0
x0
u
b
(t)
x
đượcđưavàophươngtrìnhbằngcách
xấpxỉ:




=

kk
11
0
uu
b
(k)
2x
(10)
vàghépnóvớiphươngtrìnhcóẩn
k
0
u:



−++ −=
kkkk1
1010
ru (1 2r)u ru u (11)
đểcóđượcphươngtrình:



+−=− ∆
kkk1
010 0
(1 2r)u 2ru u 2rb (k) x (12)
Kếtquảtacóđượchệphươngtrình:

410









+−


−∆
⎡⎤



⎢⎥

−+−


⎢⎥



⎢⎥

−+−


⎢⎥

−+
=


⎢⎥



⎢⎥




⎢⎥

+−


⎢⎥



⎢⎥

−+
+

⎣⎦


L
L
L
L
MMMMM
MM
L
L
kk
000
kk1
11
kk1
22
kk1
33
kk1
0M2
kk1k
0M1M
12r r 0 0 0 0
uu2rb(k)x
r12r r 0 0 0
uu
0r12rr 00
uu
00 r12r 00
uu
r0
0000 12rr
uu
0000 r12r
uuru











(13
Điểukiệnổnđịnhcủanghiệmlà:

ππ

−++−=
λ
jj
PP
1
re (1 2r) re 
hay:
λ=
π
⎡⎤
+−
⎢⎥
⎣⎦
1
12r1cos
P

λ
≤ 1(14)
Taxâydựnghàm
backeuler()đểthựchiệnthuậttoánnày:

function[u,x,t]=backeuler(a,xf,T,it0,bx0,bxf,M,N)
%Giaiau_xx=u_tvoi0<=x<=xf,0<=t<=T
%Dieukiendau:u(x,0)=it0(x)
%ieukienbien:u(0,t)=bx0(t),u(xf,t)=bxf(t)
%M‐sokhoangcontren
trucx
%N‐sokhoangtheot
dx=xf/M;
x=[0:M]ʹ*dx;
dt=T/N;
t=[0:N]*dt;
fori=1:M+1
u(i,1)=it0(x(i));
end
forn=1:N+1
u([1M+1],n)=[bx0(t(n));bxf(t(n))];
end
r=
a*dt/dx/dx;
r2=1+2*r;
fori=1:M‐1

411
A(i,i)=r2;%Pt.(9)
ifi>1
A(i‐1,i)=‐r;
A(i,i‐1)=‐r;end
end
fork=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.PhươngphápCrank‐Nicholson:Trong(7),xấpxỉđạohàmởvếtráilấyở
thờiđiểmk,trongkhixấpxỉđạohàmởvếphải.Đểcảithiện,talấyđạohàm
ởvếtráilàtrongbìnhcủaxấpxỉđạohàmtại
haiđiểmlàkvàk+1vàcó:
+++ +
+−+−
⎛⎞
−+ −+ −
+=
⎜⎟
∆∆∆
⎝⎠
k1 k1 k1 k k k k1 k
i1 i i1 i1 i i1 i i
22
A u 2u u u 2u u u u
2x x t
  (15)
vànhậnđượcphươngphápCrank‐Nicholson:

+++
+−+−

−++ − =+− + =

k1 k1 k1 k k k
i1 i i1 i1 i i1
2
t
ru (1 2r)u ru ru (1 2r)u ru r A
x
 (16)
VớiđiềukiệnbiênDirichlettạix
0vàđi ềukiệnbiênNeumanntạixMtacóhệ
phươngtrình:

+
+
+
+

+
⎡⎤
⎡⎤
+−
⎢⎥
⎢⎥
−+−
⎢⎥
⎢⎥
⎢⎥
⎢⎥
−+−
⎢⎥
⎢⎥
⎢⎥
⎢⎥
⎢⎥
⎢⎥
+−
⎢⎥
⎢⎥
⎢⎥
⎢⎥
−+
⎣⎦
⎣⎦
MMMMMM
M
L
L
k1
1
k1
2
k1
3
k1
M1
k1
M
u
2(1r)r0000
u
r2(1r) r 0 0 0
0r2(1r)r00
u
000 2(1r)r
u
000 r2(1r)
u



⎡⎤
⎡⎤

⎢⎥
⎢⎥

⎢⎥
⎢⎥
⎢⎥
⎢⎥

⎢⎥
⎢⎥
=
⎢⎥
⎢⎥
⎢⎥
⎢⎥

⎢⎥
⎢⎥
⎢⎥
⎢⎥

⎣⎦
⎣⎦
MMMMMM
M
L
L
k
1
k
2
k
3
k
M1
k
M
u
2(1r)r0000
u
r2(1r)r000
0r2(1r)r00
u
000 2(1r)r
u
000 r2(1r)
u


412

[]
+
⎡⎤
+
⎢⎥
⎢⎥
⎢⎥
⎢⎥
+
⎢⎥
⎢⎥
⎢⎥
′′
⎢⎥
++
⎣⎦
M
k1 k
00
MM
r(u u )
0
0
0
2r b ( k 1) b (k)
(17)
Điềukiệnổnđịnhđượcxácđịnhbằng:

ππ
⎡⎤⎡⎤
⎛⎞ ⎛⎞
λ+ − = − −
⎜⎟ ⎜⎟
⎢⎥⎢⎥
⎝⎠ ⎝⎠
⎣⎦⎣⎦
2 1r1cos 21r1cos
PP

hay:
π
⎡⎤
−−
⎢⎥
⎣⎦
λ= λ≤
π
⎡⎤
+−
⎢⎥
⎣⎦
1r1cos
P
1
1r1cos
P
(18)
Taxâydựnghàm
cranknicholson()đểthựchiệnthuậttoántrên:

function[u,x,t]=cranknicholson(a,xf,T,it0,bx0,bxf,M,N)
%Giaiau_xx=u_tvoi0<=x<=xf,0<=t<=T
%Dieukiendau:u(x,0)=it0(x)
%Dieukienbien:u(0,t)=bx0(t),u(xf,t)=bxf(t)
%M‐sokhoang
contrentrucx
%N‐sokhoangtheot
dx=xf/M;
x=[0:M]ʹ*dx;
dt=T/N;
t=[0:N]*dt;
fori=1:M+1
u(i,1)=it0(x(i));
end
forn=1:N+1
u([1M+1],n)=[bx0(t(n));bxf(t(n))];
end
r=a*dt/dx/dx;
r1=2*(1‐r);
r2=2*(1+r);
fori=1:M‐1

413
A(i,i)=r2;%Pt.(17)
ifi>1
A(i‐1,i)=‐r;
A(i,i‐1)=‐r;
end
end
fork=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


Đểgiảiphươngtrình:

∂∂
=≤≤≤≤
∂∂
2
2
u(x,t) u(x,t)
0x1,0t0.1
xt
(vd1)
vớiđiềukiệnđầu:
 u(x,0)=sinπx u(0,t)=0 u(1,t)=0(vd2)
Nhưvậyvới∆x=x
f/M=1/20và∆t=T/N=1/100tacó:


== =

22
t 0.001
rA 1. 0.4
x0.05
(vd3)
Tadùngchươngtrình
ctheat.mđểtìmnghiệmcủa(vd1):

clearall,clc
a=1;%cacthongsocua(vd1)
it0=inline(ʹsin(pi*x)ʹ,ʹxʹ);%dieukiendau
bx0=inline(ʹ0ʹ);
bxf=inline(ʹ0ʹ);%dieukienbien
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);

414
figure(3),clf,mesh(t,x,u3)

4.PDEparabolic2chiều:Taxétbàitoánphươngtrìnhviphânđạohàmriêng
parabolichaichiềumôtảsựphânbốnhiệtđộu(x,y,t):

⎡⎤
∂∂ ∂
+=
⎢⎥
∂∂ ∂
⎣⎦
22
22
u(x, y, t) u(x, y, t) u(x, y, t)
A
xy t
(19)
Đểphươngtrìnhcóthểgiảiđượctacầnchođiềukiệnbiên:
 =
0
0x
u(x , y,t) b (y,t)
=
f
fx
u(x ,y,t) b (y,t)
 =
0
0y
u(x, y , t) b (x, t)
=
f
fy
u(x, y , t) b (x, t)
vàđiềukiệnđầuu(x,y,0)=i
0(x,y)
Tathayđạohàmbậc1theotởvếphảibằngsaiphân3điểmtạiđiểmgiữa
(t
k+1+tk)/2nhưphươngphápCrank‐Nicholson.Tacũngthaythếmộttrong
cácđạohàmbậchaiu
xxvàuyybằngxấpxỉ3điểmtạithờiđiểmtkvàđạohàm
kiatạit
k+1vàcó:

+
+−+−
⎛⎞
−+ −+ −
−=
⎜⎟
⎜⎟
∆∆∆
⎝⎠
kkkkkk k1k
i,j 1 i,j i,j 1 i,j 1 i,j i,j 1 i,j i,j
22
u2uu u2uu uu
A
xxt
  (20)
Taviếtphươngtrìnhtạithờiđiểmtiếptheot
k+1:

+++ ++
+−+−
⎛⎞
−+ −+ −
−=
⎜⎟
⎜⎟
∆∆∆
⎝⎠
k1 k1 k1 k k k k2 k1
i ,j 1 i ,j i ,j 1 i ,j 1 i ,j i,j 1 i ,j i ,j
22
u2uu u2uu uu
A
xxt
 (21)
Côngthứcnày,đượcPeacemanvàRachfordđưara,làphươngphápẩnvà
tạonênhệphươngtrình:

(
)
(
)
++ +
−+ −+
− + ++ = − +−
k1 k1 k1 k k k
y i 1,j i 1,j y i , j x i , j 1 i ,j 1 x i , j
ru u (1 2r)u ru u (1 2r)u (22a)
với0≤j≤M
x‐1

(
)
(
)
++ + ++ +
−+ −+
− + ++ = − +−
k2 k2 k2 k1 k1 k1
x i ,j 1 i, j 1 x i ,j y i 1,j i 1,j y i ,j
ru u (1 2r)u ru u (1 2r)u  (22b)
với0≤i≤M
y‐1
và:

=

x
2
t
rA
x


=

y
2
t
rA
y




f0
x
xx
x=
M



f0
y
yy
y=
M


=
T
t
N

Taxâydựnghàm
heat2D()đểthựchiệnthuậttoánnày:

function[u,x,y,t]=heat2D(a,D,T,ixy0,bxyt,Mx,My,N)
%Giaiau _t =c(u_xx+u_yy)voiD(1)<=x<=D(2),D(3)<=y<=D(4),0<=t
%<=T

415
%Dieukiendau:u(x,y,0)=ixy0(x,y)
%Dieukienbien:u(x,y,t)=bxyt(x,y,t)voi(x,y)cB
%Mx/My‐cacdoancodoctheotrucx/y
%N‐cackhoangthoigian
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;
%Khoigan
forj=1:Mx+1
fori=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;
forj=1:Mx‐1%Pt.(22a)
Ay(j,j)=ry1;
ifj>1
Ay(j‐1,j)=‐ry;
Ay(j,j‐1)=‐ry;
end
end
fori=1:My‐1%Pt.(22b)
Ax(i,i)=rx1;
ifi>
1
Ax(i‐1,i)=‐rx;
Ax(i,i‐1)=‐rx;
end
end

416
fork=1:N
u_1=u;
t=k*dt;
fori=1:My+1%Dieukienbien
u(i,1)=feval(bxyt,x(1),y(i),t);
u(i,Mx+1)=feval(bxyt,x(Mx+1),y(i),t);
end
forj=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
ifmod(k,2)==0
fori=2:My
jj=2:Mx;
bx=[ry*u(i,1)zeros(1,Mx‐3)ry*u(i,My+1)] 
+rx*(u_1(i‐1,jj)+u_1(i+1,jj))+rx2*u_1(i,jj);
u(i,jj)=trid(Ay,bxʹ
)ʹ;%Pt.(22a)
end
else
forj=2:Mx
ii=2:My;
by=[rx*u(1,j);zeros(My‐3,1);rx*u(Mx+1,j)] 
+ry*(u_1(ii,j‐1)+u_1(ii,j+1))+ry2*u_1(ii,j);
u(ii,j)=trid(Ax,by);%Pt.(22b)
end
end
end


Taxétphươngtrình:


⎡⎤
∂∂ ∂
+=
⎢⎥
∂∂ ∂
⎣⎦
22
4
22
u(x ,y , t) u(x,y , t) u(x ,y , t)
10
xy t
(vd1)
trongmiền:0≤x≤4,0≤y≤4vàtrongkhoảngthơiggian0≤t≤5000
Điềukiệnđầu:
 u(x,y,0)=0(vd2a)
vàđiềukiệnbiên:
e
y
cosx‐e
x
cosytạix=0,x=4;y=0,y=4(vd2b)

417
Chươngtrìnhchươngtrìnhctheat2D.mdùngđểgiảiphươngtrìnhlà:

clear,clc,clf
a=1e‐4;
it0=inline(ʹ0ʹ,ʹxʹ,ʹyʹ);%(vd2a)
bxyt=inline(ʹexp(y)*cos(x)‐exp(x)*cos(y)ʹ,ʹxʹ,ʹyʹ,ʹtʹ);%(vd.2b)
D=[0404];
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.PHƯƠNGTRÌNHHYPERBOLIC
1. Dạng phương trình
: Phương trình truyền sóng một chiều là PDE dạng
hyperbolic:

∂∂
=
∂∂
22
22
u(x,t) u(x,t)
A
xt
(1)
 0≤x≤x
f,0≤t≤T
Điềukiệnbiên:
 u(0,t)=b
0(t), =
f
fx
u(x , t) b (t)
vàđiềubiên:
 u(x,0)=i
0(x),
=


=

0
t0
u
i(x)
t

phảiđượcchotrướcđểphươngtrìnhcóthểgiảiđược
2. Phương pháp sai phân tường minh: Tương tự như khi giải PDE dạng
parabolic,tathayđạohàmbậchaiởhaivếcủa(1)bằngsaiphân3điểm:

+

+−
−+ −+
=
∆∆
kkkk1kk1
i1 i i1 i i i
22
u2uu u 2uu
A
xt
(2)

∆=
f
x
x
M

∆=
T
t
N

vàcóđượcphươngphápsaiphântườngminh:

(
)
+−
+−
=++−−
k1 k k k k1
ii1i1 ii
uruu 2(1r)uu(3)
với:

=

2
2
t
rA
x


418
Vì

=−∆
1
ii
uu(x,t)khôngchotrướcnêntakhôngthểdùngtrựctiếp
1
i
u từ(3)
vớik=0:

(
)

+−
=++−−
100 01
ii1i1 ii
uru u 2(1r)uu(4)
Nhưvậy,taxấpxỉđiềukiệnđầuvềđạohàmbằngsaiphân:




=

11
ii
0i
uu
i(x)
2t
(5)
vàrútra
−1
i
u đểđưavào(3):

(
)
+−



=++−−− ∆


100 01
ii1i1 ii0i
uru u 2(1r)u u2i(x)t


()
+−

=++−+∆
100 0
ii1i1 i0i
1
uruu(1r)ui(x)t
2
(6)
Tadùng(6)cùngvớiđiềukiệnđầuđểcó
1
i
u vàrồithayvào(3).Chúýlà:
 •r≤1đểbảođảmổnđịnh
•độchínhxáccủanghiêmtăngkhirtăngđểcho∆xgiảm
Hợplínhấtlàlấyr=1.Điềukiện
ổnđịnhcóthểnhậnđượcbằngcáchthay(4)
vào(3):
π
λ= + − −
λ
1
2rcos 2(1 r)
P

hay:
π
⎡⎤
⎛⎞
λ+ − − λ+ =
⎜⎟
⎢⎥
⎝⎠
⎣⎦
2
2r1 cos 1 1 0
P

Nhưvậy:


≤=≤


π
⎛⎞

⎜⎟
⎝⎠
2
2
1t
rrA1
x
1cos
P

Taxâydựnghàm
wave()đểthựchiệnthuậttoántrên:

function[u,x,t]=wave(a,xf,T,it0,i1t0,bx0,bxf,M,N)
%giaiau_xx=u_ttvoi0<=x<=xf,0<=t<=T
%dieukiendau:u(x,0)=it0(x),u_t(x,0)=i1t0(x)
%dieukienbien:u(0,t)=bx0(t),u(xf,t)=bxf(t)
%M‐khoangchiatheox
%
N‐khoangchiateot
dx=xf/M;
x=[0:M]ʹ*dx;
dt=T/N;
t=[0:N]*dt;

419
fori=1:M+1
u(i,1)=it0(x(i));
end
fork=1:N+1
u([1M+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)
fork=3:N+1
u(2:M,k)=r*u(1:M‐1,k‐1)+r2*u(2:M,k‐1)+r*u(3:M+1,k‐1) 
‐u(2:M,k‐2);%Pt.(3)
end


Taxétphươngtrình:

∂∂
=
∂∂
22
22
u(x,t) u(x, t)
xt
(vd1)
 0≤x≤2,0≤t≤2
Điềukiệnđầuvàđiềukiệnbiên:
 u(x,0)=x(1‐x) 
=

=

t0
u
0
t
(vd2a)
=u(0,t) 0 u(1,t)=0(vd2b)
Tadùngchươngtrình
ctwave.mđểgiảiphươngtrìnhnày:

clearall,clc
a=1;
it0=inline(ʹx.*(1‐x)ʹ,ʹxʹ);
i1t0=inline(ʹ0ʹ);%(vd2a)
bx0t=inline(ʹ0ʹ);
bxft=inline(ʹ0ʹ);%(vd2b)
xf=1;
M=20;
T=2;
N=50;

420
[u,x,t]=wave(a,xf,T,it0,i1t0,bx0t,bxft,M,N);
figure(1),clf
mesh(t,x,u)
figure(2),clf
forn=1:N%hinhdong
plot(x,u(:,n)),axis([0xf‐0.30.3]),pause(0.2)
end


4.PDEhyperbolic2chiều:PhươngtrìnhtruyềnsónghaichiềulàPDEdạng
hyperbolic:

⎡⎤
∂∂ ∂
+=
⎢⎥
∂∂ ∂
⎣⎦
22 2
22 2
u(x, y,t) u(x,y,t) u(x, y,t)
A
xy t
(8)
 0≤x≤x
f,0≤y≤yf,0≤t≤T
Điềukiệnbiên:
 =
0
x
u(0, y,t) b (y,t)
=
f
fx
u(x , y, t) b (y,t) 
 =
0
y
u(x,0, t) b (x, t) 
=
f
fy
u(x, y , t) b (x, t)
vàđiềubiên:
 =
0
u(x, y,0) i (x, y) 
=


=

0
t0
u(x,y)
i(x,y)
t

Tươngtựnhưhàmmộtbiến,tathayđạohàmbậc2bằngxấpxỉ3điểm:

+

+−+−
⎛⎞
−+ −+ −+
+=
⎜⎟
⎜⎟
∆∆ ∆
⎝⎠
k kk k kk k1 kk1
i ,j 1 i ,j i ,j 1 i 1,j i ,j i 1,j i ,j i,j i,j
22 2
u 2uu u 2uu u 2uu
A
xy t
 (9)

∆=
f
x
x
x
M

∆=
f
y
y
y
M


=
T
t
N

vànhậnđiđếnphươngpháptườngminh:
(
)
(
)
+ −
+− +−
=++−−++−
k1 k k k k k k1
i,j x i,j 1 i,j 1 x y i,j y i 1,j i 1,j i,j
uru u 2(1rr)uru u u (10)
với:


=

2
x
2
t
rA
x


=

2
y
2
t
rA
y

Vì

=−∆
1
i,j i i
uu(x,y,t)khôngchotrướcnêntakhôngthểdùngtrựctiếp
1
i,j
u từ
(10)vớik=0:

(
)
(
)

+− +−
=++−−++−
100 0001
i,j x i,j 1 i,j 1 x y i,j y i 1,j i 1,j i,j
uru u 2(1rr)uru u u (11)
Nhưvậy,taxấpxỉđiềukiệnđầuvềđạohàmbằngsaiphân:

421




=

11
i,j i,j
0ji
uu
i(x,y)
2t
(12)
vàrútra
−1
i,j
u đểđưavào(11):

()()
+− +−
⎡⎤
=+++
⎣⎦

+−− + ∆
10000
i,j x i,j 1 i,j 1 y i 1,j i 1,j
0
xyi,j0ji
1
uruuruu
2
2(1 r r )u i (x , y ) t
(13)
Điềukiệnổnđịnh:


=≤
∆+∆
2
22
4A t
r1
xy

Taxâydựnghàm
wave2D()đểthựchiệnthuậttoántrên:

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)<=x<=D(2),D(3)<=y<=D(4),0<=t
%<=T
%dieukiendau:u(x,y,0)=it0(x,y),u_t(x,y,0)=i1t0(x,y)
%dieukienbien:u(x,y,t)=
bxyt(x,y,t)voi(x,y)trenbien
%Mx/My‐sokhoangchiatrentrucx/y
%N‐sokhoangchaitheot
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;
%khoigan
u=zeros(My+1,
Mx+1);
ut=zeros(My+1,Mx+1);
forj=2:Mx
fori=2:My
u(i,j)=it0(x(j),y(i));
ut(i,j)=i1t0(x(j),y(i));
end
end
adt2=a*dt*dt;
rx=adt2/(dx*dx);
ry=adt2/(dy*dy);

422
rxy1=1‐rx‐ry;
rxy2=rxy1*2;
u_1=u;
fork=0:N
t=k*dt;
fori=1:My+1%dieukienbien
u(i,[1Mx+1])=[bxyt(x(1),y(i),t)bxyt(x(Mx+1),y(i),t)];
end
forj=1:Mx+1
u([1My
+1],j)=[bxyt(x(j),y(1),t);bxyt(x(j),y(My+1),t)];
end
ifk==0
fori=2:My
forj=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

fori=2:My
forj=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([02
02‐.1.1])
pause(0.1);
end


Taxétphươngtrình:

⎡⎤
∂∂

+=
⎢⎥
∂∂ ∂
⎣⎦
22
2
222
u(x,y,t) u(x,y,t)
1u(x,t)
4x y t
(vd1)
 0≤x≤2,0≤y≤2,0≤t≤2

423
Điềukiệnđầuvàđiềukiệnbiên:
 u(0,y,t)=0u(2,y,t)=0 u(x,0,t)=0u(x,2,t)=0  (vd2)

π
π
=
y
x
u(x,y,0) 0.1sin sin
22

=

=

t0
u
0
t
(vd3)
Tadùngchươngtrình
ctwave2D.mđểgiảiphươngtrìnhnày:

clearall,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=[0202];
T=2;
Mx=40;
My=
40;
N=40;
[u,x,y,t]=wave2D(a,D,T,it0,i1t0,bxyt,Mx,My,N);


§5.PHƯƠNGPHÁPPHẦNTỬHỮUHẠN(FEM)ĐỂGIẢIPDE
 PhươngphápFEMdùngđểtìmnghiệmsốcủaPDEvớiđiềukiệnbiên.
TaxétmộtPDEdạngelliptic:

∂∂
++ =
∂∂
22
22
u(x,y) u(x,y)
g(x ,y)u(x ,y) f( x ,y)
xy
(1)
trongmiềnDbaobởibiênBvàtrênbiêncócácđiềukiện:
 u(x,y)=b(x,y) trênB(2)
CácbướcdùngFEMđểgiảiphươngtrìnhgồm:

)ChiamiềnDthànhNsmiềncon{S1,S2, ,SNs}códạnghìnhtamgiác
)MôtảvịtrícủaNnnútvàđánhsốchúngbắtđầutừcácnúttrênbiên:
n=1,2, ,N
bvàcácnútbêntrong:n=Nb+1,Nb+2, ,Nn
)Xácđịnhcáchàmnộisuy,hìnhdạngvàcơsở:

{
}
φ=φ= ∀∈
nn,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
 chomỗimiềnS
s(3b)

424
đốivớitấtcảccácmiềncons=1:Nsvàcácnútn=1:Nnsa ochoφnbằng1
chỉởnútnvàbằngzerotại cácnútkhác.LúcđónghiệmxấpxỉcủaPDE
làtổhợptuyếntínhcủa các hàmcơsởφ
n(x,y):

[]
[]
=
=ϕ =φ

n
N
T
nn
i1
u( x ,y) c (x ,y) c (x ,y) 

==+
=φ + φ
∑∑
b
n
b
N
N
nn nn
i1 iN 1
c(x,y) c(x,y) 

[][]
[
]
[
]
=ϕ+ϕ
TT
11 22
cc(4)
Trongđó:
[]
⎡⎤
ϕ=φ φ φ
⎣⎦
L
b
T
112 N

[]


=


L
b
T
112 N
ccc c(5a)
[]
++
⎡⎤
ϕ=φ φ φ
⎣⎦
L
bb n
T
2N1N2 N

[]
++


=


L
bb n
T
2N1N2 N
cc c c(5b)
Vớimỗimiềncon,nghiệmnàycóth ểviếtdướidạng:

==
φ=φ = + +




∑∑
nn
NN
s n n,s n n,s n,s n,s
i1 i1
(x,y) c (x,y) c p(1)p(x)p(3)y (6)
)Đặtcácgiátrịcủahệsốnútbiêntrong[c1]bằngcácgiátrịbiêntương
ứngvớiđiềukiệnbiên
)Xácđịnhtrịsốcủahệsốnútbêntrongtrong[c2]bằngcáchgiảihệ
phươngtrình:
 [A
2][c2]=[d](7)
trongđó:

[]
=
⎧⎫
⎛⎞⎛⎞
∂∂ ∂∂
⎪⎪
⎛⎞⎛⎞
=ϕϕ+ϕϕ∆
⎡⎤ ⎡⎤ ⎡⎤ ⎡⎤
⎨⎬
⎜⎟⎜⎟
⎜⎟⎜⎟
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
∂∂ ∂∂
⎝⎠⎝⎠
⎝⎠⎝⎠
⎪⎪
⎩⎭

s
N
T
T
12,s1,s2,s1,ss
s1
AS
xx yy


{}
=
−ϕϕ∆
⎡⎤⎡⎤
⎣⎦⎣⎦

s
N
T
ss 2,s 1,s s
s1
g(x ,y ) S
(8)
⎡⎤
ϕ=φ φ φ
⎡⎤
⎣⎦
⎣⎦
L
b
T
1,s 1,s 2,s N ,s



⎡⎤
ϕ=
⎡⎤
⎣⎦
⎣⎦

L
b
T
1,s 1,s 2,s N ,s
p (2) p (2) p ( 2)
x



⎡⎤
ϕ=
⎡⎤
⎣⎦
⎣⎦

L
b
T
1,s 1,s 2,s N ,s
p (3) p (3) p (3)
y


[]
=
⎧⎫
⎛⎞⎛⎞
∂∂ ∂∂
⎪⎪
⎛⎞⎛⎞
=ϕϕ+ϕϕ∆
⎡⎤ ⎡⎤ ⎡⎤ ⎡⎤
⎨⎬
⎜⎟⎜⎟
⎜⎟⎜⎟
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
∂∂ ∂∂
⎝⎠⎝⎠
⎝⎠⎝⎠
⎪⎪
⎩⎭

s
N
T
T
22,s2,s2,s2,ss
s1
AS
xx yy


425

{}
=
−ϕϕ∆
⎡⎤⎡⎤
⎣⎦⎣⎦

s
N
T
ss 2,s 2,s s
s1
g(x ,y ) S
(9)
++
⎡⎤
ϕ=φ φ φ
⎡⎤
⎣⎦
⎣⎦
L
bb n
T
2,s N 1,s N 2,s N ,s


++

⎡⎤
ϕ=
⎡⎤
⎣⎦
⎣⎦

L
bb n
T
2,s N 1,s N 2,s N ,s
p (2) p ( 2) p ( 2)
x


++

⎡⎤
ϕ=
⎡⎤
⎣⎦
⎣⎦

L
bb n
T
2,s N 1,s N 2,s N ,s
p (3) p ( 3) p (3)
y


[]
[][]
=
=− − ϕ ∆

s
N
11 ss2,s
s1
dAc f(x,y)S(10)
 (x
s,ys)làtrongtâmcủamiềnconSs
FEMdựatrênnguyêntắclànghiệmcủa(1)cóthểnhậnđượcbằngcách
cựctiểuhoáhàm:

⎡⎤
∂∂
⎡⎤
=+

⎢⎥
⎢⎥
∂∂
⎣⎦
⎣⎦

∫∫
2
2
R
J
u( x ,y) u(x,y)
xy
 

}
−+
2
g(x, y)u (x,y) 2f(x, y)u(x, y) dxdy(11)
Vớiu(x,y)=[c]
T
[ϕ(x,y)]tacó:

[] [] [][]
{
[] [] [][]
∂∂ ∂∂
=ϕϕ+ϕϕ
∂∂ ∂∂
∫∫
TTT
R
J
ccc c
xx yy


[][][][] [][]
}
−ϕϕ+ ϕ
TT T
g(x,y) c c 2f(x,y) c dxdy (12)
Điềukiệnđểhàmnàycựctiểutheo[c]là:

[]
[]
[][]
{
[][]
∂∂ ∂
=ϕϕ+ϕ
∂∂ ∂
∫∫
TT
2
2
R
d
J
cc
dc x x y


[]
[][]
[
]
}
−ϕϕ+ ϕ
T
22
g( x ,y) c 2f(x ,y) dxdy=0  (13)

[][][][]
=
≈++ ϕ∆=
⎡⎤
⎣⎦

s
N
11 22 ss 2,s
s1
Ac Ac f(x,y) S0  (14)
Đểxâydựnghàmcơsở
φ
n,s
(x, y)
thứsđốivớimỗinútn=1,2, ,Nnvà 
mỗimiềncons=1,2, ,N
staxâydựnghàmfembasisftn():

functionp=fembasisftn(N,S)
%p(i,s,1:3):cachesocuamoihamcosophi(i)
%cuamientamgiac(miencon)thus
%N(n,1:2):x&ytoadocuanutthun

426
%S(s,1:3):nutthuscuamiencontamgiacthus
Nn=size(N,1);%tongsonut
Ns=size(S,1);%tongsocacnutcuamiencontamgiac
forn=1:Nn
fors=1:Ns
fori=1:3
A(i,1:3)=
[1N(S(s,i),1:2)];
b(i)=(S(s,i)==n);%hamcosothunbang1chionutthun
end
pnt=A\bʹ;
fori=1:3\
p(n,s,i)=pnt(i);
end
end
end


Đểxácđịnhcácvectơhệsố[c]củanghiệm(4)nhờ(7)vàcácđathức
nghiệm φ
s
(x,y)nhờ(6)đốivớimỗimiềncons=1,2, ,Nstaxâydựnghàm
femcoef():

function[U,c]=femcoef(f,g,p,c,N,S,Ni)
%p(i,s,1:3):cachesocuahamcosophi(i)cuamienconthun
%c=[.11.00.]voicacgiatribienva0voicacnutbentrong
%N(n,1:2):x&
ytoajdocuanutthun
%S(s,1:3):nutthuscuamienconthus
%Ni:sonutbentrong
%U(s,1:3):cachesocuap1+p2(s)x+p3(s)ycuamoimiencon
Nn=size(N,1);%tongsonutbangNb+
Ni
Ns=size(S,1);%tongsomiencon
d=zeros(Ni,1);
Nb=Nn‐Ni;
fori=Nb+1:Nn
forn=1:N_n
fors=1:Ns
xy=(N(S(s,1),:)+N(S(s,2),:)+N(S(s,3),:))/3;%trongtam
%phi(i,x)*phi(n,x)+phi(i,y)*phi(n,y)‐g(x,y)*phi(i)*phi(n)

427
pvctr=[p([in],s,1)p([in],s,2)p([in],s,3)];
tmpg(s)=sum(p(i,s,2:3).*p(n,s,2:3)) 
‐g(xy(1),xy(2))*pvctr(1,:)*[1xy]ʹ*pvctr(2,:)*[1xy]ʹ;
dS(s)=det([N(S(s,1),:)1;N(S(s,2),:)1;N(S(s,3),:)1])/2;
%dientichmiencon
ifn
==1
tmpf(s)=‐f(xy(1),xy(2))*pvctr(1,:)*[1xy]ʹ;
end
end
A12(i‐Nb,n)=tmpg*abs(dS)ʹ;%Pt.(8),(9)
end
d(i‐Nb)=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)
fors=1:Ns
forj=
1:3
U(s,j)=c*p(:,s,j);%Pt.(6)
end
end

TrướckhidùngFEMđểgiảimộtPDEtaxemthửhàmcơsở(hàmhìnhdạng)
φ
n(x,y)đốivớimỗinútn=1,2, ,Nnđượcđịnhnghĩađốivớitátcảcácmiền
conhìnhtamgiácsaochoφ
nbằng1chỉtạinútnvàbằng0 tạicácnútkhác
đượctạobởihàm
fembasisfth()hoạtđộngnhưthếnào.Tasẽvẽhàmhình
dạngcủamiềnđượcchiathành4tamgiácnhưhìnhsau:









Toạđộcủanút: Sốnútmỗimiềncon
N=[‐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
1
0
1
0
n=4
n=5
n=3
n=2
n=1
S1
S4
S3
S2

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×