Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
V_ChISLITYeL_NAYa_MATYeMATIKA.doc
Скачиваний:
20
Добавлен:
17.04.2019
Размер:
956.42 Кб
Скачать

Тема 5. Интегрирование дифференциальных уравнений.

1. Постановка задачи.

Дано уравнение F(x, y, y', y''…y(n))=0 (1). Здесь x – аргумент, y – функция. Общий интеграл (общее решение) записывается в виде Φ(x, y, c1, c2…cn)=0 (2). Здесь ci – произвольные постоянные. Решение (2) при фиксированных ci называется частным решением. Для выделения из общего решения частного необходимо задать n условий, называемых начальными. Пусть начальные условия заданы в виде y(k)(x0)=y0k, где k=0, 1…n-1 (3). Задачей Коши называется задача интегрирования (1) с начальными условиями (3). Иначе задача Коши называется задачей с начальными условиями. Численное решение задачи Коши – это отыскание для x0, x1…xn значений f(x0), f(x1)…f(xn), т. е. построение таблицы y(x). Численные методы интегрирования дифференциальных уравнений делятся на шаговые (Эйлера, Рунге-Кутта, Гилла) и разностные (Адамса, Милна, Штернера, Гаусса) методы. Обычно уравнение (1) разрешают относительно старшей производной, т. е. y(n)=f(x, y, y',y''…y(n-1)) (4). Его общий интеграл запишется в виде y=φ(x, c1, c2…cn) (5). Таким образом, займемся решением задачи Коши для уравнения (4) с начальными условиями (3).

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

Пусть дано дифференциальное уравнение первого порядка. =y'=f(x, y(x)) (6) и начальное условие y(x0)=y0 (7). Решение уравнения (5) в конечном итоге сводится к интегрированию обыкновенного дифференциального уравнения вида (6) с начальным условием (7). Существование и единственность решения дается специальной теоремой из математического анализа. Будем предполагать, то ее условия выполняются, т. е. решение существует. Построим систему равноотстоящих узлов x0, x1…xn, где xi=x0+ih, h=const>0. Проинтегрируем (6) на отрезке [xi, xi+1].

'dx= (x, y(x))dxy(xi+1)=y(xi)+ (x, y(x))dx.

Если в интеграле принять f(x, y(x))=const=f(xi, y(xi)), то по квадратурной формуле левых прямоугольников получим y(xi+1)≈y(xi)+(xi+1-xi)•f(xi, y(xi)); y(xi+1)≈y(xi)+h•f(xi, y(xi)).

Это шаговая формула, т. е. для вычисления последующего значения необходимо знать предыдущее. Перейдем к сеточному представлению функции (т. е. приближенному решению) заменив yi≈y(xi). Получим yi+1=yi+Δyi; Δyi=h•f(xi, yi) xi=x0+ih; i=0, 1…N (8).

Это формула Эйлера. Геометрическая интерпретация метода довольно проста. В точке M(x0, y0) к отыскиваемой функции строится касательная. Затем ищется точка M1, как пересечение касательной и прямой x=x1. Пусть O1 – точка пересечения прямых x=x1 и y=y0. Рассмотрим треугольник MO1M1. O1M1=MO1•tg(O1MM1)=h•y'(x0)=h•f(x0, y0); - = -y0=h•f(x0, y0); =y0+h•f(x0, y0)=y1. Следующий шаг – построение касательной в точке M1 к кривой из семейства решений и отыскание точки пересечения этой касательной с прямой x=x2. Затем – построение касательной в точке M2 и так далее. Таким образом, в зависимости от начальных условий, получим частное решение семейства. MM1M2… называется ломаной Эйлера. Пусть M1' – точка на истинной кривой решения. Тогда M1M1' – погрешность метода (совпадает с шагом метода).

3. Сходимость и устойчивость метода Эйлера.

Пусть есть уравнение (6) y'=f(x, y) и начальное условие y(x0)=y0. Если xi=x0+ih, то yi+1=yi+h•f(xi, yi) (8). Пусть y(xi) – точное решение (6) в точке xi, а yi – точное решение уравнения (8). Погрешность метода на i-том шаге εi=yi-y(xi). Метод называют сходящимся, если εi→0 при h→0, т. е. сходимость – уменьшение погрешности с уменьшением шага. Доказана теорема, что h→0 на любом конечном отрезке метод Эйлера сходится, т. к. εi< •(exp(k(xi-x0))-1). Здесь M и k – некоторые оценочные константы. Неустойчивостью называют накопление погрешности вычислений в результате неточности вычислений на каждом шаге. Метод Эйлера устойчив. Доказано что если на первом шаге погрешность вычислений = -y0, то на i-том шаге | |≤exp(k(xi-x0))•| |, т. е. погрешность имеет тот же порядок малости, что и шаг (εi≈h). Таким образом, Метод Эйлера имеет первый класс точности.

