книги / Численные методы решения задач строительства. Ч. 2
.pdfПоскольку найти точное решение этой задачи не составляет особого труда (у = exp(x2)), то на рис. 7.9 видно, что вторая итерация «ближе» к точному решению
Рис. 7.8. Приближенные решения задачи Коши (сравнение двух приближений h = 0,2 и h = 0,1)
а |
б |
Рис. 7.9. Сравнение приближенных решений задачи Коши по методу Эйлера с точным решением: h = 0,2 (а); h = 0,1 (б)
Алгоритм метода Рунге–Кутта
Методом Рунге–Кутта решим ту же задачу Коши (7.27).
Последовательность действий
Порядок решения аналогичен предыдущей задаче
(рис. 7.10).
21
1.Задаем значения шага h, х0 и у0. Вычисляем значение аргумента (узлов) xi = x0 + ih при (i = 1, 2,…, n).
2.Последовательно вычисляем коэффициенты по
формулам (7.25) и приближенные значения yi решения y = y(x) по формуле (7.26).
Схема решения для h = 0,2 приведена на рис. 7.10.
Рис. 7.10. Схема решения задачи Коши методом Рунге–Кутта
Первое приближенное решение (первая итерация) нашей задачи Коши для шага h = 0,2 и точное ее решение – тонированы (см. рис. 7.10).
Расчетная схема для h = 0,1 строится аналогично. Полученное приближенное решение имеет вид
Xi |
|
0 |
0,1 |
0,2 |
0,3 |
0,4 |
0,5 |
0,6 |
0,7 |
0,8 |
0,9 |
1 |
Yi(h/2) |
1,000 |
1,008 |
1,037 |
1,089 |
1,166 |
1,273 |
1,419 |
1,613 |
1,871 |
2,214 |
2,673 |
|
|
Сравнение |
полученных приближенных |
решений |
для |
h = 0,1 и h = 0,2 показывает, что разница между ними не превосходит5 %.
Таким образом, в качестве решения исходной задачи Коши принимаем вторую итерацию (с шагом h = 0,1).
22
7.3. Численные методы решения краевых задач
Краевую задачу можно сформулировать так:
Найти функцию y = y(x), которая внутри отрезка [a, b] удовлетворяетобыкновенному дифференциальному уравнению
F(x, y, y', y") 0 , |
(7.28) |
а на концах отрезка – краевым условиям
1[ y(a), y'(a)] 0, |
(7.29) |
|
2[ y(b), y'(b)] 0. |
||
|
Точное решение краевых задач удается получить лишь для немногих частных случаев. Поэтому общий способ их решения заключается в использовании различных приближенных методов. В настоящее время наиболее широкое распространение получили численные методы, в основе которых лежит метод сеток.
Сущность метода сеток состоит в аппроксимации искомой непрерывной функции совокупностью приближенных значений, рассчитанных в некоторых точках области – узлах. Совокупность узлов, соединенных определенным образом, образует сетку. Сетка, в свою очередь, яв-
ляется дискретной моделью области определения искомой функции.
Применение метода сеток позволяет свести краевую задачу к системе алгебраических (линейных или нелинейных) уравнений относительно неизвестных узловых значений функций.
Наиболее часто на практике используются два метода сеток:
1)метод конечных разностей (МКР);
2)метод конечных элементов (МКЭ).
23
Воснове МКР лежит конечно-разностная аппрокси-
мация производных в определяющих уравнениях задачи.
Воснове МКЭ лежит вариационный подход, т.е. решение основной вариационной задачи – исследование экс-
тремума функционала, связанного с физической сущностью задачи.
Существуют и другие подходы к построению численного решения краевых задач, например, переход от исход-
ного дифференциального уравнения к эквивалентному ин-
тегральному уравнению, подлежащему дальнейшим преобразованиям. Примером указанного подхода служит метод граничных элементов (МГЭ), который в данном пособии не рассматривается.
Если поведение конструкции или явления описывается единственным дифференциальным уравнением, то приближенное решение можно получить как методом конечных элементов, так и методом конечных разностей. Если же конструкция в целом неоднородна и состоит из большого числа отдельных конструктивных элементов, поведение каждого из которых описывается своим дифференциальным уравнением, то в этом случае чаще всего применяют метод конечных элементов.
7.3.1 Метод конечных разностей
Метод конечных разностей является универсальным численным методом решения краевой задачи. При реализацииМКР:
–область непрерывного аргумента заменяется дискретным множеством точек, разностной сеткой n (7.13);
–искомая непрерывная функция y=y(x) заменяется се-
точной функцией {(xi, yi), i = 0, 1, …, n}, все производные,
входящие в дифференциальное уравнение и краевые усло-
24
вия, заменяются конечно-разностными аналогами, выраженными через значения искомой функции в узлах сетки.
Этот процесс называется конечно-разностной аппроксимацией (КРА);
– в результате КРА краевая задача заменяется системой линейных алгебраических уравнений, решение которой дает значенияискомойсеточнойфункции {(xi, yi), i = 0, 1, …, n}.
Конечно-разностная аппроксимация – основное понятие теории разностных схем. Это наиболее распространенный прием численного интегрирования как обыкновенных, так и дифференциальныхуравненийвчастных производных.
Начнем с КРА функции одной переменной. Рассмотрим функцию y = y(x), непрерывную на отрез-
ке [a,b]. На область непрерывного аргумента x нанесем разностную сетку n (рис. 7.11).
Рис. 7.11. КРА функции одной переменной
Функцию непрерывного аргумента y = y(x) заменим функцией дискретного аргумента на данной сетке сеточ-
ной функцией Y{y0 , y1,.., yn}, где yi = y(xi), i = 0, 1, ..., n.
Производная функции y = y(x), по определению, есть предел отношения приращения функции y к прираще-
нию аргумента x при x 0 :
25
y' lim y .
x 0 x
В численных расчетах с достаточной степенью точности для малых значений x можно принять
y' yx .
Рассмотрим аппроксимацию производной функции y = y(x) длясеткиспостояннымшагомh, т.е. полагаем x h .
Геометрический смысл производной – тангенс угла наклона касательной в точке (см. рис. 7.11).
Запишем выражения для первой производной функции в точке xi. В зависимости от способа вычисления конечных разностей получаются разные формулы для вычисления производной в одной и той же точке, а именно:
y |
' |
yi 1 yi 1 |
– центральная разностная формула, |
(7.30) |
|||
|
|
||||||
i |
|
|
2h |
|
|
|
|
|
|
|
|
|
|
|
|
y' |
yi yi 1 |
|
– левая разностная формула, |
(7.31) |
|||
|
|||||||
i |
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
y ' |
yi 1 yi |
|
– правая разностная формула. |
(7.32) |
|||
|
|
||||||
i |
|
|
h |
|
|
|
|
|
|
|
|
|
|
|
Можно найти также выражения для старших производных:
y'' y ' ' |
yi' 1 yi' |
( yi 1 yi ) h ( yi yi 1) h |
|
|
|
|
|||
i |
i |
h |
h |
(7.33) |
|
|
yi 1 2yi yi 1 . h2
Аналогично определяются производные высших порядков в конечных разностях.
26
7.3.2. Разностная схема краевой задачи для обыкновенного дифференциального уравнения
2-го порядка
Рассмотрим |
линейное дифференциальное |
уравнение |
||||||||||||||||
второго порядка |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y" p(x) y' q(x) y f (x) |
(7.34) |
||||||||||||||||
с линейными краевыми условиями |
|
|
|
|
|
|
|
|
|
|||||||||
|
0 y(a) 1 y'(a) A, |
(7.35) |
||||||||||||||||
|
0 y(b) 1 y'(b) B, |
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
||||||||||||
где p(x), q(x), |
f(x) – непрерывные |
на [a, b] |
функции; |
|||||||||||||||
0 , 1, A, 0 , 1, B – заданные числа, |
не равные нулю од- |
|||||||||||||||||
новременно, причем |
|
0 |
|
|
|
1 |
|
0, |
|
0 |
|
|
|
1 |
|
0 . |
|
|
|
|
|
|
|
|
|
|
|
Краевые условия (7.35) в общем случае задают линейную связь между значением искомого решения и его производной на концах отрезка [a, b] в отдельности.
В частном случае, если 1 1 0 , то на концах от-
резка [a, b] задано значение искомого решения. Такое краевое условие является краевым условием I рода.
Если 0 0 0 , то на концах отрезка заданы значения производной решения. Это краевое условие II рода.
Вобщем случае, когда j 0 , j 0 , условие назы-
ваются краевым условием III рода.
Вотличие от имеющей всегда единственное решение задачи Коши, в которой только на одном конце задаются условия для искомой функции и ее производной, краевая задача (7.34), (7.35) может иметь или одно решение, или бесконечное множество решений, или, наконец, может со-
всем не иметь решений. Не акцентируя внимание на этой
27
проблеме, будем считать, что линейная краевая задача имеет единственное решение, непрерывное на отрезке [a, b] вместе с производными до 2-го порядка включительно.
Область изменения аргумента x [a, b] заменяем разно-
стной сеткой (дискретной сеточной областью) n (7.13), (см. рис. 7.11) и вводим обозначения
pi p(xi ), |
qi q(xi ), |
fi f (xi ), |
|
yi y(xi ), |
yi' y'(xi ), |
yi'' y''(xi ), |
(i 0,1, ..., n). |
Конечно-разностные выражения (7.30)–(7.33) подставляем в дифференциальное уравнение (7.34) и краевые условия (7.35). При этом во внутренних узлах сетки производные y', y" заменяем их конечно-разностными отношениями (7.30),
(7.33), а в граничных точках x0 a, xn b , чтобы не выходить за пределыотрезка[a, b], соответственно
y ' |
y1 y0 |
, |
y'' |
|
yn yn 1 |
. |
|
|
|||||
0 |
h |
|
n |
|
h |
|
|
|
|
|
В результате этого решение краевой задачи сведено к решению системы линейных алгебраических уравнений
относительно (n+1) неизвестных y0 , y1,..., yn .
|
yi 1 |
2yi |
yi 1 |
|
p |
yi 1 yi 1 |
q y |
f |
, (i 1, 2,..., n 1), |
|||||||||||
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
h |
2 |
|
|
|
|
|
|
|
|
|
i |
2h |
i i |
i |
|
|
|
|
|
|
|
|
|
y y |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
0 |
|
|
|
|
|
(7.36) |
||||||
0 y0 |
1 |
|
|
1 |
|
|
|
A, |
|
|
||||||||||
|
|
|
h |
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
y |
|
|
|
|
|
|
|
|
|
||||
|
|
y |
|
|
|
|
n |
y |
n 1 |
B. |
|
|
|
|||||||
|
0 |
n |
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
1 |
|
|
|
|
h |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Переход от краевой задачи (7.34)–(7.35) к системе линейных алгебраических уравнений (7.36) называется ко-
нечно-разностной аппроксимацией краевой задачи или
разностной схемой, в которой искомой является сеточная функция Y{y0 , y1,.., yn} на сетке n.
28
После соответствующих преобразований систему (7.36) можно привести к виду
|
|
|
|
b |
|
y |
|
c |
y |
|
A, |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
0 |
0 |
|
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
ai |
yi 1 bi yi ci |
yi 1 fi , |
|
i 1, 2, ..., n 1, |
(7.37) |
|||||||||||||||||||
|
|
|
|
a |
n |
y |
n 1 |
b |
y |
n |
B, |
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
a |
1 |
|
|
pi |
|
, |
b q |
|
2 |
, |
c |
1 |
|
|
pi |
, |
i 1, 2, ..., n 1, |
(7.38) |
||||||||||
h2 |
2h |
|
|
h2 |
h2 |
2h |
||||||||||||||||||||||
i |
|
|
|
|
i |
|
|
i |
|
|
i |
|
|
|
|
|
|
|
|
|
||||||||
b 0 |
h 1 , |
|
c |
1 , |
a |
1 |
|
, |
b |
|
0h 1 . |
(7.39) |
||||||||||||||||
0 |
|
|
h |
|
|
|
|
|
0 |
|
h |
|
n |
|
|
|
h |
|
|
n |
h |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
В матричной форме система (7.37) имеет вид |
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(7.40) |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A Y |
D, |
|
|
|
|
||||||||
где |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b0 |
c0 |
|
|
|
a |
b |
c |
|
|
|
1 |
1 |
1 |
|
|
|
a2 |
b2 |
c2 |
A |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
an 1 |
bn 1 |
|
|
|
||
|
|
|
|
a |
|
|
|
|
n |
cn 1 bn
a b
|
|
|
|
A |
|
|
|
|
|
|
|
f |
|
|
|
|
|
|
|
f |
1 |
|
|
, |
_ |
|
|
2 |
|
, |
|
D |
|
|
|
||||
|
|
|
|
|
|
||
|
|
f |
n 1 |
|
|
||
|
|
|
|
|
|
||
|
|
|
B |
|
|
c
|
|
y0 |
|
||
|
|
y |
|
||
|
|
y |
1 |
|
|
_ |
|
2 |
|
||
Y |
|
|
|
. |
|
|
|
|
|
||
|
y |
n |
1 |
|
|
|
|
|
|
||
|
|
y |
n |
|
|
|
|
|
|
|
Матрица А системы линейных алгебраических уравнений (7.37) является трехдиагональной. Для решения систем такого вида разработан специальный метод прогонки (см. подразд. 3.2.2, ч. I). В результате решения определяются не-
известные y0 , y1,..., yn 1, yn , т.е. значения искомой функции y = y(x) вузлахравномерной сеткизаданного отрезка [a, b].
Пример. Методом конечных разностей решим краевую задачу
29
y" + (1 + x2) y = –1, |
|
y(0) = 0, y'(1) = 0. |
(7.41) |
Данная краевая задача представляет собой дифференциальное уравнение для изгибающего момента балки y = y(x) с переменным поперечным сечением и шарнирно закрепленнымлевымижесткозаделаннымправымконцами(рис. 7.12).
Продемонстрируем по-
строение конечно-разност- ной аппроксимации для этой
|
краевойзадачи |
|
|
|
Для |
грубого решения |
|
Рис. 7.12. Изгибаемая |
построим |
сеточную |
об- |
балка |
ласть с шагом h = |
0,25: |
|
|
5{0; 0,25; 0,5; 0,75; 1}. |
Введем обозначения: y0 = y(0); y1 = y(0,25); y2 = y(0,5); y3 = y(0,75); y4 = y(1).
Таким образом, нужно определить пять значений неизвестной функции: y0, y1, y2, y3, y4.
Подставляя конечно-разностные отношения (7.30)– (7.33) в краевую задачу (7.41), получим СЛАУ относительно неизвестных y0, y1, y2, y3, y4:
для i = 0 (х = 0) |
|
y0 0 , |
|
|
|
|
|
||||
для i = 1 |
(х = 0,25) |
|
y0 2y1 y2 |
|
(1 0, 252 ) y |
1, |
|||||
0, 252 |
|
||||||||||
|
|
|
|
|
|
1 |
|
||||
дляi = 2 (х = 0,5) |
y1 2y2 y3 |
|
(1 0,52 ) y |
2 |
1, (7.42) |
||||||
0, 252 |
|||||||||||
|
|
|
|
|
|
|
|||||
для i = 3 |
(х = 0,75) |
|
y2 2y3 y4 |
|
(1 0,752 ) y |
1 , |
|||||
|
|
|
|
||||||||
|
|
0, 252 |
|
|
|
|
3 |
|
|||
для i = 4 |
(х =1) |
|
y4 y3 |
0 . |
|
|
|
|
|
||
0, 25 |
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
30