Matlab  |  Mathcad  |  Maple  |  Mathematica  |  Statistica  |  Другие пакеты Поиск по сайту
Internet-класс  |  Примеры  |  Методики  |  Банк задач  |  Консультации & Форум  |  Download  |  Ссылки  |  Конкурсы
Научно-практический журнал "Exponenta Pro. Математика в приложениях". Вышел 1/2004 номер журнала
 
ЛАБОРАТОРНЫЙ ПРАКТИКУМ по математическому моделированию и методам в расчетах на ЭВМ

А.А. ХАНОВА, И.Г. МАКАРОВА

Вернуться на страницу <Методические разработки>
В начало | Л.р.1 | Л.р.2 | Л.р.3 | Л.р.4 | Л.р.5 | Л.р.6 | Л.р.7 | Л.р.8

 

Лабораторная работа 7
Решение дифференциальных уравнений в частных производных

 

Метод конечных разностей~ Гиперболические уравнения в частных производных ~ Параболические уравнения в частных производных ~ Эллиптические уравнения в частных производных ~ Порядок выполнения лабораторной работы 7

 

На практике часто приходится сталкиваться с задачами, в которых искомая величина зависит от нескольких переменных. В этом случае решаемые уравнения содержат частные производные и называются дифференциальными уравнениями в частных производных. К сожалению, очень многие из таких уравнений не имеют аналитического решения, и чтобы решить их, приходиться прибегать к численным методам. Для решения дифференциальных уравнений в частных производных численно используется метод конечных разностей.

 

Метод конечных разностей

Численное решение дифференциальных уравнений в частных производных методом конечных разностей состоит в следующем:

  1. Построение в области решения равномерной сетки, содержащей n узловых точек (Рисунок 12).

    Рисунок 12. Двумерная сетка

     

  2. Представление производных в конечно-разностной форме:
, , (1)

, и т. д.,

где i,  j, i + 1,  j, i - 1,  j, ,  j + 1, i,  j  -  1 - значения функции f(x, y) в точках (xi, yj), (x+ h, yj), (x- h, yj), (xi, y+ l), (xi, yj - l) соответственно.

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

  1. Решение полученной системы с целью получения приближённого решения в узлах сетки.

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

 

Простейшим видом уравнения гиперболического типа является волновое уравнение. К исследованию волнового уравнения приводит рассмотрение процессов поперечных колебаний струны, продольных колебаний стержня, электрических колебаний в проводе, крутильных колебаний вала и т. п.

Рассмотрим одномерное уравнение колебаний струны. В области требуется найти решение уравнения:

,

(2)

Искомая функция u(x, t) должна удовлетворять начальным условиям, описывающим начальную (t = 0) форму струны j (x) и скорость её точек y (x):

, , 0 less.gif (65 bytes) x less.gif (65 bytes)l

(3)

и граничным условиям, указывающим, что происходит на концах струны (х = 0 и х = l):

, , 0 less.gif (65 bytes) tless.gif (65 bytes)T.

(4)

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

Для построения разностной схемы решения задачи (2) - (4) построим в области сетку xi = i h, = 0, 1, ..., n, l = h  n, tj = j t , = 0, 1, ..., m, T= t   m и аппроксимируем уравнение (2) в каждом внутреннем узле сетки на шаблоне “крест” (Рисунок 13).

 

 

Рисунок 13. . Шаблон для волнового уравнения

 

Используя для аппроксимации частных производных выражения (1), получаем следующую разностную аппроксимацию уравнения (2):

.

(5)

Решая уравнение (6) относительно единственного неизвестного значения , получаем следующую схему:

,

l = а2t 2 / h2, = 1, ..., n - 1, j = 1, ..., m - 1.

(6)

Схема (6) называется трехслойной потому, что связывает между собой значения функции u(x, t) на трех временных слоях с номерами: j - 1, j, j + 1. Схема (6) является явной, т.е. позволяет в явном виде выразить через значения u с предыдущих двух слоев.

Для начала счета по схеме (6) необходимы значения функции u(x, t) на нулевом (j = 0) и первом (j = 1) временных слоях. Они определяются начальными условиями (3) и записываются в виде:

, , = 0, 1, ..., n.

(7)

Граничные условия (4) также записываются в сеточном виде:

, , = 0, 1, ..., m.

(8)

Таким образом, решение исходной дифференциальной задачи (2) - (4) сводится к решению разностной задачи (6) - (8).

Схема устойчива, если выполнено условие Куранта .

 

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

 