4. Усовершенствования метода Эйлера.

Легко видеть, что при всей его сходимости и устойчивости обладает слишком большой погрешностью. В частности, если производная функции знакопостоянна и положительна, то решение по методу Эйлера будет все время ниже истинного решения. Очевидно, можно уменьшать шаг h до тех пор, пока погрешность не станет меньше заданной. Но это приведет к столь малому шагу, что очень сильно возрастет объем вычислений, и метод потеряет свое основное преимущество – простоту. Этот недостаток метода связан с тем, что мы вычисляем значение функции только в текущей точке и не пытаемся предугадать, характер изменения функции в будущей точке.

4.1. Алгоритм Эйлера-Коши.

Пусть есть уравнение (6) y'=f(x, y) и начальное условие y(x0)=y0 (*) Построим численное решение на системе узлов x0, x1…xn ,где xi+1=x0+ih. Проинтегрируем (*) на отрезке [xi, xi+1] 'dx= (x, y(x))dx. По формуле трапеций, y(xi+h)-y(xi)≈ •(f(xi, y(xi))+f(xi+1, y(xi+1))); y(xi+h)≈y(xi)+ •(f(xi, y(xi))+f(xi+1, y(xi+1))) (**)

Уравнение (**) можно рассматривать как уравнение, описывающее y(xi+1) неявно, т. е. y(xi+1)≈B•y(xi+1).

Поскольку выразить y(xi+1) удается крайне редко, то получим его по методу Эйлера и подставим в (**) y(xi+h)≈y(xi)+h•f(xi, y(xi)); y(xi+h)≈y(xi)+ •(f(xi, y(xi))+f(xi+1, y(xi)+h•f(xi, y(xi)))).

Перейдем к сеточному представлению, обозначив xi+1=xi+h; y(xi)=yi; y(xi+1)=yi+1.

Таким образом, формулы Эйлера-Коши имеют вид

yi+1*=yi+h•f(xi, yi); yi+1=yi+ •(f(xi, yi)+f(xi+1, yi+1*)).

Этот метод имеет второй класс точности, т. е. εi~h2. Геометрический смысл метода состоит в следующем. Пусть A – точка с координатами (x0, y0) (начальная точка). В этой точке к кривой из семейства решений проводится касательная. Точка B – точка пересечения этой касательной с прямой x=x1. В точке B проводится новая касательная к кривой из семейства решений. Если α – угол с положительным направлением оси Ox первой касательной, а β – угол с положительным направлением оси Ox второй касательной, то следующая точка будет пересечением прямой x=x1 и прямой из точки B, угол с положительным направлением оси Ox которой γ удовлетворяет условию tg(γ)= . Пусть С – точка пересечения этой прямой с прямой x=x1, а точка D – точка пересечения прямой y=y0 и прямой x=x1. Из треугольника ACD следует, что CD=AD•tg(γ)=h• = •(y'(x0)+y'(x1))= •(f(x0, y0)+f(x1, y1*)). Т. к. CD=yC-y0, то yC=y0+ •(f(x0, y0)+f(x1, y1*))=y1.

4.2. Алгоритм модифицированного метода Эйлера.

Пусть есть уравнение (6) y'=f(x, y) и начальное условие y(x0)=y0 (*) Построим численное решение на системе узлов x0, x1…xn ,где xi+1=x0+ih. Проинтегрируем (*) на отрезке [xi, xi+1] 'dx= (x, y(x))dx. По формуле центральных прямоугольников, y(xi+h)-y(xi)= (x, y(x))dx≈h•f(xi+ , y(xi+ )); y(xi+h)≈y(xi)+h•f(xi+ , y(xi+ )). После интегрирования появится неизвестная y(xi+ ). Ее найдем методом Эйлера с шагом . y(xi+ )≈y(xi)+ •f(xi, y(xi)); y(xi+h)≈y(xi)+h•f(xi+ , y(xi)+ •f(xi, y(xi))). Перейдем к сеточному представлению, обозначив xi+h/2=xi+1/2; y(xi+ )=yi+1/2; y(xi+h)=yi+1. Таким образом, формулы модифицированного метода Эйлера имеют вид yi+1/2=yi+ •f(xi, yi); yi+1=yi+h•f(xi+1/2, yi+1/2). Этот метод также имеет второй класс точности. Геометрический смысл метода состоит в следующем. Пусть M – точка с координатами (xi, yi) (текущая точка). В этой точке к кривой из семейства решений проводится касательная. Пусть эта касательная имеет угол αi с положительным направлением оси Ox. Из точки пересечения этой касательной и прямой x=xi+1/2 проводится новая касательная, которая имеет угол αi+1/2 с положительным направлением оси Ox. Новая точка M1 будет точкой пересечения прямой x=x1 с прямой, имеющей угол αi+1/2 с положительным направлением оси Ox, проведенной из точки M,

