Các kết quả thực nghiệm

Một phần của tài liệu phương pháp lặp giải bài toán không thuần nhất giữa phương trình elliptic và phương trình song điều hòa (Trang 66 - 89)

3 Bài toán không thuần nhất và phương pháp tìm nghiệm

3.4Các kết quả thực nghiệm

Để kiểm tra tính đúng đắn của phương pháp lặp đã đề xuất, chúng tôi xét bài toán (3.31),(3.32) với miền chữ nhật Ω = (0 ≤ x1 ≤ 2a, 0 ≤

x2 ≤ b), biên phân chia S = (x1 = a, 0 ≤ x2 ≤ b). Chúng tôi sẽ cho trước nghiệm đúng u∗ của bài toán và từ đó xác định tất cả các giá trị biêng0, g1, g2. Sử dụng phương pháp lưới với bước lưới h1 = a

64, h2 =

b

64,

phân tương ứng sau đó sử dụng phương pháp thu gọn khối lượng tính toán tìm nghiệm số của các bài toán, việc kiểm tra sự đúng đắn của sơ đồ lặp dựa vào giá trị sai số giữa nghiệm đúng và nghiệm xấp xỉ trên toàn miền, sơ đồ lặp sẽ dừng khi max|u(i,jk) −u∗i,j| < err trong đó err là sai số cho trước,(i, j) là toạ độ điểm lưới trên toàn miền Ω. Trong các bài toán dưới đây, ký hiệu εlà sai số cho trước, nlà số bước lặp, tlà thời gian tính theo đơn vị giây. Thuật toán sử dụng các hàm trong thư viện [3]. Sau đây là một số kết quả của sơ đồ lặp nhận được trên máy tính PC. Trong bảng 1 là kết quả thực nghiệm kiểm tra thuật toán đối với 3 hàm chọn trước.

Bảng 1: τ1 = τ2 = τ3 = 0.95, c1 = 1, c2 = 3, d = 10.

τ4 sinx1sinx2 x41 +x42 etsinx2 +etsinx1

ε t ε t ε t 0.1 9.10−5 17 1.10−4 46 9.10−8 22 0.2 6.10−5 12 1.10−4 45 8.10−8 14 0.3 4.10−5 12 9.10−5 19 7.10−8 11 0.4 7.10−5 9 9.10−5 18 5.10−8 10 0.5 9.10−5 7 9.10−5 12 6.10−8 7 0.6 1.10−5 9 9.10−5 17 7.10−8 9 0.7 6.10−5 12 9.10−5 18 5.10−8 12 0.8 2.10−5 13 1.10−4 46 5.10−8 12 0.9 3.10−5 14 1.10−4 45 6.10−8 13

Nhận xét: Thuật toán hội tụ nhanh với các tham số đã lựa chọn,

đối với phép chia miền, tham số tối ưu là τ4opt ≈ 0,5.

Trong các thực nghiệm sau, chúng tôi sẽ cho trước các giá trị biên g0, g1, g2 và giá trị hàm vế phải f1, f2 một cách tuỳ ý. Việc kiểm tra sự đúng đắn của sơ đồ lặp dựa vào giá trị sai số giữa 2 lần lặp liên tiếp của

nghiệm xấp xỉ trên toàn miền, sơ đồ lặp sẽ dừng khimax|u(ijk+1)−u(ijk)|< err, trong đó err là sai số cho trước, (i, j) là toạ độ điểm lưới trên toàn miền Ω. Trong các kết quả thực nghiệm sau đây, điều kiện dừng lặp luôn được sử dụng là err = 10−5.

Trường hợp 1: Các giá trị đầu vào được chọn:

g0 = x21 + x22 + 8, g1 = x21 +x22 + cos(x1 +x2 + 1), g2 = ex1+x2 , f1 = ex1+x2 (x21 −x22), f2 = sinx1cosx2. Bảng 2:: τ1 = τ2 = τ3 = 0.95, c1 = 1, c2 = 3, d = 10. τ4 n t 0.3 50 57 0.4 39 46 0.5 37 43 0.6 40 48 0.7 49 55 Hình 3.2: Đồ thị nghiệm

Trường hợp 2: Các giá trị đầu vào được chọn:

g0 = 1

