Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ

.pdf
Скачиваний:
333
Добавлен:
29.03.2015
Размер:
2.5 Mб
Скачать

Численные методы решения дифференциальных уравнений

разнообразны. Одной из важнейших задач проектирования является исследование напряженно-деформированного состояния

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

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

Математическая модель любой из этих задач может быть получена из общего квазигармонического уравнения,

описывающего разнообразные физические явления в неизотропной среде, т.е. такой среде, свойства которой различны в разных направлениях:

¶ æ

¶j ö

 

æ

¶j

ö

 

¶ æ

¶j ö

 

 

ç

÷

 

 

 

çkx

÷

+

 

 

+

 

çkz

÷

= R(x, y, z)

 

 

çky

y

÷

 

x è

x ø

 

y è

ø

 

z è

z ø

 

где x,y,z - пространственные координаты; j(x,y,z) непрерывная функция; kx, ky, kz коэффициенты; R воздействие.

,

(6.22)

искомая

внешнее

Приведем примеры некоторых прикладных задач,

представляющих практический интерес для специалистов строительной отрасли.

6.2.2. Примеры задач, описываемых, дифференциальными уравнениями в частных производных

n

Пример

 

6.7.

Задача

теплопроводности,

описывающая

распространение тепла в трехмерной области [16]:

 

 

 

¶ æ

 

T ö

¶ æ

 

T ö

 

¶ æ

 

T ö

 

 

 

 

 

 

çl

x

÷ +

 

 

çl

y

÷

+

 

çl

z

÷

= R(x, y, z) ,

(6.23)

 

 

 

 

 

 

 

x è

 

ç

÷

 

z è

z ø

 

 

 

 

 

 

x ø ¶y è

 

y ø

 

 

 

 

 

где j = Т температура, R - внутренний источник тепла или сток,

λx, λy, λz - коэффициенты теплопроводности в направлениях x, y и z соответственно.

163

Численные методы решения дифференциальных уравнений

В изотропной среде λx= λy= λz и уравнение (6.23) сводится к уравнению,

которое называется уравнением Пуассона:

2T

+

2T

+

2T

= R(x, y, z) .

(6.24)

x2

 

y2

 

z2

 

 

Если член R(x,y,z), характеризующий источник, обращается в нуль, то уравнение (6.24) становится уравнением Лапласа:

 

2T +

2T

+ 2T

= 0 ,

 

 

 

 

 

 

 

 

 

 

 

 

(6.25)

 

x2

y2

 

z2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которое можно записать, используя оператор Лапласа в виде

 

Т = 0 (или Ñ2Т = 0 ).

 

 

 

 

 

 

 

 

 

(6.26)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оператор

Лапласа

лапласиан

 

 

 

(обозначаемый иногда Ñ2 ),

который равен соответственно для случаев:

 

 

 

 

 

 

 

одной независимой переменной D =

 

d 2

 

 

;

 

 

 

 

 

 

 

 

dx2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

двух независимых переменных D =

 

2

 

+

 

2

;

 

 

 

dx2

 

 

y2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

трех независимых переменных

D =

 

2

+

 

2

+

2

.

dx2

y2

z2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оператор

2 называется бигармоническим

и в случае двух

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

 

 

 

 

 

 

 

 

 

D2

4

 

 

 

4

 

 

 

 

4

 

 

 

 

 

 

=

 

+ 2

 

+

 

 

.

 

 

 

 

dx4

x2y2

y4

 

 

Задачи, описываемые уравнением Лапласа с краевыми условиями Дирихле, обычно называют краевыми задачами

Дирихле.

164

Численные методы решения дифференциальных уравнений

n Пример 6.8. Плоская задача теории упругости (например,

растяжение пластины или сжатие стеновой панели плоско-напряженное состояние; расчет ленточного фундамента плоско-деформированное состояние и т.п.) [26].

Для двухмерного случая при kx= ky=1 уравнение (6.22) сводится к

уравнению Пуассона вида

 

 

 

 

2j

+

2 j

= f (x, y) ,

(6.27)

x 2

y 2

 

 

 

