Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЧМ (МП-3) / Курсовые / mpm_21c / курсач.doc
Скачиваний:
114
Добавлен:
17.04.2013
Размер:
734 Кб
Скачать

Практическая реализация:

Таблицы результатов:

При M = 100, N = 20000, т.е. при h = 1/100, t = 1/20000 получены следующие результаты:

X = 0;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1;

T = 0;0.1;0.2;0.3;0.4;0.5;0.6;0.7;0.8;0.9;1;

    1. Явная разностная схема:

U(x,t)

0 0.3922 0.4308 0.3191 0.1833 0.1233 0.2409 0.6642 1.5742 3.2396 6.0679

0.0400 0.5637 0.7513 0.7962 0.8224 0.9292 1.2191 1.8223 2.9230 4.7957 7.8563

0.1600 0.7696 1.0874 1.2848 1.4794 1.7692 2.2590 3.0847 4.4413 6.6199 10.0625

0.3600 1.0246 1.4597 1.8105 2.1848 2.6785 3.4007 4.4976 6.1823 8.7748 12.7619

0.6400 1.3413 1.8884 2.3997 2.9706 3.6949 4.6885 6.1132 8.2084 11.3365 16.0496

1.0000 1.7310 2.3940 3.0802 3.8708 4.8592 6.1712 7.9901 10.5917 14.3956 20.0431

1.4400 2.2047 2.9979 3.8813 4.9226 6.2165 7.9033 10.1953 13.4158 18.0599 24.8852

1.9600 2.7746 3.7233 4.8352 6.1664 7.8165 9.9460 12.8048 16.7781 22.4571 30.7481

2.5600 3.4548 4.5962 5.9776 7.6472 9.7147 12.3681 15.9060 20.7918 27.7383 37.8396

3.2400 4.2633 5.6465 7.3485 9.4154 11.9738 15.2483 19.5995 25.5893 34.0829 46.4088

4.0000 5.2231 6.9090 8.9934 11.5279 14.6646 18.6762 24.0018 31.3260 41.7040 56.7558

1.2 Неявная разностная схема:

U(x,t)

0 0.3922 0.4308 0.3191 0.1834 0.1235 0.2412 0.6647 1.5749 3.2409 6.0699

0.0400 0.5637 0.7513 0.7963 0.8225 0.9293 1.2194 1.8228 2.9238 4.7970 7.8583

0.1600 0.7696 1.0874 1.2848 1.4795 1.7694 2.2593 3.0852 4.4421 6.6212 10.0646

0.3600 1.0246 1.4597 1.8105 2.1849 2.6787 3.4010 4.4982 6.1833 8.7763 12.7642

0.6400 1.3413 1.8884 2.3998 2.9707 3.6951 4.6888 6.1138 8.2095 11.3382 16.0523

1.0000 1.7310 2.3941 3.0802 3.8709 4.8595 6.1716 7.9909 10.5929 14.3976 20.0463

1.4400 2.2047 2.9979 3.8814 4.9227 6.2168 7.9039 10.1962 13.4173 18.0623 24.8889

1.9600 2.7746 3.7233 4.8353 6.1665 7.8168 9.9466 12.8059 16.7799 22.4599 30.7526

2.5600 3.4548 4.5962 5.9777 7.6474 9.7152 12.3689 15.9073 20.7939 27.7417 37.8450

3.2400 4.2633 5.6465 7.3486 9.4157 11.9743 15.2492 19.6011 25.5918 34.0870 46.4154

4.0000 5.2231 6.9091 8.9935 11.5282 14.6653 18.6774 24.0037 31.3292 41.7091 56.7638

1.4 Значение Нормы

0.00800219828546

График поверхности

Графики слоев t = 0 : 0.2 : 1.

1.1 Неявная схема:

1.2 Явная схема

Программная реализация:

1,1 Явная разностная схема:

function[U,u,result,error]=yavnaya(M,N)

close all

warning off

error=0;

h=1/M;

t=1/N;

if 2*t>h^2

error = 1;

end

U=zeros(M+1,N+1);

for i=1:M+1

for j=1:N+1

f(i,j)=-32*h*t*(i-1)*(j-1);

end

end

for j=1:N

U(1,j+1) = 2*t/h^2*(U(2,j)-U(1,j)) + U(1,j) + t*f(1,j) - 2*t/h*(16*t*j);

for i=2:M

U(i,j+1) = U(i,j) + t/h^2*(U(i-1,j) - 2*U(i,j) + U(i+1,j)) + t*f(i,j);

