М
осковский
Государственный Институт Электронной
Техники
(Технический Университет)
кафедра Высшей Математики - I
Курсовая работа
по курсу
“Методы прикладной математики”
на тему
“Приближённое решение краевых задач математической физики методом сеток.”
Выполнил: Филиппов А.А.
гр. МП - 33 Проверила: Соколова Т.В.
Москва
1999 г.
Методические указания и постановка задачи.
1. Тема.
Приближенное решение краевых задач математической физики методом сеток.
2. Цель работы.
Изучить основные понятия теории конечно-разностных методов решения краевых задач математической физики и уметь применять их на практике. Численное решение задачи осуществляется на персональной ЭВМ в среде MATLAB. Преимущество использования этой среды — богатый набор командных программ, реализующих большинство стандартных задач линейной алгебры и методов оптимизации, а также статистической обработки результатов. MATLAB обладает также хорошими графическими возможностями отображения результатов.
3. Порядок работы.
-
Познакомиться с основными понятиями метода сеток и методикой численного решения разностных уравнений, аппроксимирующих краевую задачу. Наиболее полно все основные понятия метода сеток изложены в [1,2]. Достаточной теоретической базой может служить методическое пособие [3].
-
Классифицировать уравнение и проверить корректность постановки данной в варианте краевой задачи и соответствие её физическому смыслу.
-
Разобраться с методикой построения явных и неявных разностных схем конечно-разностных систем для данного типа уравнения.
-
Разобраться с устойчивыми методами решения явной и неявной схем.
-
Реализовать программу, осуществляющую решение в среде MATLAB.
-
Получить численные результаты для своего варианта. Оформить их в виде таблиц, построить необходимые кривые и поверхности уровней, иллюстрирующие решение задачи.
-
Оформить курсовую работу в соответствии с общим требованиями к курсовым работам. В теоретической части должны быть кратко освещены следующие вопросы:
-
Классификация уравнения. Вскрыть физический смысл тех явлений, которые описываются данной математической постановкой задачи.
-
Корректная постановка: граничные и начальные условия и их соответствие физическому смыслу.
-
Понятия: сеточный шаблон, порядок аппроксимации разностных схем, сходимость, устойчивость решения.
-
Выбор шагов сетки и оценка погрешности метода.
Порядок выполнения работы.
1. Классификация краевой задачи и её физический смысл
Линейное дифференциальное уравнение второго порядка такого вида относится к уравнениям параболического типа. Данное уравнение описывает распределение тепла в однородном стержне единичной длины в зависимости от времени.
В данной задаче начальные и граничные
условия имеют следующий смысл. Начальное
условие
задает распределение температуры на
всем стержне в момент времени t=0.
Граничное условие 3-го
рода
говорит о том, что на
левом конце стержня по закону Ньютона
происходит теплообмен с окружающей
средой. Граничное условие
3-го рода
говорит
о том, что на правом конце
стержня по закону Ньютона происходит
теплообмен с окружающей средой.
Решение сеточного уравнения.
Явная разностная схема.
В явной разностной схеме значение сеточной функции на последующем слое полностью определяется значением её на предыдущем слое по рекурентным формулам. В данной задаче апроксимацию дифференциальных операторов проведём по следующему шаблону :
Т
огда
конечно-разностная схема для данной
задачи имеет вид
:
З
начение
температуры на
слое явно
выражается через значение температуры
на
слое по формуле :
П
орядок
аппроксимации данной разностной схемы
равен
.
Для получения
,
разложим
в окрестности точки
по формуле Тейлора :
Используя граничное
условие третьего рода
, получим
Откуда получаем :
Практическая
реализация данного метода возможна
лишь при таких соотношениях между
шагами сетки
и
,
при которых выполняется условие
устойчивости решения к ошибкам округления
и неточностям в начальных данных. Это
условие имеет вид
.
Текст
функции,
вычисляющий
матрицу решения размерностью
приведён ниже.
function result=yavn(M)
disp('-----------------=* Yavn *=-------------');
disp('-------------=* Philippov A.A.=*-------------')
pause;
N = 3*M^2
h=1/M;
t=1/N;
U=zeros(M+1,N+1);
for X=1:M+1,
U(X,1)=sin(pi*(X-1)*h);
end
for J=1:N,
y=(J-1)*t;
U(1,J+1)=2*t/h^2*(U(2,J)-U(1,J)*(1+h/2-h^2/(2*t)));
U(M,J+1)=2*t/h^2*(U(M+1,J)+U(M,J)*(1+h/2-h^2/(2*t)))+t*8*h^2*y^4;
for X=2:M,
x=(X-1)*h;
U(X,J+1)=U(X,J)+t/h^2*(U(X-1,J)-2*U(X,J)+U(X+1,J))+t*(8*x^2*y^4);
end
end
mesh(0:(1/N):1,0:(1/M):1,U),grid;
result=U;
Результат явной разностной схемы показан на графике:
Линии уровня:
Выбор сеточного шаблона для неявной разностной схемы
x
t
Рисунок 1