Простейшим видом уравнения параболического типа является уравнение теплопроводности, или уравнение Фурье. К исследованию уравнения теплопроводности, или уравнения Фурье, приводит рассмотрение процессов распространения тепла, фильтрации жидкости и газа в пористой среде, некоторые вопросы теории вероятностей.

Рассмотрим задачу о распространении тепла в однородном стержне длины l, на концах которого поддерживается заданный температурный режим. Задача состоит в отыскании функции u(x, t), удовлетворяющей в области {} уравнению

(9)

начальному условию

(10)

и граничным условиям

(11)


Рисунок 14. Шаблон для уравнения теплопроводности

 

Построим в области равномерную прямоугольную сетку с шагом h в направлении х и шагом t - в направлении t (Рисунок 14). Тогда xi = i h, = 0,1, ..., n, h = l / n; tj = j t , = 0,1, ..., m, t =T / m .

Аппроксимируем дифференциальную задачу (9) - (11) на четырехточечном шаблоне, в результате получаем явную двухслойную разностную схему:

= 1, 2, ..., n - 1, j = 0, 1, ..., m - 1

, = 0, 1, ..., n,

, , = 0, 1, ..., m,

.

 

 

 

(12)

 

Схема устойчива при l less.gif (65 bytes) 1/2.

 

Эллиптические уравнения в частных производных

 

К исследованию такого уравнения приводит рассмотрение задач об электрических и магнитных полях, о стационарном тепловом состоянии, задач гидродинамики, диффузии и т. д. Рассмотрим решения уравнения Пуассона и его однородной формы - уравнения Лапласа.

Решение уравнения Пуассона будем искать в некоторой ограниченной области W = изменения независимых переменных x, y:

(13)

Граничные условия:

u(0, y) =m1(y), u(a, y) = m2(y), y I [0, b],

u(x, 0) = m3(x), u(x, b) = m4(x), y I [0, a],

(14)

где f, m1, m2, m3, m4 - заданные функции (задача, состоящая в решении эллиптического уравнения при заданных значениях искомой функции на границе расчётной области, называется задачей Дирихле.).

Построим в области W равномерную прямоугольную сетку с шагами h и l по х и y соответственно: xi = i h, = 0, 1, ..., n, h = q1 / n; yj = j l, = 0, 1, ..., m, l=q 2 /m .

Аппроксимируем дифференциальную задачу (13) - (14) на шаблоне “крест” (Рисунок 13), в результате получаем неявную трехслойную разностную схему:

,

 

(15)

Для решения уравнения Пуассона в Mathcad используется функция relax

 

relax(a, b, c, d, e, f, u, rjac)

Возвращает квадратную матрицу решения уравнения Пуассона. Здесь a ,b ,c, d, e - квадратные матрицы одинакового размера, содержащие коэффициенты уравнения (15); f - квадратная матрица, содержащая значения правой части уравнения (15) в каждой точке по области W , в которой ищется решение; u - квадратная матрица, содержащая граничные значения решения на границе области и начальное приближение для решения внутри области; rjac- число между 0 и 1, которое управляет сходимостью алгоритма.

При f = 0 получаем уравнение Лапласа:

(16)

Если для уравнения Лапласа в области W ввести сетку с равным шагом по осям х и y, то разностная схема (16) существенно упрощается

,

 

(17)

Решение уравнения Лапласа с помощью функции relax показано на Рисунке 15.

 

 

Рисунок 15. Решение уравнения Лапласа

 

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

 

Задание 1. Решить задачу о колебании струны единичной длины с закрепленными концами:

, a = 1

с начальными условиями

u(x, 0) = f(x), , 0 less.gif (65 bytes) x less.gif (65 bytes) 1

и нулевыми граничными условиями

u(0, t) = u(1, t) =0.

 

Варианты задания 1

 

варианта

f(x)

a

b

варианта

f(x)

a

b

c

1

1

0.1

9 x sin ( 2 ( x - 1 ) )      
2

2

0.1

10 4 x 3 ( x - 1 )      
3

4

0.2

11

1

0.1

0.2

4

6

0.3

12

3

0.2

0.4

5

8

0.4

13

5

0.4

0.6

6 x ( x 2 - 1)     14

7

0.6

0.8

7 sin ( p x 2 )     15

9

0.8

0.9

8 sin ( p x ) cos x              

 

Для решения задачи построить сетку из 11 узлов по x (= 0, 1, ... 10) и провести вычисления для 16 слоев по t (j = 0, 1, ... 16). Вычисления выполнить с шагом h по х, равным 0.1 и шагом t по t, равным 0.05. Отобразить графически решение задачи на 0-ом, 5-ом, 10-ом и 16-ом временных слоях.

 

 

 

 

