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

2.2 Неявная разностная схема.

Для аппроксимации используем следующий шаблон :

Уравнение аппроксимируется разностной системой :

Запишем равенства в виде, удобном для метода прогонки :

Для аппроксимации краевого условия третьего рода разложим в ряд Тейлора функцию в окрестности точки (0,t):

Подставим сюда при:

(*)

Производную в (*) заменим левой разностной производной

(**)

Записывая краевое условие третьего рода и подставляя производную (**) из (*), получим:

И перепишем это выражение в виде удобном для применения метода прогонки:

Получившаяся в итоге неявная разностная схема аппроксимирует краевую задачу третьего рода для уравнения теплопроводности с погрешностью

Коэффициенты системы удовлетворяют условиям :

следовательно выполняются условия теоремы о корректности и устойчивости метода прогонки.

Используя метод прогонки, получаем решение неявной разностной схемы для данной задачи. Текст функции, вычисляющий матрицу решения размерностью приведён ниже.

clear;

N=100;

M=100;

h=1/M;

t=1/N;

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

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

f=zeros(N+1,1);

a=zeros(N,1);

b=zeros(N,1);

c=zeros(N+1,1);

alpha=zeros(N,1);

beta=zeros(N,1);

for i=1:M+1

for j=1:N+1

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

end;

end;

c(1)=1+(h*h)/(2*t)+h;

b(1)=1;

for i=2:N

c(i)=2+(h*h)/t;

end;

for i=1:N

a(i)=1;

b(i)=1;

end;

c(N+1)=1;

a(N)=0;

alpha(1)=b(1)/c(1);

for i=1:M-1

alpha(i+1)=b(i+1)/(c(i+1)-a(i)*alpha(i));

end;

for j=2:N

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

for i=2:M

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

end;

f(M+1)=0;

beta(1)=f(1)/c(1);

for i=1:M-1

beta(i+1)=(f(i+1)+a(i)*beta(i))/(c(i+1)-a(i)*alpha(i));

end;

U(M+1,j)=0;

for i=M:-1:1

U(i,j)=alpha(i)*U(i+1,j)+beta(i);

end;

end;

y=zeros(M+1,10);

for i=1:M+1

for j=1:10

y(i,j)=U(i,j*N/10);

end;

end;

i=1:1:M+1;

plot((i-1)/M,y);

pause;

mesh(U);

pause;

Решение полученное при неявной схеме

.

Columns 1 through 7

0.0260 0.0706 0.1211 0.1764 0.2365 0.3015 0.3715

0.0205 0.0598 0.1054 0.1561 0.2121 0.2733 0.3398

0.0184 0.0529 0.0935 0.1395 0.1909 0.2478 0.3101

0.0188 0.0490 0.0848 0.1259 0.1724 0.2243 0.2818

0.0209 0.0471 0.0781 0.1141 0.1554 0.2019 0.2537

0.0238 0.0462 0.0723 0.1031 0.1387 0.1792 0.2246

0.0262 0.0447 0.0660 0.0914 0.1210 0.1549 0.1931

0.0269 0.0413 0.0576 0.0772 0.1003 0.1270 0.1571

0.0240 0.0340 0.0452 0.0588 0.0748 0.0935 0.1146

0.0158 0.0210 0.0268 0.0338 0.0422 0.0520 0.0632

0 0 0 0 0 0 0

Columns 8 through 10

0.4464 0.5262 0.6110

0.4117 0.4889 0.5715

0.3780 0.4515 0.5305

0.3447 0.4133 0.4874

0.3108 0.3734 0.4412

0.2750 0.3303 0.3906

0.2356 0.2826 0.3339

0.1909 0.2282 0.2691

0.1384 0.1648 0.1937

0.0757 0.0897 0.1050

0 0 0

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