Для решения задачи с применением неявной разностной схемы воспользуемся Т-образным шаблоном, изображенным на рисунке 1.
![]()
-
Аппроксимируем начальное условие
:
-
Аппроксимация граничного условия третьего рода
:
Производную
заменяем левой разностной производной:
.
Записывая краевое условие третьего
рода в узле (0, tj) и
подставляя сюда производную получим
в итоге:

-
Аппроксимация второго граничного условия третьего рода происходит аналогично, и из-за схожести граничных условий они отличаются только знаками при коэффициенте
:
![]()
![]()
Перепишем все неравенства в систему, удобную для применения метода прогонки:

Прогоночные коэффициенты:

Текст программы для неявной схемы:
disp('_________________________________________________________________');
disp(' Neyavn')
disp(' Philippov A.A. v.17')
disp('_________________________________________________________________');
M = input('Enter M:');
N = input('Enter N:');
h=1/M;
t=1/N;
c(1)=1+h^2/(2*t)+0.5*h;
for i=2:M,
c(i)=2+h^2/t;
end
c(M)=1+h^2/(2*t)-0.5*h;
b(1)=1;
a(M)=-1;
for i=2:M,
b(i)=1; end
for i=2:M,
a(i)=1; end
alfa(1)=b(1)/c(1);
for i=2:M,
alfa(i)=b(i-1)/(c(i-1)-a(i-1)*alfa(i-1)); end
alfa(M+1)=c(M+1)/a(M+1);
U=zeros(M+1,N+1);
for X=1:M+1,
x = (X-1)*h;
U(X,1) = sin(pi*x);
end
for T=2:N+1,
y=(T-1)*t;
f(1)=0;
for i=2:M,
x=(i-1)*h;
f(i)=h^2*(8*x^2*y^4)+h^2/t*U(i-1,T-1);
end
f(M)=h^2/(2*t)*U(M,T-1)+h^2/2*(8*x^2*y^4);
betta(1)=f(1)/c(1);
for i=2:M,
betta(i)=(f(i-1)+a(i-1)*betta(i-1))/(c(i-1)-a(i-1)*alfa(i-1));
end
U(M,T)=betta(M+1);
for i=M:-1:1,
U(i,T)=U(i+1,T)*alfa(i)+betta(i);
end
end
mesh(0:1/(N):1,0:1/(M):1,U),grid;
result=U;
Устойчивость решения неявной схемы.
Как известно из теоремы, для того, чтобы решение системы неявным методом было устойчивым необходимо, чтобы выполнялись следующие условия для коэффициентов системы решения:
-
,
,
,

-

-
,

Если же посмотреть на решение системы, то видно, что выполняются все вышеприведенные условия, что и доказывает, что решение системы устойчиво.
Результат неявной разностной схемы показан на графике:
Л
инии
уровня:
Список литературы
-
Теория разностных схем., Самарский А. А., М., Наука, 1977г.
-
Численные методы., Калиткин Н. Н., М., Наука, 1978г.
-
Численные методы решения разностных уравнений мат физики. Долголаптев В. Г., Земсков В. Н., М., МИЭТ, 1987г.
-
Сборник задач по математике для втузов, т. 4 Методы оптимизации, М., Наука, 1990г.
-
Методическое пособие по выполнению домашних заданий с использованием ЭВМ “Решение уравнений математической физики методом сеток”, М., МИЭТ, 1976г.
-
Методы решения сеточных уравнений., Самарский А. А., Николаев Е. С., М., Наука, 1978г.
-
Прикладные итерационные методы. Хейгеман Л., Янг Л., М., Мир, 1986г.
-
Матрицы и вычисления., Воеводин В. В., Кузнецов Ю. А., М., Наука, 1984г.


