
Информатика 2 сессия / Численные методы решения задач строительства на ЭВМ
.pdf
Численные методы решения дифференциальных уравнений
разнообразны. Одной из важнейших задач проектирования является исследование напряженно-деформированного состояния
элементов строительных конструкций и связанные с ним расчеты на прочность. В градостроительстве при проектировании системы водоснабжения городов необходим анализ течения грунтовых вод.
Знание температурных полей необходимо для вычисления количества теплоты, подводимой к телу или отводимой от него. Кроме того, температурные поля влияют на распределение напряжений в конструкциях.
Математическая модель любой из этих задач может быть получена из общего квазигармонического уравнения,
описывающего разнообразные физические явления в неизотропной среде, т.е. такой среде, свойства которой различны в разных направлениях:
¶ æ |
¶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 |
¶x2¶y2 |
¶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(n−1) ) . |
(6.33) |
задача Коши состоит в нахождении решения y=y(x), удовлетворяющего начальным условиям:
y |
0 |
= y(x |
0 |
); |
y/ |
= y/ (x ) ;….; y(n−1) |
= y(n−1) (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

Численные методы решения дифференциальных уравнений
Такая вычислительная схема хорошо программируется для работы на ЭВМ. В частности, эта схема эффективно реализуется с помощью приложения 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