Лабораторная работа № 7. ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХНЫХ




Лабораторная работа № 7

ЧИСЛЕННОЕ РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХНЫХ

УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ.

ЗАДАЧА ДИРЕХЛЕ ДЛЯ ПАРАБОЛИЧЕСКОГО УРАВНЕНИЯ

 

Цель работы

1. Знакомство с методами численного решения дифференциальных уравнений с частными производными в рамках задачи Дирехле.

2. Разработка численной ММ, реализующей один из методов.

3. Оценка точности полученной ММ при помощи средств MATLAB.

 

Решение дифференциальных уравнений с частными производными (ДУЧП) в аналитическом виде удается только в самых простых случаях. Поэтому становятся особенно важными численные (приближенные) методы решения этих уравнений. Далее будем рассматривать только линейные ДУЧП.

Наиболее широко распространенным и простым методом численного решения линейных ДУЧП является метод сеток или метод конечных разностей, поэтому основной упор сделан на пояснение и описание этого метода.

В общем случае ДУЧП для функции u двух аргументов имеет вид

 

, (1)

 

где x, у – независимые переменные, u(x,y) – искомая функция, ux, uy, uxx, uxy, uyy – её первые и вторые частные производные по аргументам x и y.

Решением уравнения (1) называется функция и= u(х, у), обращающая это уравнение в тождество. График решения представляет собой поверхность в пространстве Охуu (интегральная поверхность).

Уравнение (1) называется вполне линейным, если оно первой степени относительно искомой функции и всех ее производных и не содержит их произведений, т. е. если это уравнение может быть записано в виде

 

, (2)

 

причем коэффициенты А, В, С, а, b, с могут зависеть лишь от х и у. В частном случае, если эти коэффициенты не зависят от х и у, то уравнение (2) будет линейным дифференциальным уравнением с постоянными коэффициентами. Подробнее рассмотрим линейное дифференциальное уравнения (2).

Пусть D= В2-4АСдискриминант уравнения. В зависимости от знака функции D линейное дифференциальное уравнение (2) относится в заданной области к одному из следующих типов:

D < 0 – эллиптический тип; D = 0 – параболический тип;

D > 0 – гиперболический тип; D не сохраняет постоянного знака – смешанный тип.

 

Например, температура и=и(х, t) точки однородного тонкого стержня с абсциссой х для каждого момента времени t удовлетворяет одномерному уравнению теплопроводности

 

, (3)

 

где а – постоянная, зависящая от физических свойств стержня, и F(х, y) –функция, связанная с плотностью источников распределения тепла. Если в стержне отсутствуют источники тепла, то уравнение теплопроводности имеет вид

 

. (4)

 

Для этого уравнения А=-а2, В=0, С=0 Тогда дискриминант D= В2-4АС =0 поэтому уравнение (3)-(4) парабалического типа

 

Параболическое уравнение в конечных разностях

 

Рассмотрим уравнение теплопроводности (4) для стержня 0 ≤ x ≤ l, где для простоты будем полагать а= 1 (к такому случаю всегда можно прийти путем введения нового времени τ=a2t), u=u(х,t) – температура и t – время

 

. (5)

 

Пусть в начальный момент времени t=0 задано распределение температуры u(x,0)=f(x) и законы изменения температуры в зависимости от времени (тепловые режимы) на концах стержня х=0 и x=l: u(0,t)=φ(t), u(l,t)=ψ(t).

Требуется найти распределение температуры u=u(х,t) вдоль стержня в любой момент времени t. Решим эту смешанную задачу методом сеток. Для этого рассмотрим пространственно-временную систему координат (х,t) (рис. 1).

 

Рис. 1. Прямоугольная сетка

 

В полуполосе t ≥0, 0 ≤ x ≤ l построим прямоугольную сетку x=ih (i=0, 1,…, n), t=jk (j=0, 1, 2,…), где h=l/n (n – целое) – шаг вдоль оси Ох и k2=σh2 – шаг вдоль оси Ot (σ – постоянная), вообще говоря, различны.

