Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция№8.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
753.66 Кб
Скачать

Метод ломаных

Рассмотрим задачу Коши (6) и выберем на отрезке [x0,X] некоторую, вообще говоря, неравномерную сетку x0 < x1 < … < xN = X. Разложим решение u(x) в ряд Тейлора на отрезке [xn,xn +1] в окрестности xn, тогда

, (16)

где n = 0,1,…,N  1.

Производные, входящие в (16) могут быть найдены путем дифференцирования уравнения (6), т.е.

(17)

Схема решения дифференциального уравнения (16), (17) однако мало употребительна, т.к. вычисления высших производных согласно (17) может оказаться затруднительным, а если правая часть известна с какой либо погрешностью, то результат и вовсе не определен.

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

(18)

В (18) приближенное решение дифференциального уравнения (6) в точке xn обозначено символом yn в отличие от точного значения un = u(xn). Согласно схеме ломаных, задавая начальное значение y0 = u0, находим по формуле (18) y1, y2 и т.д. yN. Отметим, что схему ломаных часто также называют схемой Эйлера.

На рис.1 приведена геометрическая интерпретация метода ломаных. Приближенное решение из точки (xn,yn) движется по касательной к интегральной кривой, в точке (xn +1,yn +1) решение движется по новой касательной к новой интегральной кривой и т.д. В результате получается ломаная линия, изображающая приближенное решение исходного уравнения.

Рис.1. Геометрическая интерпретация метода ломаных

Для исследования сходимости метода ломаных предположим наличие непрерывности и ограниченности правой части f(x,u) и ее первых производных, т.е. , а согласно (17) .

Определим погрешность приближенного решения метода ломаных zn = ynun. Вычитая уравнение (17) из (18), находим

(19)

Рекурсивная зависимость (19) позволяет выразить погрешность на каждом шаге через погрешность начальных данных:

. (20)

При малых значениях шагов сетки произведения, входящие в (20), могут быть без потери точности переписаны в виде:

.

С учетом вышеуказанного представления, уравнение (20) может быть представлено в виде:

, (21)

где h(t) — некоторая непрерывная функция, равная hn в узлах xn. Если начальное условие выбрано точно, то погрешность начального данного z0 = y0u0 отсутствует, т.е. z0 = 0. Проводя далее оценку погрешности в (21), находим

, (22)

где

(22)

Согласно (22), погрешность стремится к нулю при , т.е. методом ломаных действительно можно получить приближенную оценку решения дифференциального уравнения (6), при этом численное решение равномерно сходится к точному решению с первым порядком точности по h. Хотя оценка величины M(xn) в (22) является мажорантной, т.е. завышенной, наличие экспоненты в данной оценке говорит о том, что решение по схеме Эйлера может оказаться плохо обусловленным алгоритмом.

Изучим поведение оценки погрешности (22), (22) на примере численного решения уравнения вида:

. (23)

Уравнение (23) имеет точное решение , которое сравним с приближенным решением yn, которое определим на равномерной сетке xn = (n  1)h, n = 1,…,N, где шаг сетки h = 1/(N  1). Изучим зависимость величины константы (22)

(24)

от шага сетки. Согласно теоретическим оценкам величина M(1) не должна зависеть от величины шага h при h  0.

На листинге_№4 приведен код программы вычисления зависимости величины (24) от шага сетки.

Листинг_№4

%Программа изучения погрешности численного

%решения дифференциального уравнения

%u'=f(x,u) методом Эйлера (методом ломаных)

%очищаем рабочее пространство

clear all

%задаем набор сеток расчета уравнения u'=xu

Mesh=10:10:10000;

%организуем цикл расчета методом ломаных

%на разных сетках

for k=1:length(Mesh)

%определяем параметры сетки

N=Mesh(k); h=1.0/(N-1);

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

y(1)=1;

%применяем алгоритм метода ломаных

for n=1:(N-1)

y(n+1)=y(n)+(n-1)*h^2*y(n);

end

%вычисляем величину M(1) в оценке

%погрешности численного решения

M(k)=abs(y(N)-exp(0.5))/h;

step(k)=h;

end

%рисуем зависимость величины M(1) от шага

%разностной сетки (при изображении зависимости

%необходимо перейти в логарифмический масштаб

%по оси абсцисс)

plot(step,M);

На рис.2 приведен итоговый график зависимости. Видно, что при стремлении шага сетки к нулю действительно величина M(1) ведет себя как константа.

Рис.2. Изучение погрешности метода ломаных