x21 +x22, g1 = log(x

2

g2 = tan(x1x2), f1 = cos(x21 −x22), f2 = sinx1 −cosx2 Bảng 3:: τ1 = τ2 = τ3 = 0.95, c1 = 1, c2 = 3, d = 10. τ4 n t 0.3 52 60 0.4 40 48 0.5 38 45 0.6 41 49 0.7 49 55 Hình 3.3: Đồ thị nghiệm

Nhận xét: Trong các trường hợp trên, chúng tôi luôn luôn lấy kích thước miền là a = b = 1 và lưới chia 64×64, tuy nhiên thuật toán vẫn hội tụ rất tốt trong trường hợp kích thước miền là lớn và phép chia là dầy hơn. Kết quả dưới đây tương ứng với trường hợp 3 nhưng với kích thước miền a = 7, b = 5, lưới chia 128×128.

τ4 n t 0.3 80 420 0.4 65 390 0.5 57 348 0.6 64 380 0.7 78 410 Hình 3.4: Đồ thị nghiệm

Kết luận:

Nội dung của luận văn đã trình bày các kiến thức cơ bản về các không gian hàm, lý thuyết về các sơ đồ lặp hai lớp, cơ sở về phương pháp chia miền đối với phương trình elliptic cấp hai, lý thuyết về các sơ đồ lặp giải các phương trình song điều hoà cấp bốn. Trên cơ sở về mô hình cơ học của bài toán không thuần nhất đã được đưa ra từ năm 2005, luận văn trình bày mô hình tổng quát của bài toán không thuần nhất và tính chất tồn tại duy nhất nghiệm của bài toán này, mô tả sơ đồ lặp dạng Dirichlet-Neumann xác định nghiệm xấp xỉ của bài toán.

Trên cơ sở các kết quả đã nghiên cứu về phương pháp chia miền đối với bài toán elliptic cấp hai và phương trình song điều hòa, luận văn đã mở rộng hướng nghiên cứu về phương pháp chia miền đối với bài toán không thuần nhất, đề xuất thuật toán xác định nghiệm xấp xỉ dựa trên tư tưởng xấp xỉ biên và xấp xỉ đạo hàm trên biên phân chia. Các kết quả lý thuyết đã được kiểm tra bằng các chương trình thực nghiệm khẳng định tính đúng đắn của phương pháp đã đề xuất, đồng thời mở ra hướng nghiên cứu áp dụng các phương pháp đối với các bài toán hỗn hợp khác cũng như các bài toán trong các miền hình học phức tạp.

Danh mục công trình đã công bố

[1] Vũ Vinh Quang, Trương Hà Hải, Đinh Như Ngọc, Phương pháp lặp giải bài toán không thuần nhất giữa phương trình elliptic và phương trình

song điều hòa, Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên,

Tài liệu tham khảo

Tiếng Việt

[1] Vũ Vinh Quang, Lê Tùng Sơn, Phương pháp lặp giải bài toán biên

hỗn hợp giữa phương trình elliptic và phương trình song điều hòa,

Tạp chí Khoa học và Công nghệ Đại học Thái Nguyên, T.2(30):20- 30, 2008.

[2] Vũ Vinh Quang, Lê Tùng Sơn, Kết quả cải tiến sơ đồ lặp giải bài toán biên hỗn hợp giữa phương trình elliptic và phương trình song

điều hòa, Hội thảo Quốc gia về Lĩnh vực Công nghệ Thông tin và

Truyền thông, Đồng Nai 08/2009.

[3] Vũ Vinh Quang (2005), Các kết quả về việc ứng dụng thuật toán thu gọn khối lượng tính toán giải các bài toán elliptic với các điều kiện biên hỗn hợp, Hội thảo Khoa học Toàn quốc, "Phát triển công cụ tin học trợ giúp cho giảng dạy, nghiên cứu và ứng dụng toán học", Hà Nội 1-2/04/2005:247-256.

Tiếng Anh

[4] P.Gervasio (2005), Homogeneous and heterogeneuos domain decom-

position methods for plate bending problems, Comput. Methods

Appl. Mech. Engrg. 194:4321-4343.

[5] Dang Quang A and Vu Vinh Quang, A domain decomposition

method for solving an elliptic boundary value problem, Methods of

Conference on Applied Mathematics), SAS International Publica- tion, Delhi, 309-319.

[6] V. V. Quang, Q. A. Dang, Decomposition Methods for Solving a

Boundary Value Problem for Biharmonic Equation, International

conference on " Hight Performance Scientific Computing", Hanoi, March 6-10,2006.

[7] Dang Quang A (1994), Boundary operator method for approximate sollution of biharmonic type equation, Vietnam J. Math. 22:114-120. [8] Dang Quang A (1998), Mixed Boundary-Domain Operator in Ap-

proximate Solution of Biharmonic Type Equation, Vietnam Journal

of Mathematics 26:3:243-252.

[9] Dang Quang A (2003), Stability Analysis of an Approximate

Method for Biharmonic Equation, Vietnam Journal of Mathematics

Phụ lục

% Chuong trinh 1: giai bai toan khong thuan nhat % Truong hop biet trươc nghiem dung

% Bai toan 1 delta(u)-c1*u=f1;

% Bai toan 2 delta2(u)-c2*delta(u)+d*u=f2; % phi la ham ve phai

% beta la gia tri -du

% v1,v2,v3,v4 la gia tri bien cua ham v % u1,u2,u3,u4: la gia tri bien cua ham u % u la nghiem dung cua bai toan

% Ngay lap 17/05/2010 clear all clc a=1;b=1;c1=1;c2=3;d=1.5; to1=0.95; to2=0.95; to3=0.5; to4=0.95; epxilon=0.0001; n=6; N = 2n; M=N; p1=1;p2=M+1;p3=2*M+1;q1=1;q2=N+1;k1=1;k2=1; l1=a;l2=b; h1=l1/M;

h2=l2/N;

% buoc 1 - Gia tri ban dau beta=0; for i=0:M;

for j=0:N;

beta(i+1,j+1)=0; end;

end;

% Gia tri ban dau vk1, vk2 for i=0:M; vk3(i+1)=0; vk4(i+1)=0; end; for j=0:N; vk1(i+1)=0; vk2(i+1)=0; csik(j+1)=0; end; thoigian=cputime; count=-1;saiso=10;

while and(count<180,saiso>epxilon);% buoc lap k count=count+1;

% Giai bai toan voi v % Gia tri ve phai x10=a;x20=0; for i=0:M;

for j=0:N;

x1=x10+i*h1; x2=x20+j*h2;

phi1(i+1,j+1)=-vp2(x1,x2,c2,d)-beta(i+1,j+1); % Ham ve phai end;

% Dieu kien tren canh trai va phai for j=0:N; x2=x20+j*h2; v1(j+1)=vk1(j+1);% delta(x10,x2); v2(j+1)=vk2(j+1);% delta(x10+l1,x2); end;

% Dieu kien tren canh duoi va tren for i=0:M;

x1=x10+i*h1;

v3(i+1)=vk3(i+1);% delta(x1,x20); v4(i+1)=vk4(i+1);% delta(x1,x20+l2);

end; vv=u0000(phi1,v1,v2,v3,v4,l1,l2,k1,k2,c2,M,N,n,p2,p3,q1,q2); % Giai bai toan voi u1

% Giai bai toan voi u1

l1=a;l2=b;M1=M;N1=N;n1=n; h1=l1/M1;

h2=l2/N1; x10=0;x20=0; % Gia tri ve phai for i=0:M1;

for j=0:N1;

x1=x10+i*h1; x2=x20+j*h2;

phi(i+1,j+1)=-vp1(x1,x2,c1); % Ham ve phai end;

end;

% Dieu kien tren canh trai va phai for j=0:N1;

x2=x20+j*h2; b1(j+1)=u(x10,x2); b2(j+1)=csik(j+1);

end;

% Dieu kien tren canh duoi va tren for i=0:M1; x1=x10+i*h1; b3(i+1)=u(x1,x20); b4(i+1)=u(x1,x20+l2); end; u1=u0100(phi,b1,b2,b3,b4,l1,l2,k1,k2,c1,M1,N1,n1,p1,p2,q1,q2); % Giai bai toan voi u2

l1=a;l2=b;M2=M;N2=N;n2=n; h1=l1/M2;

h2=l2/N2; x10=a;x20=0; % Gia tri ve phai for i=0:M2;

for j=0:N2;

x1=x10+i*h1; x2=x20+j*h2;

phi(i+1,j+1)=-vv(p2+i,q1+j);% Ham ve phai end;

