Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
109
Добавлен:
17.04.2013
Размер:
1.02 Mб
Скачать

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

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

U(x,t) = X^2+Y^2:

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;

0 0.0100 0.0400 0.0900 0.1600 0.2500 0.3600 0.4900 0.6400 0.8100 1.0000

0.0100 0.0200 0.0500 0.1000 0.1700 0.2600 0.3700 0.5000 0.6500 0.8200 1.0100

0.0400 0.0500 0.0800 0.1300 0.2000 0.2900 0.4000 0.5300 0.6800 0.8500 1.0400

0.0900 0.1000 0.1300 0.1800 0.2500 0.3400 0.4500 0.5800 0.7300 0.9000 1.0900

0.1600 0.1700 0.2000 0.2500 0.3200 0.4100 0.5200 0.6500 0.8000 0.9700 1.1600

0.2500 0.2600 0.2900 0.3400 0.4100 0.5000 0.6100 0.7400 0.8900 1.0600 1.2500

0.3600 0.3700 0.4000 0.4500 0.5200 0.6100 0.7200 0.8500 1.0000 1.1700 1.3600

0.4900 0.5000 0.5300 0.5800 0.6500 0.7400 0.8500 0.9800 1.1300 1.3000 1.4900

0.6400 0.6500 0.6800 0.7300 0.8000 0.8900 1.0000 1.1300 1.2800 1.4500 1.6400

0.8100 0.8200 0.8500 0.9000 0.9700 1.0600 1.1700 1.3000 1.4500 1.6200 1.8100

1.0000 1.0100 1.0400 1.0900 1.1600 1.2500 1.3600 1.4900 1.6400 1.8100 2.0000

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

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;

0 0.0095 0.0390 0.0886 0.1582 0.2478 0.3575 0.4873 0.6370 0.8068 0.9966

0.0100 0.0195 0.0490 0.0986 0.1682 0.2578 0.3675 0.4973 0.6470 0.8168 1.0066

0.0400 0.0495 0.0790 0.1286 0.1982 0.2879 0.3976 0.5273 0.6771 0.8468 1.0367

0.0900 0.0995 0.1290 0.1786 0.2483 0.3379 0.4476 0.5774 0.7271 0.8969 1.0867

0.1600 0.1695 0.1991 0.2487 0.3183 0.4080 0.5177 0.6474 0.7972 0.9670 1.1568

0.2500 0.2595 0.2891 0.3387 0.4084 0.4981 0.6078 0.7376 0.8873 1.0572 1.2470

0.3600 0.3695 0.3991 0.4488 0.5184 0.6082 0.7179 0.8477 0.9975 1.1673 1.3572

0.4900 0.4995 0.5292 0.5788 0.6486 0.7383 0.8481 0.9779 1.1277 1.2975 1.4874

0.6400 0.6496 0.6792 0.7289 0.7987 0.8885 0.9982 1.1281 1.2779 1.4478 1.6376

0.8100 0.8196 0.8493 0.8991 0.9688 1.0586 1.1685 1.2983 1.4482 1.6180 1.8079

1.0000 1.0097 1.0394 1.0892 1.1590 1.2488 1.3587 1.4886 1.6385 1.8084 1.9983

Матрица ошибок:

0 0.0005 0.0010 0.0014 0.0018 0.0022 0.0025 0.0027 0.0030 0.0032 0.0034

0 0.0005 0.0010 0.0014 0.0018 0.0022 0.0025 0.0027 0.0030 0.0032 0.0034

0 0.0005 0.0010 0.0014 0.0018 0.0021 0.0024 0.0027 0.0029 0.0032 0.0033

0 0.0005 0.0010 0.0014 0.0017 0.0021 0.0024 0.0026 0.0029 0.0031 0.0033

0 0.0005 0.0009 0.0013 0.0017 0.0020 0.0023 0.0026 0.0028 0.0030 0.0032

0 0.0005 0.0009 0.0013 0.0016 0.0019 0.0022 0.0024 0.0027 0.0028 0.0030

0 0.0005 0.0009 0.0012 0.0016 0.0018 0.0021 0.0023 0.0025 0.0027 0.0028

0 0.0005 0.0008 0.0012 0.0014 0.0017 0.0019 0.0021 0.0023 0.0025 0.0026

0 0.0004 0.0008 0.0011 0.0013 0.0015 0.0018 0.0019 0.0021 0.0022 0.0024

0 0.0004 0.0007 0.0009 0.0012 0.0014 0.0015 0.0017 0.0018 0.0020 0.0021

