Chuong 9 - Giáo trình Matlab, BK Đà Nẵng

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