Bài 6. Cho khoảng chia theo là , khoảng chia theo là . Viết chương trình Mathlab tính gần đúng và so sánh với nghiệm chính xác của các bài toán sau, trong đó đạo hàm cấp 1 theo biến thời gian được xấp xỉ bằng công thức sai phân trung tâm
Bài Cho khoảng chia theo x M 20 , khoảng chia theo t N 40 Viết chương trình Mathlab tính gần u( x ,1) so sánh với nghiệm xác tốn sau, đạo hàm cấp theo biến thời gian t xấp xỉ công thức sai phân trung tâm b) utt uxx sin(2 x )sin(2 t ),0 x 1, t u(0, t ) 0, t 0, u(1, t ) 0, t 0, u( x,0) 0,0 x 1 ut ( x ,0) 0,0 x 1 f x , t sin(2 x )sin(2 t ) Đặt 0,1 · Cho T Chia đoạn thành M đoạn M điểm chia x i i 1 h, i 1, , M , với h M 0,T · Chia đoạn thành N đoạn N điểm chia t j j 1 k , j 1, , N ui , j u xi , t j · Gọi , với k T N giá trị gần nghiệm điểm nút x , t i j i 1, , M 1; j 1, , N Từ u( x,0) 0,0 x 1 , ta có ui ,1 u( xi , t1 ) 0, i 1, , M u(0, t ) u 1, t 0,0 t T ,ta có Từ u1, j u(0, t j ) 0, j 2, , N 1, uM 1 , j u(1, t j ) 0, j 2, , N Từ utt uxx f ( xi , t j ), x 1, t T để xấp xỉ đạo (x ,t ) hàm cấp theo biến x t điểm nút i j , ta dùng công thức sai phân trung tâm uxx xi , t j utt x j , t j u xi , t j 2u xi , t j u xi 1 , t j u xi , t j h 2u xi , t j u xi , t j 1 k2 u i 1, j 2ui , j ui 1, j h2 u i, j 2ui , j ui , j 1 k2 Ta có: ui , j 1 ui 1, j ui , j ui 1, j k f xi , t j , i 2, , M ; j 2, , N (1) Với Từ k h2 u x ,0 0,0 x 1 , ta có ui ,1 u xi ,0 0, i 1, , M Từ ut x ,0 0,0 x 1 ut xi , t1 , ta sử dụng công thức sai phân trung tâm cho đạo hàm cấp u xi , t2 u xi , t0 2k Ta ui ,0 ui ,2 , i 1, , M Từ (1), với j 1 , ta có ui ,2 ui ,0 2k , i 1, , M (2) ui ,2 ui 1,1 ui ,1 ui 1,1 ui ,0 k f xi , t j (3) Thay (2) (3), ta ui ,2 ui 1,1 ui ,1 ui 1,1 k f xi , t j , i 2, , M 2 Như ta viết lại toán dạng sai phân hữu hạn ui , j 1 ui 1, j ui , j ui 1, j ui , j 1k f xi , t j , i 2, , M ; j 2, , N 1 I u1, j 0, j 2, , N 1 II uM 1, j 0, j 2, , N 1 III ui ,1 xi , i 1, , M 1 IV ui ,2 ui 1,1 ui ,1 ui 1,1 k f xi , t j , i 2, , M V 2 Tìm nghiệm xác ucx (x,t) Xét utt uxx ,0 x 1, t 0, u 0, t u 1, t 0 Tìm nghiệm dạng: u x , t X x T t 0 , Ta có utt X x T '' t uxx X '' x T t utt uxx Thay vào , ta T '' t X x X '' x T t , X '' x X x T '' t T t Do đó, ta có X '' x X x 0 T '' t T t 0 u 0, t 0 u 1, t 0 Từ Ta được: X X 1 0 X T t 0 X 1 T t 0 , Xét toán X '' x X x 0 X X 1 0 Áp dụng bảng 8.1, ta có: n n2 X n x sin n x , n 1,2,3, Tìm nghiệm tốn ban đầu dạng u x , t Tn t sin n x , n 1 Ta có ut x , t Tn' t sin n x n 1 utt x , t Tn" t sin n x n 1 uxx x , t n 2 2Tn t sin n x n 1 Thay vào utt uxx sin 2 x sin 2 t , ta có T t sin n x n T t sin n x sin 2 x sin 2 t n 1 " n n 1 n 1 n 1 n Tn" t sin n x n2 2Tn t sin n x sin 2 x sin 2 t " n 2 T t n T t sin n x sin 2 x sin 2 t sin f x , t sin 2 x sin 2 t Khai triển Fourier theo biến x n 1 n sin 2 x sin 2 t fn t sin n x n 1 , với f2 t sin 2 t , n 2 fn t 0, n 2 u x ,0 0 Mà ut x ,0 0 Tn 0, n 1,2,3, ' T 0, Ta n Khi đó, Với n 2 , f2 t sin 2 t , ta giải toán T2" t 4 2T2 t sin 2 t ' T2 T2 0 " Xét phương trình T2 t 4 T2 t 0 Ta có phương trình đặc trưng y 4 0 k 2 i Vậy phương trình vừa xét có nghiệm tổng quát T20 t C1 cos 2 t C2 sin 2 t Với C1 , C2 số tuỳ ý Sử dụng phương pháp hệ số bất định Ta tìm nghiệm đặc biệt phương trình khơng T2'' (t ) 4 2T2 (t ) sin 2 t 0,1 , ta có sin 2 t e 0t 0.cos 2 t sin 2 t Với với 0, 2 Nên i 2 i , nghiệm đặc biệt phương trình có dạng T2p (t ) t A cos(2 t ) B sin(2 t ) Tìm A B Ta có: T2p '' (t ) 4 A sin(2 t ) 4 B cos(2 t ) 4 2t A cos(2 t ) B sin(2 t ) p '' p '' Thay T2 (t ) T2 (t ) vào T2 (t ) 4 T2 (t ) sin 2 t , ta 4 A sin(2 t ) 4 B cos(2 t ) sin(2 t ) Đồng hệ số tương ứng, ta được: A 4 B 0 t T2p (t ) cos(2 t ) 4 Suy 4 A 1 4 B 0 '' Vậy nghiệm tổng quảt phương trình T2 (t ) 4 T2 (t ) sin 2 t T2 (t ) T20 (t ) T2p (t ) C1 cos(2 t ) C2 sin(2 t ) t cos(2 t ) 4 Tìm C1 , C2 Từ T2 (0) 0 ' T2 (0) 0 T2 (t ) C1 0 C2 8 t sin(2 t ) cos(2 t ) 8 4 Suy Vậy nghiệm toán ban đầu u ( x, t ) Tn (t ) sin(n x ) n 1 t sin(2 t ) cos(2 t ) (sin 2 x) sin( n x) 4 8 n 1 n 2 t sin(2 t ) cos(2 t ) (sin 2 x) 4 8 Viết chương trình Mathlab %Tạo file f.m function a=f(x,t) a=sin(2*pi*x)*sin(2*pi*t); %Tao ham p.m function a=p(t) a=0; %Tao file q.m function a=q(t) a=0; %Tao file phi6b.m function a=phi(x) a=0; %Tao file psi6b.m function a=psi(x) a=0; %Tao file ucx.m function a=ucx(x,t) a=(((1/(8*(pi^2)))*sin(2*pi*t)-(t/(4*pi))*cos(2*pi*t))*sin(2*pi*x)); %Tao file bt6b.m clc clear all M=20; N=40; h=1/M; k=1/N; c=1; lamda=(c*c*k*k)/(h*h); %Tao cac diem nut X=[0:M]*h; T=[0:N]*k; U=zeros(M+1,N+1); %Tu dieu kien bien for j=2:(N+1) U(1,j)=p(T(j)); U(M+1,j)=q(T(j)); end %Tu dieu kien dau for i=1:(M+1) U(i,1)=phi(X(i)); end for i=2:M U(i,2)=(lamda/2)*U(i-1,1)+(1-lamda)*U(i,1)+(lamda/2)*U(i+1,1)+((k^2)/ 2)*sin(2*pi*X(i))*sin(2*pi*T(1)); end %Tinh gan dung u(x,1) for j=2:(N+1) for i=2:M U(i,j+1)=(lamda)*U(i-1,j)+2*(1-lamda)*U(i,j)+(lamda)*U(i+1,j)-U(i,j- 1)+ (k^2)*sin(2*pi*X(i))*sin(2*pi*T(j)); end end %Tao ma tran tam V V=zeros(M+1,1); for i=1:(M+1) V(i)=U(i,N+1); end %Xuat cac gia tri gan dung u(x,1) V %Xuat cac gia tri cua nghiem chinh xac ucx(x,1) Ucx=zeros(M+1,1); for i=1:(M+1) Ucx(i)=ucx(X(i),1); end Ucx L=abs(V-Ucx) %Ve V, Ucx plot(X,V,'b',X,Ucx,'r'); xlabel('x');