4.3. Усовершенствованный метод Эйлера-Коши с последующей итерационной обработкой.

Метод более точен, чем метод Эйлера-Коши. На каждом шаге производится итерационная обработка каждого найденного значения yi. В начале выбирается грубое приближение yi(0)=yi+h•f(xi, yi). Далее строится итерационный процесс yi+1(k)=yi+ •(f(xi, yi)+f(xi+1, yi+1(k-1))). Итерации продолжаются до тех пор, пока два приближения yi+1(k) и yi+1(k+1) не совпадут в интересующем вычислителя количестве знаков. После этого полагают yi+1=yi+1(k).

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

Пусть имеется система y'=f(x, y, z),z'=g(x, y, z) с начальным условием y(x0)=y0, z(x0)=z0.

Перейдем к сеточному представлению, обозначив y(xi)≈yi; z(xi)≈zi. Тогда yi+1=yi+Δyi; zi+1=zi+Δzi; Δyi=h•f1(xi, yi, zi); Δzi=h•f2(xi, yi, zi).

5. Метод Рунге-Кутта.

Одним из методов повышенной точности является метод Рунге-Кутта. Этот метод основан на прогнозе и коррекции тангенса угла наклона касательной.

Пусть есть уравнение (6) y'=f(x, y), начальное условие y(x0)=y0 и отрезок интегрирования, который можно разбить на n частей, получив шаг h= . Общая идея шаговых методов состоит в том, что значение в следующей точке находится исходя из значения в предыдущей точке, т. е. yi+1, как и в методе Эйлера, определяется по формуле yi+1=yi+Δyi. Разложим y(xi+h) в ряд Тейлора в окрестности точки xi. y(xi+h)=y(xi)+h•y'(xi)+ •y''(xi)+ •y'''(xi)+ •y(4)(xi)+…

Ограничимся членами до h4 и вычислим Δyi.

Δyi=y(xi+h)-y(xi)=h•y'(xi)+ •y''(xi)+ •y'''(xi)+ •y(4)(xi), где y''(xi), y'''(xi), y(4)(xi) находят дифференцированием уравнения (1).

Идея Рунге состоит в том, чтобы искать решение Δyi в виде Δi=a1k1(i)+a2k2(i)+a3k3(i)+a4k4(i)+…, где k1(i)=h•f(xi, yi); k2(i)=h•f(xi+b1•h, yi+c1k1(i)); k3(i)=h•f(xi+b2•h, yi+c2k2(i)); k4(i)=h•f(xi+b3•h, yi+c3k3(i)); …

При этом Δi должно совпадать с точностью до членов малости заданной степени h с остатком ряда Тейлора Δyi=h•y'(xi)+ •y''(xi)+…

Рассмотрим идею метода на примере метода второго порядка, т. е. Δi=h•y'(xi)+ •y''(xi), а членами более высоких порядков малости пренебрежем.

ΔiТейл=h•y'(xi)+ •y''(xi)+0(h3); Δi=a1k1(i)+a2k2(i) (*); k1(i)=h•f(xi, yi); k2(i)=h•f(xi+b1•h, yi+c1k1(i)). Индекс (i) у коэффициентов можно опустить.

Разложим k2 в ряд Тейлора с точностью до второго порядка малости.

k2=h•fi+h2•b1 +h•c1k1 +0(h3); k1=h•fi; k2=h•fi+h2•b1 +h2•c1fi .

Подставим k1 и k2 в (*).

Δi=h•a1fi+h•a2fi+h2•a2b1 +h2•a2c1fi ; ΔiТейл=h•yi'+ •yi''=h•fi+ • + •fi .

Сравнивая Δi и ΔiТейл, получим a1+a2=1; a2b1= ; a2c1= . Эта система имеет бесконечное множество решений. Если положить a1=a2= , то b1=c1=1. Тогда k1=h•f(xi, yi) – формула Эйлера. k2=h•f(xi+h; yi+k1); Δ= •(f(xi, yi)+f(xi+h; yi+k1)); yi+1=yi+Δ – формула Эйлера-Коши. Можно взять и другие значения коэффициентов a1 и a2, получив другие значения k1 и k2, но можно строго показать, что такие значения коэффициентов являются оптимальными.

Метод Рунге-Кутта 4-того порядка.

Если Δi=a1k1+a2k2+a3k3+a4k4, то k1=h•f(xi, yi); k2=h•f(xi+ , yi+ ); k3=h•f(xi+ , yi+ ); k4=h•f(xi+h, yi+k3), т. е. b1=b2=c1=c2= ; b3=c3=1.

Значения коэффициентов a1=a4= ; a2=a3= .

Таким образом, рабочие формулы метода k1(i)=h•f(xi, yi); k2(i)=h•f(xi+ , yi+ ); k3(i)=h•f(xi+ , yi+ ); k4(i)=h•f(xi+h, yi+k3(i)); yi+1=yi+ (k1(i)+2k2(i)+2k3(i)+k4(i)). Метод имеет четвертый класс точности. Недостаток метода в том, что для вычисления каждого значения yi+1 требуется четыре вычисления правой части дифференциального уравнения, поэтому если у уравнения правая часть сложна, то применяют более эффективные методы.

Метод можно применять и для систем дифференциальных уравнений. Пусть имеется система y'=f(x, y, z), z'=g(x, y, z) с начальным условием y(x0)=y0, z(x0)=z0. Определим значения Δyi, Δzi. Δyi= (k1(i)+2k2(i)+2k3(i)+k4(i)); Δzi= (e1(i)+2e2(i)+2e3(i)+e4(i)); k1(i)=h•f(xi, yi); e1(i)=h•g(xi, yi); k2(i)=h•f(xi+ , yi+ ); e2(i)=h•g(xi+ , yi+ ); k3(i)=h•f(xi+ , yi+ ); e3(i)=h•g(xi+ , yi+ ); k4(i)=h•f(xi+h, yi+k3(i)); e4(i)=h•g(xi+h, yi+e3(i)). yi+1=yi+Δyi; zi+1=zi+Δzi.

6. Экстраполяционный метод Адамса (Разностный метод Адамса).

При решении дифференциальных уравнений методом Рунге-Кутта требуется многократные вычисления правой части для каждого yi+1. Если правая часть дифференциального уравнения сложна, то применение метода Рунге-Кутта неоправданно. Метод Адамса не требует многократного вычисления правой части дифференциального уравнения. Пусть имеется уравнение y'=f(x, y(x)) с начальным условием y(x0)=y0, которое требуется проинтегрировать на отрезке [a, b]. Построим систему равноотстоящих узлов, разбив [a, b] на n частей. Тогда xi=x0+ih. Проинтегрируем заданное дифференциальное уравнение на промежутке [xi, xi+1]. yi+1=yi+ 'dx или Δyi= 'dx. Заменим y' интерполяционным полиномом Ньютона в конце таблицы, ограничившись тремя конечными разностями.

y'(t)=y'i+tΔy'i-1+ •Δ2y'i-2+ •Δ3y'i-3, где t= .

Если x(xi, xi+1), то t(0, 1); dx=hdt. Подставим y'(t) в выражение для Δyi, получим Δyi=h• y'i+tΔy'i-1+ •Δ2y'i-2+ •Δ3y'i-3)dx=h•(y'i+ •Δy'i-1+ •Δ2y'i-2+ •Δ3y'i-3) – формула Адамса. Эту формулу можно преобразовать.

Δyi= •(24y'i+12•Δy'i-1+10•Δ2y'i-2+9•Δ3y'i-3).

Т. к. Δy'i-1=y'i-y'i-1; Δ2y'i-2=y'i-2y'i-1+y'i-2; Δ3y'i-3=y'i-3y'i-1+3y'i-2-y'i-3, рабочая формула метода Адамса имеет вид yi+1=yi+ •(55y'i-59y'i-1+37y'i-2-9y'i-3).

Метод имеет четвертый класс точности. Для нахождения первого значения по методу Адамса требуется знание решения в четырех предыдущих точках, т. е. требуется знание так называемых стартовых или опорных точек, которые находятся другими методами, класс точности которых не ниже четырех.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]