- •Московский Государственный Институт Электронной Техники
- •Теоретическая часть
- •I. Классификация линейных уравнений
- •II. Сеточные функции и сеточные пространства
- •III. Разностная аппроксимация
- •IV. Метод сеток
- •Порядок выполнения работы
- •Исследование на сходимость явной разностной схемы
- •Сравнение явной и неявной схем с модельной задачей.
- •Приложение
- •Список литературы
Сравнение явной и неявной схем с модельной задачей.
Для сравнения решения явной и неявной схем с модельной задачей используем следующий метод.
Берем матрицу решения явной схемы или матрицу такой же размерности решения неявной схемы и поэлементно сравниваем с матрицей модельной функции. Находим максимальное расхождение. Затем, увеличивая размерность матриц, снова сравниваем их и так далее. При увеличении разбиения решения явной и неявной разностных схем стремятся к решению исходной краевой задачи.
Модельная функция-.
Размерность U : 100x110 ; 200x210 ; 300x310.
Таблица норм сравнения для явной и неявной схем.
NORMA(U1я-F) |
NORMA(U2я-F) |
NORMA(U3я-F) |
4,3144*10-5 |
1,2321*10-5 |
5,7523*10-6 |
NORMA(U1н-F) |
NORMA(U2н-F) |
NORMA(U3н-F) |
0,0803 |
0,0421 |
0,0285 |
Приложение
Текст функции, вычисляющий матрицу решения размерностью MxN, для явной схемы:
function [Q]=yavn(N,M);
h=1/N;
t=1/M;
G=t/h;
U=zeros(N+1,M+1);
for i=1:N
U(i,1)=p_(i,h);
end;
for j=1:M+1
U(N+1,j)=l_(j,t);
end;
U(1,2)=(1-G*G)*U(1,1)+G*G*(U(2,1)-h*q_(1,t))+t*k_(1,h)+(t/2)*t*fnc(1,1,h,t);
for i=2:N
U(i,2)=t*k_(i,h)+(G*G)*(1/2)*(U(i-1,1)+U(i+1,1))+(1-G*G)*U(i,1)+(t/2)*t*fnc(i,1,h,t);
end;
for j=3:M+1
U(1,j)=2*(1-G*G)*U(1,j-1)+2*G*G*(U(2,j-1)-h*q_(j-1,t))+t*t*fnc(1,j-1,h,t)-U(1,j-2);
for i=2:N
U(i,j)=2*(1-G*G)*U(i,j-1)+G*G*(U(i-1,j-1)+U(i+1,j-1))+t*t*fnc(i,j-1,h,t)-U(i,j-2);
end;
end;
Q=zeros(11,11);
for i=1:11
for j=1:11
Q(i,j)=U(((N/10)*(i-1)+1),((M/10)*(j-1)+1));
end
end
plot(Q);
pause;
mesh(U);
Текст функции, вычисляющий матрицу решения размерностью MxN для неявной схемы:
function [Q]=neyavn(N,M);
h=1/N;
t=1/M;
G=t/h;
U=zeros(N+1,M+1);
for i=1:N
U(i,1)=p_(i,h);
end;
for j=1:M+1
U(N+1,j)=l_(j,t);
end;
alf=zeros(N+1);
bet=zeros(N+1);
b0=2*G*G;
c0=b0+2;
ai=G*G;
bi=ai;
ci=2*ai+2;
f0=2*U(1,1)+t*t*fnc(1,1,h,t)+2*t*k_(1,h)-2*G*G*q_(1,t)*h;
alf(1)=b0/c0;
bet(1)=f0/c0;
for i=2:N
fi=2*U(i,1)+t*t*fnc(i,j,h,t)+2*t*k_(i,h);
alf(i)=bi/(ci-ai*alf(i-1));
bet(i)=(fi+ai*bet(i-1))/(ci-ai*alf(i-1));
end
for i=N:-1:1
U(i,2)=alf(i)*U(i+1,2)+bet(i);
end
b0=2*G*G;
c0=b0+1;
ai=G*G;
bi=ai;
ci=2*ai+1;
for j=3:M+1
f0=2*U(1,j-1)-U(1,j-2)+t*t*fnc(1,j,h,t)-2*G*G*h*q_(j-1,t);
alf(1)=b0/c0;
bet(1)=f0/c0;
for i=2:N
fi=2*U(i,j-1)-U(i,j-2)+t*t*fnc(i,j,h,t);
alf(i)=bi/(ci-ai*alf(i-1));
bet(i)=(fi+ai*bet(i-1))/(ci-ai*alf(i-1));
end
for i=N:-1:1
U(i,j)=alf(i)*U(i+1,j)+bet(i);
end
end
Q=zeros(11,11);
for i=1:11
for j=1:11
Q(i,j)=U(((N/10)*(i-1)+1),((M/10)*(j-1)+1));
end
end
plot(Q);
pause;
mesh(U);
Список литературы
Долголаптев В.Г., Земсков В.Н. Численные методы решения разностных уравнений математической физики. Методические указания к курсовой работе по высшей математике. /Под ред. А.В. Ефимова. – М.: Изд. МИЭТа, 1987. – 66 с.
Земсков В.Н., Хахалин С.Я. Метод сеток. Методические указания к выполнению курсовой работы на персональном компьютере. – М.: МИЭТ, 1998. – 64 с.: ил.