Величина σ будет выбрана ниже. Введя обозначения xi =ih, tj =jk, uij=u(xi, tj) и заменяя уравнение (5) конечно-разностным уравнением, получим:

. (6)

 

Отсюда

 

ui,j+1= σ ui-1,j+(1-2σ)uij+ σ ui+1,j. (7)

 

Из рассмотрения формулы (7) ясно, что зная значения функции u(х,t) в точках j -го слоя t=jk, с помощью этой формулы можно вычислить значения u(х,t) в точках следующего (j+1) -го слоя t=(j+1)k (риc. 2). При вычислении пользуются четырьмя соседними узлами – явная схема вида (рис. 2).

 

 

Рис. 2. Явная схема с использованием одного предыдущего слоя j

 

Таким образом, исходя из начального слоя t=0, значения u(х,t) для которого определяются из начального условия u(xi,0)=f(xi), (i=0, 1,…, n), и используя значения функции u(х,t) в крайних узлах (0, tj), (1, tj) (j=0, 1, 2,…), определяемые граничными условиями u(0,tj)= φ(tj), u(l,tj)= ψ(tj), по формуле (51) последовательно вычисляем: u(xi,t1), u(xi,t2), u(xi,t3),… (i=0, 1,…, n), т. е. находим значения искомой функции u(х,t) во всех узлах полуполосы.

Остается разумно выбрать величину σ. При этом будем исходить из требования, чтобы ошибка при замене дифференциального уравнения (5) конечно-разностным уравнением (6) была наименьшей. Введем обозначения:

 

, Lh[u]=1/h2[(ui+1,j –2uij+ui-1,j)-1/ σ(ui,j+1 –uij)],

 

где Lh[u]конечно-разностный оператор, соответствующий дифференциальному оператору L[u].

Разность Rh[u]=Lh[u]-L[и], называемая ошибкой аппроксимации, есть погрешность, которая получается при замене оператора L[и] оператором Lh[u].

 

Для Lh[u] можно записать

 

. (8)

 

Тогда выберем число σ так, чтобы первая скобка формулы (52) обратилась в нуль, т. е. положим σ/2=1/12 и, следовательно, σ=1/6. При этом значении σ будем иметь

 

. (9)

 

При выполнении равенства Rh[u]=Lh[u] при таком выборе σ для погрешности Rh[u] получаем оценку Rh[u]=О(h4), тогда как при другом выборе числа σ имеем Rh[u]=О(h2). В этом смысле значение σ =1/6 является для расчетной схемы 1 наилучшим.

Соответствующая расчетная формула (7) при таком выборе σ окончательно принимает вид

 

ui,j+1=1/6(ui-1,j+4uij+ui+1,j). (10)

 

Отметим, что оценка ошибки аппроксимации Rh[u] в общем случае для граничных узлов (xi, tj) не годится.

 

Порядок выполнения работы

 

1. Разработать программу для решения смешанной (с начальными и краевыми условиями) задачи для уравнения теплопроводности параболического типа одним из описанных выше методов (например, на алгоритмическом языке Pascal) и провести численное моделирование с получением приближенных (модельных) значений искомых функций .

2. Решить эту же задачу средствами MATLAB (пример решения см. в прил.), где в качестве результатов получить экспериментальные («точные») значения искомой функции .

3. Оценить точность полученной модели.

 

Варианты заданий

Задание 7.1. Решить смешанную задачу (задачу Дирехле) для дифференциального уравнения параболического типа (уравнения теплопроводности) , при заданных начальных и краевых условиях , , где с использованием явной разностной схемы. Решение выполнить при h=0.1 для , считая σ =1/6.

Задание 7.2. Решить задачу по пункту 7.1 с использованием неявной разностной схемы методом прогонки.

 

