Слайд 1Решение обыкновенных дифференциальных уравнений
Слайд 3обыкновенные дифференциальные уравнениЯ
Начальная задача (задача Коши)
Краевая задача
Слайд 4Задача Коши — одна из основных задач теории дифференциальных уравнений;
состоит в нахождении решения (интеграла) дифференциального уравнения (системы дифференциальных уравнений),
удовлетворяющего начальным условиям (начальным данным).
В задаче Коши область, в которой должно быть определено искомое решение, заранее не указывается.
Слайд 6Дискретное пространство – это совокупность узлов сетки, характеризуемых шагом (const
или нет) и означаемым h-параметром
Модель:
разобьём ось х на промежутке
(0,1] на М равных частей и получим дискретное пространство
Слайд 7Записанная в таком виде задача представляет собой аппроксимацию дифференциального уравнения
на дискретном пространстве h (на сетке h).
Слайд 8Если в правой части стоит функция общего вида f(x,y(x)), то
наша схема запишется таким образом:
Это схема Эйлера
Слайд 9Конфигурацию узлов, используемую для разностной записи уравнений на сетке, называют
шаблоном.
Шаблон, используемый на предыдущем слайде для аппроксимации – двухточечный.
Разностная формула
представляет собой разностную схему для модельной дифференциальной задачи на дискретном пространстве h (или просто на сетке).
Слайд 10Поскольку начальное значение функции U известно, это U0, то решение
в любой точке нашего дискретного пространства находится по формуле:
Значение сеточной
функции в последней точке промежутка:
Значение сеточной функции в произвольной точке промежутка:
Слайд 11Если значение функции в точке, полученное в результате решения разностного
уравнения стремиться, при уменьшении шага, к значению в этой точке
функции, полученной в результате решения исходного дифференциального уравнения, то говорят, что имеется
сходимость.
Слайд 12Погрешность использованной разностной схемы будет порядка h.
Или иначе: данная
разностная схема имеет первый порядок точности.
Слайд 14Записанная в таком виде задача представляет собой аппроксимацию дифференциального уравнения
на на дискретном пространстве h (на сетке h).
Типы разностей!!!!!
Слайд 16Формальные определения.
Введем следующие обозначения:
LU=f – дифференциальная задача
(1)
U(x) - искомое решение ( пусть непрерывное)
L
- заданный дифференциальный оператор
f - заданная функция (правая часть)
ω(h) - совокупность узлов разностной сетки, принадлежащая дискретному пространству D (считаем, что по любому направлению шаг постоянен).
h - шаг сетки
U(h) - сеточная функция
LhU(h)=f(h) , Lh – заданный разностный оператор (2)
Сравнению функций U(x) и U(h) препятствует их разная функциональная природа. Снесём U(x) на сетку:
проектирование решения на сетку
Слайд 17Сходимость: решение разностной задачи (2) U(h) сходится к решению задачи
(1) если
в пространстве сеточных функций.
Если ,
то
имеет место сходимость порядка “k”.
Слайд 18Аппроксимация: разностная задача (2) аппроксимирует (1) на решение U(x), если
где Fh - пространство сеточных функций правых частей, т.е.
и
δf(h) - погрешность аппроксимации или невязка или если существуют такие C1, k1, большие нуля, что
то имеет место аппроксимация порядка
Слайд 19Другая формулировка: - разностная задача устойчива, если
Устойчивость:
Слайд 20Теорема Лакса: из аппроксимации и устойчивости следует сходимость.
Слайд 21Метод Рунге-Кутты
Семейство схем Рунге-Кутты основано на различной аппроксимации неизвестных аргументов
y (tn) в правых частях дифференциальных уравнений f(t,y).
Классический метод
Рунге-Кутты используют для расчета стандартных моделей достаточно часто, так как при небольшом объеме вычислений он обладает точностью метода Ο4(h).
Данный метод не применим для жестких ОДУ.
Слайд 22Схемы Рунге-Кутты IV порядка точности
Слайд 23Метод Адамса-Бэшфорта
Метод основан на аппроксимации интерполяционными полиномами правых частей ОДУ.
В зависимости от типа экстраполяции будут получаться алгоритмы различного порядка
аппроксимации.
Методы Адамса-Бэшфорта могут быть как явными так и неявными.
Данный метод не применим для жестких ОДУ.
Слайд 24Схема Адамса-Бэшфорда
При решении ОДУ на n-м шаге численного решения имеем
точную формулу интегрирования:
Для построения схемы по значениям функции, вычисленным в
n предшествующих узлах, строится интерполяционный полином – Ln-1(x), который используется при интегрировании дифференциального уравнения. Интеграл при этом выражается через квадратурную формулу:
Слайд 25Схема Адамса-Бэшфорда
Схема 2-шагового алгоритма получается при использовании линейной экстраполяции по
2-м предыдущим точкам
Схема 4-шагового алгоритма получается при использовании кубической экстраполяции
Слайд 26Метод Булишера-Штера.
Основная идея: Метод строит рациональную интерполирующую функцию, которая
в точке h/2 проходит через состояние системы после двух таких
шагов, в точке h/4 проходит через состояние системы после четырех таких шагов, и т. д., а затем вычисляет значение этой функции в точке h = 0, проводя экстраполяцию. Гладкость правых частей приводит к тому, что вычисленное при помощи экстраполяции состояние системы оказывается очень близко к действительному, а использование рациональной экстраполяции вместо полиномиальной позволяет повысить точность.
После проведения одного шаг принимается решение, следует ли изменять шаг, а если да, то в какую сторону.
Считается, что метод Булирша— Штера часто оказывается более эффективным для поиска гладких решений, чем метод Рунге-Кутты.
Слайд 27Что такое жесткие системы ОДУ?
В данном курсе ограничимся следующим
понятием жесткости системы: система будет жесткой, если на всем промежутке
интегрирования с помощью явных схем необходимо вести интегрирование с очень малым шагом.
Жесткость системы проявляется тогда, когда длина промежутка интегрирования, T, удовлетворяет соотношению :
где λmax — наибольшее по абсолютной величине собственное число матрицы системы, записанной в виде: y’=A∙y.
Слайд 28Алгоритмы решения для жестких систем ОДУ
Алгоритм Розенброка - является одношаговым
и явным. Однако при пересчет каждого шага требуется:
во-первых, численное
определение производных функции правых частей (в случае системы ОДУ правая часть - это вектор);
во-вторых, решения системы линейных уравнений (поскольку искомые компоненты вектора yn+1 входят в матричное уравнение в линейной комбинации).
Слайд 29Алгоритмы решения для жестких систем ОДУ
В Mathcad реализованы так же:
алгоритм RADAU5 – алгоритм решения систем ОДУ любого типа (в
том числе и жестких) основанный на неявном методе Рунге-Кутты 5-го порядка с помощью квадратур Радау
адаптированный для жестких систем метод Булишера-Штера
алгоритм BDF – метод обратного дифференцирования
Слайд 30Решения ОДУ в Mathcad
Оdesolve
- предназначенная для решения дифференциальных
уравнений, линейных относительно старшей производной.
Оdesolve решает для записанных в
общепринятом в математической литературе виде дифференциальных уравнений:
a(x)y(n)+F(x,y,y',.y(n-1))=f(x)
задачу Коши y(x0 )=y0 , y'(x0 )=y0,1 , y''(x0 )=y0,2 , ..., y(n-1)(x0 )=y0,n-1
или простейшую граничную задачу y(k) (a)=ya,k y(m) (b)=yb,k , 0<= k<= n-1, 0<= m<= n-1.
Слайд 31Функция Оdesolve по умолчанию решает поставленную задачу гибридным решателем: метод
Адамса/метод обратного дифференцирования
Для решения задачи методом Рунге-Кутты с фиксированным шагом
нужно щелкнуть в рабочем документе по имени функции правой кнопкой мыши и пометить во всплывающем меню пункт Fixed.
Для решения задачи методом Рунге-Кутты автоматическим выбором шага пометить во всплывающем меню пункт Adaptive.
Для решения жестких систем во всплывающем меню необходимо выбрать пункт Radau.
Слайд 32Обращение к функции для решения одного уравнения имеет вид :
Given
Формулировка
уравнений и начальных/граничных условий
Y:=Оdesolve(x,b,step)
Y - имя функции, содержащей значения
найденного решения,
x — переменная интегрирования,
b — конец промежутка интегрирования,
step — шаг, который используется при интегрировании уравнения. Данный параметр необязателен и может быть опущен.
Слайд 33При вводе уравнения и условий задачи используется знак символьного равенства
(+).
Для записи производных можно использовать:
оператор дифференцирования из меню математического анализа.
знак
производной, например, вторую производную можно вводить в виде y''(x) (штрих записывается как +).
В любом случае необходимо обязательно записывать аргумент искомой функции.
Слайд 34Начальная точка промежутка интегрирования
Конечная точка промежутка интегрирования
Значение функции в начальной
точке промежутка интегрирования
Правая часть ОДУ
Ключевое слово начала блока решения
Запись ОДУ
Запись
граничного условия
Присвоение результатов решения ОДУ
Слайд 35Вывод решения ОДУ на график при использовании
блока Given-Odesolve
Слайд 36В Mathcad решить задачу Коши для не жесткой системы ОДУ
можно так же с помощью следующих функций:
Adams(y, x1, x2,
npoints, D, {acc}) —решение задачи на отрезке методом Адамса;
rkfixed(y, x1, x2, npoints, D) —решение задачи на отрезке методом Рунге—Кутты с постоянным шагом;
Rkadapt(y, x1, x2, npoints, D) —решение задачи на отрезке методом Рунге—Кутты с автоматическим выбором шага;
Bulstoer(y, x1, x2, npoints, D) —решение задачи на отрезке методом Булирша-Штера .
Слайд 37В Mathcad решить задачу Коши для жестких ОДУ можно с
помощью функций:
BDF(y, x1, x2, npoints, D, {J},{acc}) —решение задачи
на отрезке методом обратного дифференцирования (backward differentiation formula );
Radau(y, x1, x2, npoints, D, {J},{M},{acc}) —решение задачи Radau5;
Stiffr(y, x1, x2, D, AJ) — решение задачи для жестких систем на отрезке с использованием алгоритма Розенброка;
Stiffb(y, x1, x2, D, AJ) —решение задачи для жестких систем на отрезке с использованием алгоритма Булирша—Штера;
Слайд 38В Mathcad c 14 версии существует гибридный метод:
AdamsBDF(y, x1,
x2, npoints, D, {J},{acc})
В функции определяется тип системы
:
жесткая/нежесткая
и выбирается соответственный решатель.
Переключение осуществляется автоматически.
Слайд 39y — вектор начальных условий ;
x1, x2 — начальная и
конечная точки отрезка интегрирования системы; для функций, вычисляющих решение в
заданной точке, x1 — начальная точка, x2 — заданная точка;
npoints — число узлов на отрезке [x1, x2]; при решении задачи на отрезке результат содержит npoints+1 строку;
D — имя вектор-функции D(x,y) правых частей, записанное через элементы искомого вектора;
Слайд 40J — имя матрицы-функции J(x,y) размерности n x (n+1), в
первом столбце которой хранятся выражения частных производных по x правых
частей системы, а в остальных n столбцах содержится матрица Якоби правых частей:
Может быть вычислен с помощью функции Jacob (D(x,y),x)
acc — параметр, контролирующий погрешность решения при автоматическом выборе шага интегрирования (если погрешность решения больше acc, то шаг сетки уменьшается; шаг уменьшается до тех пор, пока его значение не станет меньше save );
AJ — матрица, в которой слиты два Якобиана- по аргументу и по неизвестной функции augment (Jacob (D(x,y),x), Jacob (D(x,y),y));
Слайд 41Результат работы функций :
матрица, содержащая n+1 строк;
ее первый
столбец содержит координаты узлов сетки,
второй столбец — вычисленные приближенные
значения решения y1 (x) в узлах сетки,
(k+1) -й — значения решения yk (x) в узлах сетки.
Слайд 42При использовании функций библиотеки DES (Differential Equation Solving) дифференциальные уравнения,
входящие в систему, должны иметь первый порядок (то есть содержать
только первые производные).
Все уравнения должны быть предварительно разрешены относительно производных и записаны в нормальной форме вида:
Слайд 43Для преобразования уравнений в нормальную форму есть два основных подхода:
Понижение
порядка уравнений путем замены переменных.
Приведение системы дифференциальных уравнений к
явному виду путем ее решения относительно производных
Слайд 46Решение краевых задач.
Решение краевых задач для систем ОДУ методом стрельбы
в Mathcad достигается применением двух встроенных функций. Первая предназначена для
двухточечных задач с краевыми условиями, заданными на концах интервала:
sbval (z,x0,x1, D, load, score)
— поиск вектора недостающих L начальных условий для двухточечной краевой задачи для системы N ОДУ.
z — вектор размера Lx1, присваивающий недостающим начальным условиям (на левой границе интервала) начальные значения;
х0 — левая граница расчетного интервала;
x1 — правая граница расчетного интервала;
load(x0,z) — векторная функция размера Nx1 левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z;
score (x1, у) — векторная функция размера Lx1, выражающая L правых граничных условий для векторной функции у в точке x1;
D(x,y) — векторная функция, описывающая систему N ОДУ, размера Nx1 и двух аргументов — скалярного х и векторного у. При этом у — это неизвестная векторная функция аргумента х того же размера Nx1.
Слайд 47Решение краевых задач в Mathcad реализовано не совсем очевидным образом.
Необходимо помнить, что число элементов векторов х0 и load равно
количеству уравнений N, а векторов z, score и результата действия функции sbval— количеству правых граничных условий L. Соответственно, левых граничных условий в задаче должно быть (N-L) .
Начальное значение фактически является параметром численного метода и поэтому может решающим образом повлиять на решение краевой задачи.
ВНИМАНИЕ! Метод стрельбы не годится для решения жестких краевых задач. Поэтому алгоритмы решения жестких ОДУ в Mathcad приходится программировать самому
Слайд 49Краевая задача. Алгоритм стрельбы.
Краевая задача сводится к задаче Коши:
Слайд 54 z1 — вектор, присваивающий недостающим начальным условиям на левой
границе интервала начальные значения.
z2 — вектор того же
размера, присваивающий недостающим начальным условиям на правой границе интервала начальные значения.
х0 — левая граница расчетного интервала.
x1 — правая граница расчетного интервала.
xf — точка внутри интервала.
Dо(х,у) — векторная функция, описывающая систему N ОДУ размера Nx1 и двух аргументов — скалярного х и векторного у. При этом у — это неизвестная векторная функция аргумента х того же размера Nx1.
load1(x0,z) — векторная функция размера Nx1 левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z.
load2(x1,z) — векторная функция размера Nx1 левых граничных условий, причем недостающие начальные условия поименовываются соответствующими компонентами векторного аргумента z.
score (xf, у) — векторная функция размера Nx1, выражающая внутреннее условие для векторной функции у в точке xf.