а при R(x,y,z)= 2Gθ, уравнение (6.22) сводится к уравнению Пуассона,

описывающему кручение упругого стержня некругового сечения

2j

+

2j

+ 2Gq = 0 .

(6.28)

x 2

y 2

 

 

 

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

n Пример 6.9. Периодические волновые явления типа свободных колебаний обычно описываются уравнением, называемым уравнением Гельмгольца [34],

¶ æ

 

¶f ö

 

æ

 

¶f ö

 

¶ æ

 

¶f ö

+ w2f = 0

 

 

 

çk

x

÷

+

 

çk

y

÷

+

 

çk

z

÷

,

(6.29)

 

 

 

x è

 

 

 

ç

÷

 

z è

z ø

 

 

 

 

x ø ¶y è

 

y ø

 

 

 

 

 

где f скалярная переменная, kx, ky, kz свойства среды в направлениях главных координатных осей x, y и z соответственно, w частота колебаний.

Для однородной и изотропной среды kx= ky= kz=Const. В этом случае k можно ввести в частотный параметр w и, уравнение Гельмгольца

записать в простой форме

 

Ñ2f + w2f = 0 ,

(6.30)

165

и уравнение

Численные методы решения дифференциальных уравнений

n Пример 6.10. Дифференциальное уравнение для ограниченного потока грунтовых вод также содержится в уравнении (6.22) и имеет вид

kx

2ϕ

+ k y

2ϕ

+ Q = 0 .

(6.31)

x

2

y

2

 

 

 

 

Здесь коэффициенты kx и ky определяют проницаемость почвы, Q источник (или сток) воды, а функция ϕ пьезометрический напор.

Другой важный класс физических задач представляют задачи, учитывающие изменение искомых величин во времени, т.е. нестационарные задачи (динамическое поведение различных конструкций, явления переноса тепла, течения грунтовых вод и т.д.). Уравнение (6.22) при этом включает член, содержащий частную производную по времени,

¶ æ

 

¶j ö

 

æ

 

¶j ö

 

¶ æ

 

¶j ö

 

¶j

 

 

 

çk

x

÷

+

 

çk

y

÷

+

 

çk

z

÷

+ Q = l

 

.

(6.32)

 

 

 

 

x è

 

 

 

ç

÷

 

z è

z ø

 

t

 

 

 

x ø ¶y è

 

y ø

 

 

 

 

 

При этом коэффициенты уравнения могут изменяться со временем.

Если численное решение задачи в дальнейшем рассматривать для каждого фиксированного момента времени, то параметр R(x,y,z) в

формуле (6.22) можно заменить разностью Q - l jt

(6.32) будет идентично (6.22) для каждой точки временного интервала.

Аналитическое решение большинства практических задач, описываемых дифференциальными уравнениями, с помощью аналитических методов весьма проблематично. В основном решение их получают численными методами. Выбор численного

метода определяют тип дифференциального уравнения и вид

дополнительных условий. Рассмотрение численных методов начнем с обыкновенных дифференциальных уравнений.

166

Численные методы решения дифференциальных уравнений

6.3. Численные методы решения задач Коши

Для обыкновенного дифференциального уравнения n-го

порядка