0 0.0003 0.0006 0.0008 0.0010 0.0012 0.0013 0.0014 0.0015 0.0016 0.0017

Значение нормы:

0.0034

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

Матрица ошибок:

1.0e-003 *

0 0.0998 0.1954 0.2828 0.3612 0.4311 0.4934 0.5489 0.5983 0.6423 0.6815

0 0.0997 0.1950 0.2819 0.3599 0.4294 0.4914 0.5465 0.5957 0.6394 0.6784

0 0.0995 0.1937 0.2793 0.3559 0.4243 0.4851 0.5394 0.5876 0.6306 0.6689

0 0.0991 0.1915 0.2748 0.3492 0.4156 0.4747 0.5273 0.5741 0.6159 0.6530

0 0.0983 0.1880 0.2681 0.3395 0.4031 0.4597 0.5102 0.5551 0.5951 0.6307

0 0.0970 0.1830 0.2590 0.3265 0.3867 0.4402 0.4878 0.5302 0.5680 0.6016

0 0.0949 0.1760 0.2471 0.3099 0.3659 0.4156 0.4599 0.4994 0.5345 0.5658

0 0.0914 0.1666 0.2318 0.2893 0.3403 0.3858 0.4262 0.4623 0.4943 0.5229

0 0.0862 0.1542 0.2126 0.2640 0.3096 0.3502 0.3864 0.4185 0.4472 0.4727

0 0.0784 0.1380 0.1889 0.2336 0.2732 0.3085 0.3399 0.3678 0.3927 0.4149

0 0.0672 0.1173 0.1599 0.1973 0.2306 0.2601 0.2864 0.3098 0.3306 0.3492

Значение нормы:

6.8154e-004

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

Матрица ошибок:

1.0e-004 *

0 0.0499 0.0977 0.1414 0.1805 0.2155 0.2466 0.2744 0.2991 0.3211 0.3407

0 0.0498 0.0975 0.1409 0.1799 0.2146 0.2456 0.2732 0.2977 0.3196 0.3391

0 0.0497 0.0969 0.1396 0.1779 0.2121 0.2425 0.2696 0.2937 0.3152 0.3343

0 0.0495 0.0957 0.1373 0.1745 0.2077 0.2372 0.2635 0.2870 0.3078 0.3264

0 0.0491 0.0940 0.1340 0.1697 0.2015 0.2298 0.2550 0.2774 0.2974 0.3152

0 0.0485 0.0914 0.1294 0.1632 0.1932 0.2200 0.2438 0.2650 0.2839 0.3007

0 0.0474 0.0879 0.1234 0.1549 0.1828 0.2077 0.2299 0.2496 0.2671 0.2828

0 0.0457 0.0832 0.1158 0.1445 0.1700 0.1928 0.2130 0.2310 0.2470 0.2613

0 0.0430 0.0770 0.1061 0.1319 0.1547 0.1750 0.1930 0.2091 0.2235 0.2362

0 0.0391 0.0688 0.0943 0.1166 0.1365 0.1541 0.1698 0.1838 0.1962 0.2073

0 0.0334 0.0584 0.0798 0.0985 0.1151 0.1299 0.1430 0.1547 0.1652 0.1745

Значение нормы:

3.4067e-005

Программная реализация модельной задачи:

Основная программа

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] = mod(M,N);

if err

disp('Ne podhodyajie parametri!!!')

end

if ~err

colormap(pink)

mesh(U)

title('Yavnaya Shema')

pause

colormap('default')

contour(U,50)

title('Yavnaya Shema')

pause

end

pause

T=zeros(11,201);

h= 1/M;

t= 1/N;

%i = 1:M+1;

%j = 1:N+1;

for i = 1:M+1

for j = 1:N+1

T(i,j) = ((i-1)*h)^2 + ((j-1)*t)^2;

end

end

mesh(T)

title('X^2 + Y^2')

pause

colormap('default')

contour(T,50)

title('X^2 + Y^2')

m = 1;

n = 1;

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

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

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

n=n+1;

end

n=1;

m=m+1;

end

uu=zeros(M+1,6);

for i=1:M+1,

for j=0:5,

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

end

end

result

res

err_matr = res - result

diary off

Реализация явной разностной схемы:

function[U,u,result,error]=mod(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)=2*t*(j-1) - 2;

end

end

for i=1:M+1

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

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);

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)+2*h*(2+((j-1)*t)^2-U(M+1,j)))+U(M+1,j)+t*f(M+1,j) ;

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

22

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