Задание 2. Найти решение u(х, t) для уравнения теплопроводности с постоянными коэффициентами:

, a = 1

с начальными условиями

u(x, 0) = f(х) less.gif (65 bytes)  x less.gif (65 bytes)  1

и граничными условиями

u(0, t) = a, u(1, t) = b.

Для решения задачи построить сетку из 11 узлов по x (= 0, 1, ... 10) и провести вычисления для 12 слоев по t (j = 0, 1, ... 12). Вычисления выполнить с шагом h по х, равным 0.1 и шагом t по t, равным 0.005. Отобразить графически решение задачи на 0-ом, 4-ом, 8-ом и 12-ом слоях и построить интегральную поверхность распределения температуры в стержне с помощью команды Graphics Ю Create Surface Plot.

 

Варианты задания 2

 

варианта

f(x)

a

b

варианта

f(x)

a

b

1 x ( x - 1 )

0

0

9 ( x 2 + 0.5) cos(2 p x)

0.5

1.5

2 x 3 + x 2 - x

0

1

10 sin( p x ) cos x

0

0

3 x 2 ( 1 - x )

0

0

11 x sin( 2 ( x - 1) )

0

0

4 1 - x 4

1

0

12 l n (0.5 + x ) ( x - 1)

0.7

0

5 x sin (2 p x)

0

- 0.3

13 x sin( 4 ( x - 1) ) - x

0

-1

6 ( x - 1) sin 2 x

0

0

14 x cos (2 p x)

0

1

7 4 x 2 ( x - 1 )

0

0.5

15 x e - x ( x 4 - 2)

0

- 0.4

8 10 x 3 ( x - 1 )

0.5

0

       

Задание 3. Найти стационарное распределение температуры в квадратной пластине со стороной 1, описываемое уравнением Лапласа

с краевыми условиями вида

u(0, y) = f1(y), (0 less.gif (65 bytes)  y less.gif (65 bytes)  1), u(1, y) = f2(y), (0 less.gif (65 bytes)  y less.gif (65 bytes)  1),

u(x, 0) = f3(x), (0 less.gif (65 bytes)  x less.gif (65 bytes) 1), u(x, 1) = f4(x), (0 less.gif (65 bytes)  x less.gif (65 bytes)  1).

Решать задачу с помощью функции relax.

Для решения задачи построить сетку из 11 узлов по x (= 0, 1, ... 10) и из 11 узлов по y (j = 0, 1, ... 10). Отобразить графически с помощью команды Graphics Ю Create Contour Plot стационарное распределение температуры в пластине.

 

Варианты задания 3

 

варианта

f1(y)

f2(y)

f3(x)

f4(x)

1

y2

cos y + (2 - cos 1) y

x3

1 + x

2

e y - e y2

y

1 - x3

x2

3

1 - y2

y

sin x + 1 - x3(1 + sin 1)

x

4

0

y

sin x- x3 sin 1

x

5

e y + y2 (1 - e) - 1

y

0

x

6

y2

cos y + (3 - cos 1) y

x3

1 + 2x

7

0

y

sin x- x3 sin 1

x2

8

2ey - (1+2e) y2 1

- y

1 - x3

x - 2

9

- 10y2 - 8y + 6

- 10y2 - 30y + 22

9x2 + 7x + 6

9x2 - 15x - 12

10

- 7y2 - 5y + 3

- 7y2 - 21y + 13

6x2 + 4x + 3

6x2 - 12x - 9

11

1

y + 1

1

1 + x

12

1

e y

1

e x

13

- y2 - 5y

4 + 5y - y2

x2 + 3x

x2 + 3x + 4

14

3 - 7y

7 - 6y

4x + 3

5x - 4

15

0

sin y

0

sin x

Решение в Mathcad

В начало | Л.р.1 | Л.р.2 | Л.р.3 | Л.р.4 | Л.р.5 | Л.р.6 | Л.р.7 | Л.р.8

Вернуться на страницу <Методические разработки>

Карта сайта | На первую страницу | Поиск |О проекте |Сотрудничество |
Exponenta Pro | Matlab.ru

Наши баннеры


Copyright © 2000-2003. Компания SoftLine. Все права защищены.

Дата последнего обновления информации на сайте: 11.05.04
Сайт начал работу 1.09.00

Программное обеспечение Microsoft, Macromedia, VERITAS, Novell, Borland, Symantec, Oracle и др.