end;

% Dieu kien tren canh trai va phai for j=0:N2;

x2=x20+j*h2;

b1(j+1)=u1(p2,q1+j); b2(j+1)=u(x10+l1,x2); end;

% Dieu kien tren canh duoi va tren for i=0:M2;

x1=x10+i*h1; b3(i+1)=u(x1,x20);

b4(i+1)=u(x1,x20+l2); end;

u2=u0000(phi,b1,b2,b3,b4,l1,l2,k1,k2,0,M2,N2,n2,p2,p3,q1,q2);

for i=0:M;% Cac gia tri ve phai de tinh dao ham tren bien voi do chinh xac cap hai ph03(i+1)=-vv(p2+i,q1);

ph04(i+1)=-vv(p2+i,q2); end;

for j=0:N; % Cac gia tri ve phai de tinh dao ham tren bien voi do chinh xac cap hai ph02(i+1)=-vv(p3,q1+j);

end; for j=0:N;

ph0(j+1)=-vv(p2,q1+j); end;

% Gia tri nghiem dung x10=0;x20=0;

for i=0:2*M; for j=0:N;

x1=x10+i*h1; x2=x20+j*h2;

ud(i+1,j+1)=u(x1,x2);% Nghiem dung end;

end;

% Nghiem xap xi ten toan mien for j=0:N; for i=0:2*M; if i<=M; uu(i+1,j+1)=u1(p1+i,q1+j); else uu(i+1,j+1)=u2(p1+i,q1+j); end; end;

end; saiso=0; for j=0:N; for i=0:2*M; if saiso<=abs(uu(p1+i,q1+j)-ud(p1+i,q1+j)); saiso=abs(uu(p1+i,q1+j)-ud(p1+i,q1+j)); end; end; end; saiso

% Hieu chinh gia tri csik(j) tren bien for j=1:N-1; du=1/h1*(u2(p2+1,q1+j)-u2(p2,q1+j))+h1/(2*h2*h2)*(u2(p2,q1+j-1) -2*u2(p2,q1+j)+u2(p2,q1+j+1))+h1/2*ph0(j+1); csik(j+1)=to3*csik(j+1)+(1-to3)*du; end; csik(1)=dhx(x10+l1,x20);csik(N+1)=dhx(x10+l1,x20+l2); % Hieu chinh gia tri vk1(j) tren bien

for j=0:N;

x2=x20+j*h2;

vk1(j+1)=vk1(j+1)-to4*(vk1(j+1)-c1*u1(p2,q1+j)-vp1(x10+l1,x2,c1)); end;

% Buoc 2 Hieu chinh gia tri beta for i=0:M; for j=0:N; beta(i+1,j+1)=beta(i+1,j+1)-to1*(beta(i+1,j+1)+d*u2(p2+i,q1+j)); end; end; x10=a;x20=0;

% Hieu chinh gia tri vk3,vk4 for i=1:M-1;

x1=x10+i*h1;

% Tinh dao ham tren 2 bien voi do chinh xac cap hai

du1=1/h2*(uu(p2+i,q1+1)-uu(p2+i,q1))+h2/(2*h1*h1)*(uu(p2+i-1,q1) -2*uu(p2+i,q1)+uu(p2+i+1,q1))+h2/2*ph03(i+1); du2=1/h2*(uu(p2+i,q2-1)-uu(p2+i,q2))+h2/(2*h1*h1)*(uu(p2+i-1,q2)

-2*uu(p2+i,q2)+uu(p2+i+1,q2))+h2/2*ph04(i+1);

vk3(i+1)=vk3(i+1)+to2*d*(du1-dhy(x1,x20));% Hieu chinh ham v tren bien Gamma3 vk4(i+1)=vk4(i+1)+to2*d*(du2+dhy(x1,x20+l2));%Hieu chinh ham v tren bien Gamma4 end;

%Hieu chinh gia tri vk2 for j=1:N-1;

x2=x20+j*h2;

% Tinh dao ham tren 2 bien voi do chinh xac cap hai

du2=1/h1*(uu(p3-1,q1+j)-uu(p3,q1+j))+h1/(2*h2*h2)*(uu(p3,q1+j-1) -2*uu(p3,q1+j)+uu(p3,q1+j+1))+h1/2*ph02(j+1);

vk2(j+1)=vk2(j+1)+to2*d*(du2+dhx(x10+l1,x2));%Hieu chinh ham v tren bien Gamma2 end;

%Hieu chinh cac gia tri ham vk tai cac dau mut %Cong thuc ngoai suy

a1=uu(p2,q2);a2=uu(p2+1,q2);a3=uu(p2+2,q2);

uah=a3-3*a2+3*a1;% Ngoai suy dau trai bien gamma2 b1=uu(p3-2,q2);b2=uu(p3-1,q2);b3=uu(p3,q2);

ubh=3*b3-3*b2+b1;% Ngoai suy dau phai bien gamma2 c1=uu(p3-2,q1);c2=uu(p3-1,q1);c3=uu(p3,q1);

uch=3*c3-3*c2+c1;% Ngoai suy dau phai bien gamma4 dua=1/h2*(uu(p2,q2-1)-uu(p2,q2))+h2/(2*h1*h1)*(uah-2*uu(p2,q2)+uu(p2+1,q2)) +h2/2*ph04(1); dub=1/h2*(uu(p3,q2-1)-uu(p3,q2)) +h2/(2*h1*h1)*(uu(p3-1,q2)-2*uu(p3,q2)+ubh)+h2/2*ph04(M+1); duc=1/h2*(uu(p3,q1+1)-uu(p3,q1))+h2/(2*h1*h1)*(uu(p3-1,q1)-2*uu(p3,q1)+uch) +h2/2*ph03(M+1);

vk4(1)=vk4(1)+to2*d*(dua+dhy(x10,x20+l2)); vk4(M+1)=vk4(M+1)+to2*d*(dub+dhy(x10+l1,x20+l2)); vk3(1)=vk3(1)+to2*d*(dua-dhy(x10,x20)); vk3(M+1)=vk3(M+1)+to2*d*(dua-dhy(x10+l1,x20)); vk2(1)=vk3(M+1);vk2(N+1)=vk4(M+1); end; thoigian=cputime-thoigian count mesh(uu)

% Chuong trinh 2: giai bai toan khong thuan nhat

% Truong hop khong biet nghiem dung, da kiem tra chinh xac % Bai toan 1 delta(u)-c1*u=f1;

% Bai toan 2 delta2(u)-c2*delta(u)+d*u=f2; % phi la ham ve phai

% beta la gia tri -du

% v1,v2,v3,v4 la gia tri bien cua ham v % u1,u2,u3,u4: la gia tri bien cua ham u % u la nghiem dung cua bai toan

% Ngay lap 17/12/2009 clear all clc a=7;b=5;c1=1;c2=3;d=1.5; to1=0.95; to2=1/d; to3=0.5; to4=0.95; deta=0.1; epxilon=10(−8); n=6; N = 2n; M=N;

p1=1;p2=M+1;p3=2*M+1;q1=1;q2=N+1;k1=1;k2=1; l1=a;l2=b;

h1=l1/M; h2=l2/N;

% Xac dinh cac he so gamma k gamma(1)=-1/6;

gamma(2)=4; gamma(3)=-81/6; gamma(4)=16*16/24;

% buoc 1 - Gia tri ban dau beta=0; for i=0:M;

for j=0:N;

beta(i+1,j+1)=0; % beta la gia tri f-du2 end;

end;

%Gia tri ban dau vk1, vk2 for i=0:M;

vk3(i+1)=0;%gia tri lap cua v tren bien can xac dinh vk4(i+1)=0;%gia tri lap cua v tren bien can xac dinh end;

for j=0:N;

vk1(j+1)=0;% gia tri tren bien chung

vk2(j+1)=0;%gia tri lap cua v tren bien can xac dinh csik(j+1)=0;% gia tri dao ham cua u trong chia mien end;

for i=0:2*M; for j=0:N;

uluu(i+1,j+1)=0;% mang de luu nghiem trong buoc lap truoc end;

end;

count=-1;saiso=10;

while and(count<10,saiso>epxilon);%buoc lap k count=count+1;

for i=0:2*M; for j=0:N;

Ut(i+1,j+1)=0; % nghiem tong tren toan mien end;

end; for k=1:4;

deltak=deta/k; %Xac dinh cac tham so lap cua buoc lap thu k trong phuong phap to hop nghiem

%Giai bai toan voi v % Gia tri ve phai x10=a;x20=0; for i=0:M;

