Конечно-разностные методы
Применение конечно-разностных методов к краевым задачам в основном сводится к довольно тривиальной процедуре. Любая производная в дифференциальном уравнении заменяется соответствующей конечно-разностной аппроксимацией.
Рассмотрим, например, линейное дифференциальное уравнение вида
y'' + p(x)y' +q(x)y = f(x), a < x < b (6.20)
с граничными условиями
x=a: a1y(a) +b1y'(a)=g1; (6.21)
x=b: a2y(b) +b2y'(b)=g2. (6.22)
Введем на отрезке [a, b] разностную сетку a = x0, x1, x2,…, xN = b с шагом .
В каждой внутренней точке заменим производные центральными разностями (аппроксимация порядка O(h2)). Получаем систему разностных уравнений:
(6.23)
k=1, 2, … ,N–1.
Построим разностную аппроксимацию краевых условий со вторым порядком точности. Для этого разложим y1 в ряд Тейлора в окрестности точки x0:
Отсюда .
Аналогично для точки xN-1.
.
Разностные уравнения (6.2) вместе с граничными соотношениями составляют систему из N+1 линейных алгебраических уравнений с N+1 переменной y0, y1, …, yN.
y0 + l1y1 = m1;
akyk–1 + ckyk + bkyk+1 = dk; k=1…N–1;(6.24)
l2yN–1 + yN = m2;
где ak = 1 – pk; ck = h2qk –2; bk = 1 + pk; dk = h2fk.
Или в развернутом виде:
Таким образом, краевая задача сводится к решению системы уравнений c трехдиагональной матрицей:
Ay = d.
Мы уже знаем, что для решения СЛАУ с трехдиагональной матрицей используется метод прогонки. Известно, что для устойчивости прогонки необходимо диагональное доминирование матрицы коэффициентов, т.е.
|ck| ³ |ak| + |bk|; 1 ³ |l1|; 1 ³ |l2|
или в нашем случае
| h2qk – 2| ³ |1–hpk /2| + |1+hpk /2|.
Из этого соотношения можно получить ограничение на шаг для конкретных значений qk, pk.
Сходимость же решения (и область сходимости) необходимо исследовать особо. Или – другой путь. Провести расчет для разных значений шага (не менее трех) и убедиться в том, что полученные значения функции в одних и тех же узлах близки между собой и их разность уменьшается, что говорит о стремлении решения к некоторому пределу при h®0.
Если же краевая задача нелинейная (нелинейно уравнение и/или граничные условия), то в результате применения конечно-разностного метода получается система нелинейных уравнений
A(x,y)y = d(x,y) или F(y) = 0.
Для решения систем нелинейных уравнений используются в основном итерационные способы, например метод Ньютона:
y(m+1) = y(m) – F(y(m))/F′(y(m)),
где F′(y(m)) – матрица Якоби.
Метод стрельбы
Суть метода стрельбы заключается в сведении решения краевой задачи к решению задач Коши.
Рассмотрим его применение на примере той же задачи (6.20).
Обозначим z(x)=y¢.Получаем краевую задачу для системы из двух дифференциальных уравнений первого порядка:
(6.25)
Зададим произвольно еще одно условие, например, на левой границе: y(a)=x.
Тогда .
Следовательно, мы можем начать решение задачи Коши для системы из двух уравнений. Решаем каким-либо из известных нам методов, например, методом Рунге-Кутта и находим решение в точке x=b. Естественно, это решение получилось у нас зависящим от x: yN(x), zN(x). Более того, это решение должно удовлетворять правому граничному условию (при x=b), т.е. необходимо, чтобы
a2yN(x) + b2zN(x) = g2 или F(x) = 0. (6.26)
Таким образом, наша задача свелась к поэтапному улучшению первоначальной оценки граничного условия y(a) = x до тех пор, пока условие (6.26) не выполнится, т.е. к «пристрелке».
В общем случае уравнение (6.26) нелинейно и решается относительно x любым из известных способов решения нелинейных уравнений (итераций, Ньютона, половинного деления и т.п.). Функция F(x) в явном виде неизвестна, однако ее значение можно вычислить для любого заданного x путем решения задачи Коши.
Таким образом, процесс реализации метода стрельбы можно разбить на три этапа:
1) подбор хорошего начального приближения для x;
2) нахождение эффективного метода вычисления F(x);
3) выбор соответствующего итерационного метода для решения уравнения F(x)=0.
Если система уравнений (6.25) содержит больше двух уравнений, то недостающих условий на каком-либо конце отрезка интегрирования будет больше, чем одно.
(6.27)
В этом случае поступают аналогичным образом.
Во-первых, выбирают границу с большим числом заданных граничных условий, пусть это будет x=a, а недостающие задают произвольным образом: yi(a)=xi, i=k+1,…,n.
Во-вторых, решают задачу Коши и находят
, j=1,…, n.
Теперь на правой границе необходимо решать систему нелинейных (в общем случае) уравнений
или F(x) = 0 (6.28)
для нахождения необходимых значений xi. Эта задача также решается одним из известных методов (метод Ньютона, методы спуска).
Решение задачи Коши, при котором выполнится (6.28), и будет решением краевой задачи.
Отметим еще следующее. «Пристрелку» можно вести и с двух концов одновременно, задавая произвольным образом недостающие граничные условия на обоих концах отрезка и решая задачу Коши одновременно с двух сторон (из точки х=а и x=b). Некоторая точка встречи решений называется точкой сшивания (x=xm). В этой точке должны выполняться условия сшивания:
F(x) º yi(a, xm, x) – yi(b, xm, x) = 0.
Правильный выбор положения точки xm позволяет преодолеть некоторые трудности, которые возникают в процессе практического интегрирования уравнений.
Если система дифференциальных уравнений неустойчива в одном направлении, то можно проводить интегрирование в противоположном направлении, выбрав в качестве точки сшивания соответствующий конец отрезка. Если система неустойчива в обоих направлениях, то влияние неустойчивости можно минимизировать, смещая точку сшивания к середине отрезка интегрирования.
Отметим также, что метод стрельбы малопригоден, если имеется сильная зависимость функции F(x) от начального значения x. В этом случае следует очень точно определять это начальное значение, что не всегда возможно.
Дата добавления: 2020-10-25; просмотров: 328;