Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



Требуется численно решить задачу Коши (с начальными условиями) для системы обыкновенных дифференциальных уравнений:

 

Все последующее изложение будем вести для одного уравнения:

(10)

 

Все сказанное без труда (и практически без каких-либо изменений) переносится на случай нескольких уравнений.

 

Метод Эйлера

 

Итак, требуется найти решение задачи(10).

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

 

 

 

Кривая изображена пунктирной линией, поскольку она нам заранее неизвестна.

 

Основная идея численных методов решения задачи Коши содержится в методе Эйлера.

В окрестности точки ( ). Неизвестная функция может быть приближенно представлена формулой Тейлора:

,

что соответствует построению линейной функции, касательной к искомой функции y(x) в точке ( ).

Поэтому, если взять достаточно близко к и обозначить , то

Но величина также известна — ее можно вычислить из самого дифференциального уравнения . В итоге получим

(11)

Теперь решение (хотя и приближенно) известно в точке ( ). Поэтому можно повторить все предыдущие рассуждения и найти решение в следующей точке

И вообще

(12)

Можно повторять эти вычисления, получив последовательность значений , которая будет приближенно представлять решение данной задачи Коши.

Это и есть метод Эйлера.

 

Очевидно, чем меньше h (который называется шагом интегрирования), тем точнее будет решение.

Более того, можно заметить, что в формуле Тейлора ошибка e на каждом шаге имеет порядок . Если на всем отрезке интегрирования длиной L выполнить n шагов, то суммарная ошибка E будет суммой ошибок на всех отдельных шагах, то есть

То есть метод Эйлера имеет точность порядка O(h). Точную оценку получить затруднительно (она зависит от вида функции в правой части дифференциального уравнения), однако, полученная качественная информация оказывается очень полезной.

Уточнения метода Эйлера (методы второго порядка точности)

 

Чем обусловлена ошибка метода Эйлера?

Если бы производная от искомой функции не изменялась бы на отрезке , то касательная в точке ( ) точно бы совпадала с интегральной кривой, и метод Эйлера дал бы точное решение. Значит, ошибка связана с тем, что указанная производная на отрезке не постоянна. Поэтому естественно попытаться как-то учесть это изменение. Самым простым способом учесть такое изменение является попытка вычислить некоторое среднее значение этой производной на отрезке .

Это можно сделать несколькими способами.

 

а) вычислим среднее арифметическое значение производной в точках ( ) и ( ):

(13)

 

Эти рассуждения проиллюстрированы на рисунке 5.

 

 

 

 

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

(14)

 

Эти рассуждения проиллюстрированы на рисунке 6.

 

 

Рисунок 6.

Можно показать, что оба последних метода имеют точность порядка , то есть если уменьшить величину шага h в 10 раз, то погрешность решения уменьшится в 100 раз.

 

31) MathCad. Решение задачи Коши для одного дифференциального уравнений.

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

Для численного решения одиночного дифференциального уравнения в MathCAD имеется функция Odesolve, с помощью которой может быть решена как задача Коши для обыкновенного дифференциального уравнения, так и граничная задача. Эта функция входит в состав блока решения и сявляется его заключительным ключевым словом.

Odesolve(x, b, [step]) - Возвращает функцию, которая является решением дифференциального уравнения. Используется в блоке с оператором Given.
x - переменная интегрирования, действительное число
b - конечная точка отрезка интегрирования
step - величина шага по переменной интегрирования (необязательный аргумент)

Замечания:

Уравнение должно быть линейным относительно старшей производной.

Число заданных начальных или граничных условий внутри блока должно быть равно порядку уравнения.

При записи уравнения для обозначения производных функции используйте специальные кнопки с панели Math или ' (штрих) - [Ctrl+F7], для знака равенства = [Ctrl+=] (в том числе и для дополнительных условий).

Конечная точка должна быть больше начальной.

Не допускаются начальные и граничные условия смешанного типа (f '(a)+f(a)=5).

Искомая функция в блоке дложна быть обязательно с аргументом ( f(x))

32) ) MathCad. Решение задачи Коши для систем дифференциальных уравнений..

Для численного решения задачи Коши для дифференциальных уравнений и систем могут быть использованы функции:

rkfixed(y, x1, x2, n, F) - возвращает матрицу решений системы уравнений методом Рунге-Кутта 4-го порядка при фиксированном шаге по x

rkadapt(y, x1, x2, n, F) - ищет решение с переменным шагом ( там, где решение меняется медленнее, шаг увеличивается, а в области быстрого изменения решения шаг функции уменьшается). Возвращается решение с равным шагом. Функция работает быстрее, чем rkfixed

Bulstoer(y, x1, x2, n, F) - дает более точное решение (методом Bulirsch-Stoer)

Агрумкнты вышеуказанных функций:
y - вектор начальных условий
x1, x2 - границы интервала для поиска решения
n - количество точек на интервале
F(x, y) - вектор-функция первых производных

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

В результате работы укзанных функций рассчитывается матрица, количество стобцов которой равно порядку уравнения +1(или сумме порядков уравнений в системе +1), а количество строк равно параметру n. Первый столбец содержит значения независимой переменной, второй - значение функции, третий - для диф. уравнений 2-го порядка - значение производной искомой функции (если решается система двух уравнений 1-го порядка, то третий столбец будет содержать значения второй функции). Для выделения решений (функций или их производных) можно воспользоваться стандартным оператором вывода столбцов матрицы M< > Если матрица правых частей дифференциальных уравнений почти вырождена, то такие системы называются жесткими. В этом случае решения, возвращаемые функцией rkfixed будет неустойчивым и для решения таких систем необходимо применять функции Stiffb, Stiffr

Stiffb(y, x1, x2, n, F, J) - ищет решение диф. уравнения или системы дифференциальных уравнений методом Bulirsch-Stoer

Stiffr(y, x1, x2, n, F, J) - ищет решение диф. уравнения или системы дифференциальных уравнений методом Rosenbrock

Первые пять аргументов такие же, как и при решении хорошо обусловленных систем дифференциальных уравнений. Дополнительный аргумент - матрица J размером nx(n+1), первый столбец которой содержит частные производные dF/dx, остальные столбцы и строки представляют собой матрицу Якоби dF/dy

Для отыскания решения системы диф. уравнений только в конечной точке используются функции bulstoer, rkadapt, stiffb, stiffr (начинаются с прописной буквы). Первые три параметра и пятый (F) этих функций те же, что идля функции Rkadapt. Дополнительные параметры:
acc - параметр, контролирующий точность решения (реком. асс=0.001)
kmax - максимальное число промежуточных точек в которых ищется решение
save - минимально допустимый интервал между точками, в которых ищется решение

 

 


Поделиться:



Последнее изменение этой страницы: 2017-03-14; Просмотров: 536; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.02 с.)
Главная | Случайная страница | Обратная связь