for j=0:N;

x1=x10+i*h1; x2=x20+j*h2;

phi1(i+1,j+1)=vp2(x1,x2,c2,d)-beta(i+1,j+1); % Ham ve phai end;

end;

% Dieu kien tren canh trai va phai for j=0:N;

x2=x20+j*h2; v1(j+1)=vk1(j+1); v2(j+1)=vk2(j+1); end;

% Dieu kien tren canh duoi va tren for i=0:M;

x1=x10+i*h1; v3(i+1)=vk3(i+1);

v4(i+1)=vk4(i+1); end;

vv=u0000(phi1,v1,v2,v3,v4,l1,l2,k1,k2,c2,M,N,n,p2,p3,q1,q2); % Giai bai toan voi u1

%Giai bai toan voi u1

l1=a;l2=b;M1=M;N1=N;n1=n; h1=l1/M1;

h2=l2/N1; x10=0;x20=0; % Gia tri ve phai for i=0:M1;

for j=0:N1;

x1=x10+i*h1; x2=x20+j*h2;

phi(i+1,j+1)=vp1(x1,x2,c1);% Ham ve phai tuy y end;

end;

% Dieu kien tren canh trai va phai for j=0:N1;

x2=x20+j*h2;

b1(j+1)=cos(x2+x1);%Ham tuy y b2(j+1)=csik(j+1);

end;

%Dieu kien tren canh duoi va tren for i=0:M1; x1=x10+i*h1; b3(i+1)=cos(x1);%Ham tuy y b4(i+1)=cos(x1)-exp(-x1);%Ham tuy y end; u1=u0100(phi,b1,b2,b3,b4,l1,l2,k1,k2,c1,M1,N1,n1,p1,p2,q1,q2); % Giai bai toan voi u2

l1=a;l2=b;M2=M;N2=N;n2=n; h1=l1/M2;

h2=l2/N2; x10=a;x20=0; % Gia tri ve phai for i=0:M2;

for j=0:N2;

phi(i+1,j+1)=-vv(p2+i,q1+j); % Ham ve phai end;

end;

% Dieu kien tren canh trai va phai for j=0:N2;

x2=x20+j*h2;

b1(j+1)=u1(p2,q1+j);

b2(j+1)=x22+exp(x2+1);%Ham tuy y end;

% Dieu kien tren canh duoi va tren for i=0:M2; x1=x10+i*h1; b3(i+1)=log(x1+2)-sin(x1);%Ham tuy y b4(i+1)=10*cos(x1);%Ham tuy y end; u2=u0000(phi,b1,b2,b3,b4,l1,l2,k1,k2,0,M2,N2,n2,p2,p3,q1,q2);

for i=0:M; %Cac gia tri ve phai de tinh dao ham tren bien voi do chinh xac cap hai ph03(i+1)=-vv(p2+i,q1);

ph04(i+1)=-vv(p2+i,q2); end;

for j=0:N; %Cac gia tri ve phai de tinh dao ham tren bien voi do chinh xac cap hai ph02(i+1)=-vv(p3,q1+j);

end; for j=0:N;

p h0(j+1)=-vv(p2,q1+j); end;

% Hieu chinh gia tri csik(j) tren bien for j=1:N-1; d u=1/h1*(u2(p2+1,q1+j)-u2(p2,q1+j))+h1/(2*h2*h2)*(u2(p2,q1+j-1)-2*u2(p2,q1+j) +u2(p2,q1+j+1))+h1/2*ph0(j+1); csik(j+1)=to3*csik(j+1)+(1-to3)*du; end; x10=0;x20=0; csik(1)=dhx(x10+l1,x20);csik(N+1)=dhx(x10+l1,x20+l2); % Hieu chinh gia tri vk1(j) tren bien

for j=0:N;

x2=x20+j*h2;

vk1(j+1)=vk1(j+1)-to4*(vk1(j+1)-c1*u1(p2,q1+j)-vp1(x10+l1,x2,c1)); end;

%Buoc 2 Hieu chinh gia tri beta for i=0:M; for j=0:N; beta(i+1,j+1)=beta(i+1,j+1)-to1*(beta(i+1,j+1)+d*u2(p2+i,q1+j)); end; end; x10=a;x20=0;