№ n/n
  0.1 x*(1-x)*(100*x^19-50*x^10+15*x^2-8*x+2)
  0.2 x*(1-x)*(100*x^19-50*x^10+15*x^2-8*x+2)
  0.5 x*(1-x)*(100*x^19-50*x^10+15*x^2-8*x+2)
  0.9 x*(1-x)*(100*x^19-50*x^10+15*x^2-8*x+2)
  1.5 x*(1-x)*(100*x^19-50*x^10+15*x^2-8*x+2)
  0.1 x*(1-x)*(200*x^12-50*x^10+15*x^2-8*x+2)
  0.2 x*(1-x)*(200*x^12-50*x^10+15*x^2-8*x+2)
  0.5 x*(1-x)*(200*x^12-50*x^10+15*x^2-8*x+2)
  0.9 x*(1-x)*(200*x^12-50*x^10+15*x^2-8*x+2)
  1.5 x*(1-x)*(200*x^12-50*x^10+15*x^2-8*x+2)
  0.1 x*(1-x)*(300*x^12-30*x^6+15*x^2-8*x+2)
  0.2 x*(1-x)*(300*x^12-30*x^6+15*x^2-8*x+2)
  0.5 x*(1-x)*(300*x^12-30*x^6+15*x^2-8*x+2)
  0.9 x*(1-x)*(300*x^12-30*x^6+15*x^2-8*x+2)
  1.5 x*(1-x)*(300*x^12-30*x^6+15*x^2-8*x+2)
  0.1 x*(1-x)*(30*x^8-30*x^6+25*x^4-8*x+2)
  0.2 x*(1-x)*(30*x^8-30*x^6+25*x^4-8*x+2)
  0.5 x*(1-x)*(30*x^8-30*x^6+25*x^4-8*x+2)
  0.9 x*(1-x)*(30*x^8-30*x^6+25*x^4-8*x+2)
  1.5 x*(1-x)*(30*x^8-30*x^6+25*x^4-8*x+2)
  0.1 x*(1-x)*(30*x^4-30*x^6+25*x^2-8*x+2)
  0.2 x*(1-x)*(30*x^4-30*x^6+25*x^2-8*x+2)
  0.5 x*(1-x)*(30*x^4-30*x^6+25*x^2-8*x+2)
  0.9 x*(1-x)*(30*x^4-30*x^6+25*x^2-8*x+2)
  1.5 x*(1-x)*(30*x^4-30*x^6+25*x^2-8*x+2)
  0.1 x*(1-x)*(30*x^10-30*x^3+25*x^2-8*x+2)
  0.2 x*(1-x)*(30*x^10-30*x^3+25*x^2-8*x+2)
  0.5 x*(1-x)*(30*x^10-30*x^3+25*x^2-8*x+2)
  0.9 x*(1-x)*(30*x^10-30*x^3+25*x^2-8*x+2)
  1.5 x*(1-x)*(30*x^10-30*x^3+25*x^2-8*x+2)
  0.1 x*(1-x)*(10*x^7-5*x^6+3*x^5-2*x+2)
  0.2 x*(1-x)*(10*x^7-5*x^6+3*x^5-2*x+2)
  0.5 x*(1-x)*(10*x^7-5*x^6+3*x^5-2*x+2)
  0.9 x*(1-x)*(10*x^7-5*x^6+3*x^5-2*x+2)
  1.5 x*(1-x)*(10*x^7-5*x^6+3*x^5-2*x+2)
  0.1 x*(1-x)*(4*x^4-3*x^3+2*x^2-1*x+2)
  0.2 x*(1-x)*(4*x^4-3*x^3+2*x^2-1*x+2)
  0.5 x*(1-x)*(4*x^4-3*x^3+2*x^2-1*x+2)
  0.9 x*(1-x)*(4*x^4-3*x^3+2*x^2-1*x+2)
  1.5 x*(1-x)*(4*x^4-3*x^3+2*x^2-1*x+2)

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2018-01-26 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: