1. Trang chủ
  2. » Thể loại khác

Tài liệu tham khảo - Phan Trung Hiếu GiaiVD4_1

5 65 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 130 KB

Nội dung

Ví dụ 4.1 Xét tốn sau ut − uxx = (1+ 4π 2)et sin(2π x), < x < 1, t > 0,  t ≥ 0, u(0,t) = u(1,t) = 0, u(x,0) = sin(2π x), ≤ x ≤  a) Viết dạng sai phân hữu hạn tốn trên, đạo hàm cấp theo biến t xấp xỉ công thức sai phân lùi đạo hàm cấp theo biến x xấp xỉ công thức sai phân trung tâm b) Cho khoảng chia theo x M = 20 , khoảng chia theo t N = 800 Viết chương trình Matlab tính gần u(x,1) so sánh với nghiệm xác Giải a) Đặt f (x,t) = (1+ 4π 2)et sin(2π x) , ϕ (x) = sin(2π x) Cho T > Chọn M , N ∈ ¥ * Chia đoạn [0,1] thành M đoạn M +1 điểm chia xi = (i − 1)h, i = 1, M + 1, với h = M Chia đoạn [0,T ] thành N đoạn N + điểm chia tj = ( j − 1)k, j = 1, N + 1, với k = T N Gọi ui , j = u(xi ,tj ) giá trị gần nghiệm điểm nút (xi ,tj )  u(x,0) = ϕ (x), ≤ x ≤ ⇒ ui ,1 = u(xi ,t1) = ϕ (xi ), i = 1, M +  u(0,t) = 0, t ≥ ⇒ u1, j = u(x1,tj ) = 0, j = 2, N +  u(1,t) = 0, t ≥ ⇒ uM +1, j = u(xM +1,tj ) = 0, j = 2, N +  u (x ,t ) ≈ u(xi −1,tj ) − 2u(xi ,tj ) + u(xi +1,tj ) = ui −1, j − 2ui , j + ui +1, j , xx i j h2 h2 ut (xi ,tj ) ≈ u(xi ,tj ) − u(xi ,tj −1) k = ui , j − ui , j −1 k ,  ut − uxx = f (x,t), < x < 1, t > ⇒ ui , j − ui , j −1 k − ui −1, j − 2ui , j + ui +1, j h2 = f (xi ,tj ) h2 ⇒ ui , j − ui , j −1 − ui −1, j − 2ui , j + ui +1, j = h2 f (xi ,tj ) k ( ) ( )  h2  −h2 ⇒ ui −1, j −  + ÷ui , j + ui+1, j = ui , j −1 − h2 f (xi ,tj ), i = 2, M , j = 2, N + k k  Vậy, dạng sai phân hữu hạn toán  −h2 ui , j −1 − h2 f (xi ,tj ), i = 2, M , j = 2, N + 1,  ui −1, j + λ ui , j + ui +1, j = k   h2   ui ,1 = ϕ (xi ), i = 1, M + 1, với λ = −  + ÷  k   u = 0, j = 2, N + 1, 1, j  u  M +1, j = 0, j = 2, N + 1, b) Với j từ đến N+1, ta cho i nhận giá trị từ đến M, ta hệ phương trình AU j = Bj , 1  1 0  A( M +1)×(M +1) =  M 0  0 0  0 0 0 ÷  u1, j  λ 0 0÷  ÷ u ÷  ÷ λ 0 0 2, j ÷  ÷ M M M M M M M÷, (U j )( M +1)ì1 = M ữ, uM , j ữ 0 λ 0÷ ÷  ÷ 0 λ 1÷  uM +1, j ÷   0 0 1÷     ÷  −h u − h2 f (x ,t ) ÷ 2, j −1 j  k ÷  ÷ − h  ÷ u − h f (x3,tj )  k 3, j −1 ÷  ÷ Bj = M ( M +1)ì1 ữ h ÷  k uM −1, j −1 − h f (xM −1,tj ) ÷  ÷  −h u ÷ − h f ( x , t ) M , j − M j  k ÷  ÷ ÷   ( ) Hơn nữa, dễ dàng tìm nghiệm xác tốn ucx(x,t) = et sin(2π x) Chương trình MATLAB: %Tạo file f.m function a=f(x,t) a=(1+4*(pi^2))*exp(t)*sin(2*pi*x); %Tạo file phi.m function a=phi(x) a=sin(2*pi*x); %Tạo file ucx.m function a=ucx(x,t) a=exp(t)*sin(2*pi*x); %Tạo file Vd4_1spl.m clc clear all M=20; N=800; h=1/M; k=1/N; lamda=-(2+(h^2)/k); %Tao cac diem nut X=[0:M]*h; T=[0:N]*k; U=zeros(M+1,1); %Tu dieu kien dau for i=1:(M+1) U(i)=phi(X(i)); end %Tinh gan dung u(x,1) for j=2:(N+1) %Tao ma tran A B A=zeros(M+1,M+1); B=zeros(M+1,1); A(1,1)=1; A(M+1,M+1)=1; B(1)=0; B(M+1)=0; for i=2:M A(i,i-1)=1; A(i,i)=lamda; A(i,i+1)=1; B(i)=-((h^2)/k)*U(i)-(h^2)*f(X(i),T(j)); end %Giai he AU=B U=A\B; end %Xuat cac gia tri gan dung u(x,1) U %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 %Ve U, Ucx plot(X,U,'r ') hold on syms x ezplot(ucx(x,1),[0,1]) xlabel('x') ... B=zeros(M+1,1); A(1,1)=1; A(M+1,M+1)=1; B(1)=0; B(M+1)=0; for i=2:M A(i,i-1)=1; A(i,i)=lamda; A(i,i+1)=1; B(i) =-( (h^2)/k)*U(i )-( h^2)*f(X(i),T(j)); end %Giai he AU=B U=AB; end %Xuat cac gia tri gan... a=ucx(x,t) a=exp(t)*sin(2*pi*x); %Tạo file Vd4_1spl.m clc clear all M=20; N=800; h=1/M; k=1/N; lamda =-( 2+(h^2)/k); %Tao cac diem nut X=[0:M]*h; T=[0:N]*k; U=zeros(M+1,1); %Tu dieu kien dau for i=1:(M+1)

Ngày đăng: 09/12/2017, 05:46

w