end;

U(M+1,j+1) = 2*t/h^2*(U(M,j)-U(M+1,j)) + t*f(M+1,j) + U(M+1,j)*(1-2*t*2/h);

end;

for i=1:M+1

U(i,1)=4*i^2*h^2;

end

m = 1;

n = 1;

for i=1:M/10:M+1

for j = 1:N/10:N+1

result(m,n)=U(i,j);

n=n+1;

end

n=1;

m=m+1;

end

u=zeros(M+1,6);

for i=1:M+1,

for j=0:5,

u(i,j+1)=U(i,1+j*N/5);

end

end

1,2 Неявная разностная схема:

unction[U,u,result,error]=neyavnaya(M,N)

close all

warning off

error = 0;

h = 1/M;

t = 1/N;

U = zeros(M+1,N+1);

for i = 1:M+1

for j = 1:N+1

fun(i,j) = -32*h*t*(i-1)*(j-1);

end

end

for i=1:M+1

U(i,1)=4*(i-1)*(i-1)*h*h;

end

A = zeros(M,1);

C = zeros(M+1,1);

B = A;

A1 = A;

F = zeros(M+1,N+1);

B1 = F;

for i = 1:M-1,

A(i) = 1;

B(i+1) = 1;

C(i+1) = 2 + h^2/t;

if abs(C(i+1)) < abs(A(i)) + abs(B(i+1))

error = 1;

end

end;

A(M) = 1;

B(1) = 1;

C(1) = 1 + h^2/(2*t);

C(M+1) = 1 + h^2/(2*t) - (-2)*h;

if abs(C(1)) < abs(B(1))

error = 1;

end

if abs(C(M+1)) < abs(A(M))

error = 1;

end

A1(1) = B(1)/C(1);

for i = 2:M

A1(i) = B(i)/(C(i) - A(i-1)*A1(i-1));

end;

for j = 2:N+1,

F(1,j) = (h*h/2*t)*U(1,j-1) + (h*h/2)*fun(1,j)-h*(16*(j-1)*t);

B1(1,j) = F(1,j)/C(1);

for i = 1:M-1,

F(i+1,j) = (h*h)*fun(i+1,j-1) + (h*h/t)*U(i+1,j-1);

end;

F(M+1,j) = (h*h/2*t)*U(M+1,j-1) + (h*h/2)*fun(M+1,j);

for i = 2:M+1,

B1(i,j) = (F(i,j) + A(i-1)*B1(i-1,j))/(C(i) - A(i-1)*A1(i-1));

end;

U(M+1,j) = B1(M+1,j);

for i = M:-1:1,

U(i,j) = A1(i)*U(i+1,j) + B1(i,j);

end;

end;

m = 1;

n = 1;

for i = 1:M/10:M+1

for j = 1:N/10:N+1

result(m,n) = U(i,j);

n = n+1;

end

n = 1;

m = m+1;

end

u = zeros(M+1.6);

for i = 1:M+1,

for j = 0:5,

u(i,j+1) = U(i,1+j*N/5);

end

end

1,3 Основная прграмма:

clear

clc

warning off

close all

format short

diary E:\Temp\main.txt

diary on

M=input('Vvedie razmernost'' setki po X:')

N=input('Vvedie razmernost'' setki po Y:')

[U,u,res,err] = yavnaya(M,N);

[UU,uu,result,error] = neyavnaya(M,N);

if err

disp('Ne podhodyajie parametri!!!')

end

if error

disp('Ne podhodyajie parametri!!!')

end

if ~err

if ~error

colormap(bone)

mesh(UU)

title('Ne Yavnaya Shema')

pause

colormap(pink)

mesh(U)

title('Yavnaya Shema')

pause

colormap('default')

contour(UU,50)

title('Ne Yavnaya Shema')

pause

contour(U,50)

title('Yavnaya Shema')

pause

i = 1:M+1;

plot((i-1).*1/M,uu)

title('Ne Yavnaya Shema')

grid

pause

plot((i-1).*1/M,u)

title('Yavnaya Shema')

grid

pause

plot((i-1).*1/M,uu,'b')

hold

plot((i-1).*1/M,u,'r')

title('Sovmejennay Diagramma Yavnoyi NeYavnoy Shem')

grid

end

end

res

result

err_matr = res - result

format long error

error = max(max(abs(res-result)))

diary off

17

Соседние файлы в папке mpm_21c