%Hieu chinh gia tri vk3,vk4 for i=1:M-1;

x1=x10+i*h1;

% Tinh dao ham tren 2 bien voi do chinh xac cap hai

du1=1/h2*(u2(p2+i,q1+1)-u2(p2+i,q1))+h2/(2*h1*h1)*(u2(p2+i-1,q1)-2*u2(p2+i,q1) +u2(p2+i+1,q1))+h2/2*ph03(i+1);

du2=1/h2*(u2(p2+i,q2-1)-u2(p2+i,q2))+h2/(2*h1*h1)*(u2(p2+i-1,q2)-2*u2(p2+i,q2) +u2(p2+i+1,q2))+h2/2*ph04(i+1);

%Hieu chinh ham v tren bien Gamma3

vk4(i+1)=vk4(i+1)+to2*d*(du2+dhy(x1,x20+l2)-deltak*vk4(i+1)); %Hieu chinh ham v tren bien Gamma4

end;

% Hieu chinh gia tri vk2 for j=1:N-1;

x2=x20+j*h2;

%Tinh dao ham tren 2 bien voi do chinh xac cap hai

du2=1/h1*(u2(p3-1,q1+j)-u2(p3,q1+j))+h1/(2*h2*h2)*(u2(p3,q1+j-1)-2*u2(p3,q1+j) +u2(p3,q1+j+1))+h1/2*ph02(j+1);

vk2(j+1)=vk2(j+1)+to2*d*(du2+dhx(x10+l1,x2)-deltak*vk2(j+1)); %Hieu chinh ham v tren bien Gamma2

end;

% Hieu chinh cac gia tri ham vk tai cac dau mut % Cong thuc ngoai suy

a1=u2(p2,q2);a2=u2(p2+1,q2);a3=u2(p2+2,q2);uah=a3-3*a2+3*a1; %Ngoai suy dau trai bien gamma2

b1=u2(p3-2,q2);b2=u2(p3-1,q2);b3=u2(p3,q2);ubh=3*b3-3*b2+b1; %Ngoai suy dau phai bien gamma2

c1=u2(p3-2,q1);c2=u2(p3-1,q1);c3=u2(p3,q1);uch=3*c3-3*c2+c1; %Ngoai suy dau phai bien gamma4

dua=1/h2*(u2(p2,q2-1)-u2(p2,q2))+h2/(2*h1*h1)*(uah-2*u2(p2,q2) +u2(p2+1,q2))+h2/2*ph04(1); dub=1/h2*(u2(p3,q2-1)-u2(p3,q2))+h2/(2*h1*h1)*(u2(p3-1,q2)-2*u2(p3,q2)+ubh) +h2/2*ph04(M+1); duc=1/h2*(u2(p3,q1+1)-u2(p3,q1))+h2/(2*h1*h1)*(u2(p3-1,q1)-2*u2(p3,q1)+uch) +h2/2*ph03(M+1); vk4(1)=vk4(1)+to2*d*(dua+dhy(x10,x20+l2)-deltak*vk4(1)); vk4(M+1)=vk4(M+1)+to2*d*(dub+dhy(x10+l1,x20+l2)-deltak*vk4(M+1)); vk3(1)=vk3(1)+to2*d*(dua-dhy(x10,x20)-deltak*vk3(1)); vk3(M+1)=vk3(M+1)+to2*d*(dua-dhy(x10+l1,x20)-deltak*vk3(M+1));

vk2(1)=vk3(M+1);vk2(N+1)=vk4(M+1); %Xac dinh nghiem Ut

for i=0:2*M; for j=0:N; if i<=M; Ut(p1+i,q1+j)=u1(p1+i,q1+j); else Ut(p1+i,q1+j)=Ut(p1+i,q1+j)+gamma(k)*u2(p1+i,q1+j); end; end; end;

end;%het vong lap for saiso=0; for j=0:N; for i=0:2*M; if saiso<=abs(Ut(p1+i,q1+j)-uluu(p1+i,q1+j)); saiso=abs(Ut(p1+i,q1+j)-uluu(p1+i,q1+j)); end; end; end; saiso uluu=Ut;

end;% Het vong lap while thoigian=cputime-thoigian count

Một phần của tài liệu phương pháp lặp giải bài toán không thuần nhất giữa phương trình elliptic và phương trình song điều hòa (Trang 66 - 89)