y(n) = f (x, y, y/ , y// ,..., y(n1) ) .

(6.33)

задача Коши состоит в нахождении решения y=y(x), удовлетворяющего начальным условиям:

y

0

= y(x

0

);

y/

= y/ (x ) ;….; y(n1)

= y(n1) (x ) ,

(6.34)

 

 

 

0

0

0

0

 

где x0, y0,

y0/,…, y0(n-1) - заданные числа.

 

 

 

Известно [12], что обыкновенное дифференциальное уравнение n-го порядка при помощи замены переменных всегда можно свести к эквивалентной системе n уравнений первого порядка.

Например, дифференциальное уравнение 2-го порядка

 

y// = g(y/ , y, x)

(6.35)

можно заменить эквивалентной системой дифференциальных уравнений 1-го порядка:

z / = g(z, y, x),

(6.36)

y/ = z,

где z - новая переменная. Т.е., получена система уравнений относительно у и z. Решение этой системы даст и искомую функцию

и ее производную.

Численные методы решения задач Коши рассмотрим на примере решения одного обыкновенного дифференциального уравнения первого порядка

y' = f (x, y)

(6.37)

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

 

у(х0)=у0.

(6.38)

167

Численные методы решения дифференциальных уравнений

Методы, которые мы рассмотрим далее, легко обобщаются и на системы уравнений первого порядка.

Установим теперь, что имеется в виду под аналитическим решением уравнения (6.37) с начальным условием (6.38) и что имеется в виду под его численным решением.

n В качестве примера аналитического решения рассмотрим

дифференциальное уравнение 1-го порядка

y' = y .

(6.39)

Общее решение (семейство интегральных кривых) его хорошо известно [25]:

y = Сex .

(6.40)

При различных значениях постоянной С получается семейство кривых, причем все кривые удовлетворяют уравнению (6.39). Если в

дополнение к дифференциальному уравнению задать значение у для некоторого значения х, то можно определить постоянную С.

Соответствующее ей решение называется

частным решением.

Рис. 6.6 Семейство интегральных кривых y= Сex

Например, предположим, что решение должно проходить через точку х=0, у=1, что обычно записывается в виде

у(0)=1.

(6.41)

При этом легко найти, что постоянная С=1 и что из всего семейства кривых только одна кривая удовлетворяет одновременно (6.40) и (6.41),

это

y = ex.

(6.42)

Таким образом, получено решение в виде функции y = y(x) (т.е. в

аналитическом виде).

168

Численные методы решения дифференциальных уравнений

Решить дифференциальное уравнение y/=f(x,y) для x [a, b] численным методом это значит найти искомую функцию y=y(x) в виде таблицы значений yi (i=0,1,…,n), для конечного числа значений аргумента xi [a, b].

Для этого область изменения аргумента x [a,b] заменяется дискретным множеством точек xi , которое называется сеточной областью (разностной сеткой или просто сеткой):

Ωn {x0=a, xi = xi-1 +h , i = 1, 2.,.,n-1, xn=b, h =(b-a)/n}, (6.43)

где i=0, 1, 2,….,n узлы, h шаг сеточной области.

А искомая на [a, b] непрерывная функция y=y(x) на этой

сеточной области заменяется функцией дискретного аргумента

или таблицей чисел yi=y(xi), (i=0,1,…,n), которая называется

сеточной функцией Y{y0 , y1 ,.., yn }.

Сеточная функция Y{y0 , y1 ,.., yn } аппроксимирует точное решение y=y(x) на разностной сетке Ωn [9].

Численные методы не позволяют найти общего решения задачи. Они могут дать только какое-то частное решение. Это основной недостаток численных методов. Но зато эти методы

применимы к широкому классу дифференциальных уравнений и всем типам задач для них. А с появлением ЭВМ численные методы стали одним из основных способов решения этих задач.

Наиболее распространенными методами численного решения задачи Коши являются метод Эйлера и его модификации

методы Рунге Кутта [9, 13, 19].

6.3.1. Метод Эйлера

(геометрический метод решения задачи Коши)

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

169

Численные методы решения дифференциальных уравнений

Рассмотрим задачу Коши (6.37), (6.38) на отрезке [a,b] и будем заранее предполагать, что ее решение существует и единственно.

Введем на отрезке [a,b] равномерную сетку Wn (6.43) с шагом h. Обозначим через y(xi) точное решение, а через yi приближенное решение задачи в одинаковых узлах сетки.

Из условий задачи (6.37), (6.38) известно, что

y(x0 ) = y0 , y' (x0 ) = f (x0 , y0 ) .

Поэтому можно записать уравнение касательной к графику искомой функции y=y(x) в точке М(х0,y0):

y = y0 + (x - x0 ) × f (x0 , y0 ) .

(6.44)

Рассмотрим точку М1(х1,у1), точку пересечения

прямой

x=x1=x0+h и касательной (6.44). При достаточно малом шаге h ордината точки М1, определенная по формуле

y1 = y0 + h × f (x0 , y0 ) ,

(6.45)

мало отличается от y(x1) ординаты решения задачи в точке х1. И точку М1 можно принять приближенно за новую начальную точку, а через нее вновь проводить прямую, которая параллельна касательной к y=y(x) в точке (x1,y(x1)):

y = y1 + (x - x1 ) × f (x1 , y1 ) .

Находя точку пересечения этой прямой и прямой х=х2 , получим приближенное значение искомой функции y=y(x) для

х=х2, т.е.:

y2 = y1 + h × f (x1 , y1 ) .

Продолжая этот процесс получим рекуррентную формулу,

для вычисления приближенного решения задачи Коши на сеточной области Wn :

yi+1 = yi + h × f (xi , yi ), i = 0,1,..,n -1, y0 = y(x0 ) . (6.46)

170

Численные методы решения дифференциальных уравнений

Это равенство означает, что на отрезке [хi, xi+1] интегральная кривая у=у(х) приближенно

заменяется прямолинейным отрезком, выходящим из

точки Мi=М(xi, yi) с угловым коэффициентом f(xi, yi).

Рис. 6.7. Геометрическое

представление метода Эйлера

В качестве приближения искомой интегральной кривой получаем ломаную линию с вершинами в точках:

М0(x0, y0), М1(x1, y1),…, Мn(xn, yn),

поэтому этот метод иногда называют методом ломаных.

Доказывается [9, 13], что погрешность ε между приближенным значением решения yn и истинным значением y(xn)

удовлетворяет неравенству

 

ε =

 

yn

y(xn )

 

hM

[(1 + hN )n 1],

(6.47)

 

 

 

 

 

 

2N

 

 

 

 

 

 

 

 

 

где

М = max|f(x,y)|

для x [a, b],

 

 

N постоянная Липшица равная N = max|f /(x,y)|.

Формула (6.47) имеет в основном теоретическое применение. На практике, как правило, используют метод половинного шага. Находят численное решение задачи на сетке с шагом h и на сетке с шагом h/2. Если значения полученных решений (двух сеточных функций) в одинаковых узлах отличаются друг от друга не более чем на 1-5%, то полученную сеточную

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

171

(i) 3

Численные методы решения дифференциальных уравнений

Такая вычислительная схема хорошо программируется для работы на ЭВМ. В частности, эта схема эффективно реализуется с помощью приложения Microsoft Excel (см. раздел 6.6.1).

:Алгоритм метода Эйлера:

1.Задаем шаг h.

2.Вычисляем значение аргумента xi=x0+ih при (i=1,2,…,n).

3.Последовательно вычисляем приближенные значения решения yi+1 по формуле: yi+1 = yi + hf (xi , yi ) , ( i=0,1,…n-1).

6.3.2 Метод Рунге Кутта

Метод Рунге Кутта является одним из методов повышенной точности. Он имеет много общего с методом Эйлера [9, 13, 19].

Пусть дано дифференциальное уравнение (6.37) с начальным условием (6.38). Строится равномерная сетка Ωn по аргументу х на отрезке [a,b] с шагом h и рассматриваются числа:

k1(i) = h* f (xi , yi ),

k2(i) = h* f (xi + h / 2, yi + k1(i) k3(i) = h* f (xi + h / 2, yi + k2(i) k4(i) = h* f (xi + h, yi + k ).

/ 2),

(i=0,1,…,n)

(6.48)

/ 2),

 

 

Числа k1, k2, k3, k4 имеют простой геометрический смысл это с точностью до множителя угловые коэффициенты касательных,

проведенных к некоторым определяющим точкам искомой функции [19].

Согласно методу Рунге Кутта численные значения yi искомой функции y=y(x) вычисляются по формуле

y i +1 = y i +

1

[ k 1( i )

+ 2 k 2( i ) + 2 k 3( i ) + k 4( i )

6

 

 

 

], i = 0 ,1,2 ,..., n . (6.49)

Метод Рунге Кутта обладает значительной точностью и

несмотря на некоторую трудоемкость широко используется при численном решении дифференциальных уравнений с использованием ЭВМ.

172