Численное решение систем обыкновенных дифференциальных уравнений курсовая

Численное решение систем обыкновенных дифференциальных уравнений курсовая

С другой стороны, из формул (1.15) и (1.16)

и окончательная формула для ошибки ограничения запишется в следующем виде:

Можно вывести гауссовы формулы численного интегрирования более высоких порядков, предусматривая большее количество ординат и вводя различные весовые коэффициенты Ai :

В общем случае, при (n + 1) ординате, получается точная формула для нахождения интеграла от многочлена степени 2n + 1.

Оказывается, что значения ?i в уравнении (1.17) являются корнями полиномов Лежандра степени n . По этой причине вышеописанный метод численного интегрирования часто называют методом Лежандра — Гaycca. Полиномы Лежандра Рn (? ) можно найти с помощью рекуррентных формул

Например, для m = 2

Заметим, что корни Р2(?) равны , как мы уже определили ранее.

Весовые коэффициенты в формуле (18) можно найти из следующего соотношения:

В качестве примера возьмем n = 2, так что , и . При этом

и совершенно аналогично А1 = 1.

В общем случае ошибка ограничения определяется формулой

Итак, метод Гаусса позволяет достичь большей точности, нежели формула Симпсона при том же количестве ординат, но зато точки, где следует определять эти ординаты, полностью определены и совершенно не зависят от произвола программиста. Как и во многих других случаях, при численном интегрировании приходится делать выбор между простотой формулы Симпсона и возможной экономией машинного времени при использовании метода Гаусса. На практике чаще используется метод Симпсона.

.4 Численные примеры и сравнение методов

Рассмотрим следующий интеграл:

Программа вычисления в системе Matlab приведена в Приложении 1. Результат решения:

a = 1; b = 1; x0 = 1; xn = 3; n = 100; h = 0.020000000000000;

метод трапеций: s = 0.250007291505220

аналитические решения: s = 0.250000000000000

метод Симпсона: s = 0.250000000645597

квадратурные формулы Гаусса: s = 0.249997523978987

метод Чебышева: s = 0.249974640808074

Выводы имеют общий характер.

. Формула Симпсона при n ординатах дает примерно ту же степень точности, что и формула трапеций при 2n ординатах.

. Метод Гaycca при n ординатах дает примерно ту же степень точности, что и формула Симпсона при 2n ординатах.

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

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

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

2. Численное решение обыкновенных дифференциальных уравнений

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

Среди множества численных методов решения дифференциальных уравнений наиболее простые — это явные одношаговые методы. К ним относятся различные модификации метода Рунге-Кутта.

Постановка задачи: Требуется найти функцию у = у (х ), удовлетворяющую уравнению

и принимающую при х = х0 заданное значение у0:

При этом решение необходимо получить в интервале х0 £ х £ хк. Из теории дифференциальных уравнений известно, что решение у(х) задачи Коши (2.3), (2.4) существует, единственно и является гладкой функцией, если правая часть F(x, y) удовлетворяет некоторым условиям гладкости. Численное решение задачи Коши методом Рунге-Кутта 4-го порядка заключается в следующем. На заданном интервале [х0, хк] выбираются узловые точки. Значение решения в нулевой точке известно у(х0) = у0. В следующей точке у(х1) определяется по формуле

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

Решить задачу Коши

Выполним решение данной задачи с помощью программы ode45. Вначале в М-файл записываем правую часть уравнения (2.7), сам М-файл оформляется как файл — функция, даем ему имя :

Для численного решения задачи Коши в окне команд набираются следующие операторы.

>>[X Y] = ode45 ( @ F , [0 1] , [1] ) ;

% Дескриптор @ обеспечивает связь с файлом — функцией правой части

% [0 1] — интервал на котором необходимо получить решение

% [0,1] — начальное значение решения

>> % Последняя команда выводит таблицу численного решения задачи.

Программа вычисления в системе Matlab приведена в Приложении 2. Результат решения:

График решения задачи Коши (2.7) показан на рис. 4.. В программе ode45 по умолчанию интервал разбивается на 40 точек с шагом h = 1/40 = 0.025; xend =1.

Рис. 4. График решения задачи Коши.

3. Решение систем линейных алгебраических уравнений

Системы уравнений появляются почти в каждой области прикладной математики. В некоторых случаях эти системы уравнений непосредственно составляют ту задачу, которую необходимо решать, в других случаях задача сводится к такой системе. Если задана некоторая произвольная система уравнений, то без предварительного исследования нельзя сказать, имеет ли она какое-либо решение и, в случае если решение существует, является ли оно единственным. На этот вопрос существуют три и только три ответа.

. Решение системы уравнений существует и является единственным. Например,

Решение этой системы х = 1 и у = 2. никакие другие значения х и у не способны одновременно удовлетворить этим двум уравнениям. В этой главе мы будем в основном рассматривать именно такие системы уравнений, т. е. имеющие единственное решение. Геометрически эта система уравнений представлена на рис. 5, где видно, что две прямые линии, соответствующие двум уравнениям, пересекаются в одной и только в одной точке. Координаты этой точки как раз и представляют собой искомое решение.

. Система уравнений вообще не имеет решения. Например,

Рис. 5. Геометрическое представление системы двух линейных уравнений, имеющей единственное решение. Прямые линии, соответствующие уравнениям системы образуют между собой довольно большой угол.

На рис. 6 показаны прямые линии, соответствующие этим двум уравнениям. Две прямые параллельны, они нигде не пересекаются, и система уравнений не имеет решения.

Рис. 6. Геометрическое представление системы двух линейных уравнений, не имеющей решения. Прямые линии параллельны.

. Система уравнений имеет бесконечное множество решений. Например,

Как видно из рис. 7, эти два уравнения описывают одну и ту же прямую линию. Любая точка, лежащая на этой линии, является решением такой системы уравнений, например: (х = 0, у = 2), (х = 1, у = 4/3) и т. д.

Системы уравнений типа 2 и 3 называются вырожденными. Иногда непосредственно из поставленной задачи бывает ясно, что система уравнений не может быть вырожденной. Если же, как это бывает в большинстве случаев, соответствующая информация отсутствует, то приходится или проверять вырожденность системы уравнений в процессе решения, или исследовать такую возможность непосредственно непосредственная проверка состояла бы в вычислении определителя системы, тогда равенство определителя нулю прямо указывало бы на вырожденность.

Рис. 7. Геометрическое представление системы двух линейных уравнений, имеющей бесконечное множество решений. Оба уравнения изображаются одной и той же прямой линией.

С точки зрения обычной математики система линейных уравнений всегда является или вырожденной, или невырожденной. С точки же зрения практических вычислений могут существовать почти вырожденные системы, при решении которых получаются недостоверные значения неизвестных. Рассмотрим систему уравнений:

Эта система имеет единственное решение х = 1; у = 1. Теперь рассмотрим пару значений неизвестных х = 2,415; у = 0. При подстановке этих значений в исходные уравнения получаем

После округления до двух значащих цифр правые части равенств (3.4) совпадают с правыми частями исходных уравнений. А так как исходные уравнения были заданы только с точностью до двух значащих цифр, то решение (3.4) так же хорошо отвечает условиям поставленной задачи, как и решение х = 1; у = 1.

Рис. 8. Геометрическое представление системы двух линейных уравнений, которая является почти вырожденной. Прямые, соответствующие двум уравнениям, почти совпадают.

Дело в том, что две прямые линии, описываемые двумя уравнениями этой системы, почти параллельны, как это показано на рис. 8.. Точка х = 2,415; у = 0 хотя и не лежит ни на одной из этих прямых линий, но очень близка к ним.

Системы типа (3.3) называются плохо обусловленными . В любом случае, когда две линии (либо плоскости и гиперплоскости) почти параллельны, система уравнений становится плохо обусловленной. В этом случае найти численное решение системы трудно, а точность его весьма сомнительна. Более того, система из трех и более уравнений может оказаться плохо обусловленной, даже если никакие плоскости не являются параллельными или почти параллельными 1). Вне зависимости от геометрической интерпретации обусловленность системы можно исследовать при ее решении методом Гаусса или с помощью специальной проверки.

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

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

Пусть задана система п линейных алгебраических уравнений с п неизвестными:

Система уравнений (3.5) в матричной форме представляется следующим образом:

где А — квадратная матрица коэффициентов, размером п ´ п строк и столбцов;

Х — вектор-столбец неизвестных;

В — вектор-столбец правых частей.

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

Недостатком метода является накапливание погрешностей в процессе округления, поэтому метод Гаусса без выбора главных элементов используется обычно для решения сравнительно небольших (п £ 100) систем уравнений с плотно заполненной матрицей и не близким к нулю определителем. Если матрица А сильно разрежена, а ее определитель не близок к нулю, то метод Гаусса пригоден для решения больших систем уравнений. В MATLAB имеется обширный арсенал методов решения систем уравнений (3.5) методом исключения Гаусса. Для этого применяются следующие операторы дают решения ряда систем линейных уравнений АХ = В, где А — матрица размером m ´ n , В — матрица размером п ´ к .

Решить систему линейных уравнений:

Программа вычисления в системе Matlab приведена в Приложении 3. Результат решения:

4.000000000000000= 1.000000000000000 2.000000000000001 3.000000000000001 4.000000000000000= 1.000000000000000 2.000000000000000 3.000000000000000 4.000000000000000= 1.000000000000000 2.000000000000000 3.000000000000000 4.000000000000000

4. Численное решение уравнений

Нахождение корней уравнения — это одна из древнейших математических проблем, которая не потеряла своей остроты и в наши дни: она часто встречается в самых разнообразных областях науки и техники.

Рассмотрим общеизвестное квадратное уравнение:

говорят, что значения

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

Функция F(х) может быть алгебраической или трансцендентной; мы обычно будем предполагать, что она дифференцируема.

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

. Отыскание приближенного значения корня.

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

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

Численный метод, в котором производится последовательное, шаг за шагом, уточнение первоначального грубого приближения, называется методом итераций . Каждый шаг в таком методе называется итерацией . Если при последовательных итерациях получаются значения, которые все ближе и ближе приближаются к истинному значению корня, то говорят, что метод итераций сходится .

Предположим, что для простоты вычислений выбраем ? = xn . Тогда приобретает следующий вид:

xn+ 1 находим из. Формулы

Нетрудно видеть, что (4.3) эквивалентно простому методу последовательных приближений

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

. х0 выбрано достаточно близко к решению х = f(х) .

2. Производная не становится слишком большой.

. Производная не слишком близка к 1.

Это и есть знаменитый метод Ньютона-Рафсона. Обычно его записывают в более привычной форме:

Таким образом, мы возвращаемся к уравнению в форме (4.1), и условия сходимости принимают следующий вид:

. х0 выбрано достаточно близко к корню уравнения F(х) = 0 .

. Производная F»(х) не становится очень большой.

. Производная F'(х) не слишком близка к нулю.

Последнее условие означает, что никакие два корня не находятся слишком близко один к другому.

Рассмотрим геометрическое толкование метода Ньютона-Рафсона. В формуле (4.3) мы выбрали точку ? совпадающей с хn . На рис.9 это соответствует тому, что угол ? равен углу наклона касательной к у = f(х) в точке х = хn . Нахождение следующего приближения сводится при этом к тому, что проводится касательная к кривой у = f(х) в точке х = хn и отыскивается точка ее пересечения с прямой у = х . Эта точка и будет новым приближением хn+1 . Чтобы найти f(хn+1) , через значение xn +1 проводится вертикальная линия. После этого проводится новая касательная, точка пересечения которой с прямой у = х даст значение xn+2 .

Рис.9. Геометрическое представление метода Ньютона-Рафсона для f(х) = x .

Если уравнение задано в форме (4.1) и используется итерационная формула , то геометрически можно представить себе ход вычислений по рис.10. В этом случае отыскивается точка пересечения кривой у = F(х) с осью х.

Исходя из некоторого начального приближения хn , находим соответствующее ему значение F(хn) , проводим касательную к кривой у = F(x) и ищем точку пересечения этой касательной с осью х . Легко видеть, что эта точка и будет значением хn+1 из формулы, так как там и требуется провести через точку с координатами хn , F(хn) прямую с угловым коэффициентом F'(хn) и затем найти ее пересечение с осью х .

Рис.10. геометрическое представление метода Ньютона-Рафсона для F(х) = 0 .

Программа вычисления в системе Matlab приведена в Приложении 4. Результат решения:

0 1 2 3 4 5 6 7

1 0 -1 4 45 176 475 1044

В заключение отметим, что представленные примеры использования возможностей MATLAB в решении различных научно-технических проблем являются лишь небольшой иллюстрацией значительно большего потенциала системы.

Система MATLAB представляет собой уникальный сплав универсальных программных и алгоритмических средств с широкой гаммой специализированных приложений. Входной язык и среда программирования MATLAB очень близки к современным системам визуального программирования на базе универсальных алгоритмических языков типа Basic, C++, Java, Object Pascal. По ряду аспектов MATLAB уступает указанным системам (режим интерпретации, небольшой запас визуальных компонентов). Однако с его библиотекой численных методов ни по объему, ни по качеству не может сравниться ни одна из систем программирования. Кроме того, в пакете MATLAB тщательно отработаны средства визуализации результатов вычислений и отображения различных графических объектов. На базе ядра MATLAB созданы многочисленные расширения, обеспечивающие моделирование и анализ систем в разнообразных сферах человеческой деятельности.

1. Дьяконов В.П. MATLAB 6. Учебный курс. — СПб.: Питер, 2001. — 592 с.

. Баженов В.А., Дащенко А.Ф., Коломиец Л.В., Оробей В.Ф. Строительная механика. Специальный курс. Применение метода граничных элементов. — Одесса: Астропринт, 2001. — 288 с.

. Строительная механика. Динамика и устойчивость сооружений / Под ред. А.Ф. Смирнова. — М. : Стройиздат, 1984. — 415 с.

. Турчак Л.И. Основы численных методов. — М.: Наука, 1987. — 320 с.

. Мэтьюз Дж.Г., Финк К.Д. Численные методы. Использование MATLAB. Пер. с англ. — М.: Изд. Дом «Вильямс», 2001. — 720 с.

. Дьяконов В., Круглов В. Математические пакеты расширения MATLAB. Специальный справочник. — СПб.: Питер, 2001. — 480 с.

. Сборник задач для курсовых работ по теоретической механике: Учебное пособие для технических вузов / Яблонский А.А. и др. М.: Высш. шк., 1985. — 367 с.

. Кириллов В.Х., Лещенко Д.Д. Курс теоретической механики. Учебное пособие для студентов технических вузов. — Одесса: ОГАСА, 2002. — 263 с.

. Даффи Д.А., Бекман У.А. Тепловые процессы с использованием солнечной энергии. — М.: Мир, 1977. — 305 с.

. Кириллов В.Х. Гидродинамика и тепломассообмен в двухфазных потоках плёночных аппаратов для холодильной техники: Дис…док. техн. наук. — Одесса, 1993. — 342 с.

. Капустин В.Ф. Практические занятия по курсу математического программирования. — Л.: Изд. Ленинград. ун-та, 1976. — 192 с.

. Дьяконов В. SIMULINK 4. Специальный справочник. — СПб.: Питер, 2002. — 528 с.

Численное решение систем дифференциальных уравнений

Автор работы: Пользователь скрыл имя, 02 Мая 2014 в 10:11, курсовая работа

Краткое описание

Целью данной курсовой работы является приобретение навыков программирования задач численного решения обыкновенных дифференциальных уравнений и систем с представлением их в виде таблиц и графиков.
Поставлена следующая задача:
1. Научиться решать дифференциальные уравнения численными и символьными методами с помощью программных средств Matlab.

Содержание

Введение 3
1.Обыкновенные дифференциальные уравнения и системы обыкновенных дифференциальных уравнений 4
1.1 Обыкновенные дифференциальные уравнения 4
1.2 Система обыкновенных дифференциальных уравнений 5
2. Метод Рунге-Кутты 6
2.1 Описание метода 6
2.2 Реализация метода в системе Matlab 9
3. Выполнение задания 11
Заключение 20
Список литературы 21

Вложенные файлы: 1 файл

kursovaya вариант 18.doc

Министерство образования и науки РФ

ПЕНЗЕНСКАЯ ГОСУДАРСТВЕННАЯ ТЕХНОЛОГИЧЕСКАЯ

Кафедра «Прикладная математика и исследование операций в экономике»

Зав. кафедрой ______________

КУРСОВАЯ РАБОТА

по дисциплине «Численные методы»

на тему «Численное решение систем дифференциальных уравнений»

Автор работы: Чичков Роман Геннадьевич

Специальность: 080116 («Математические методы в

Обозначение курсовой работы: ПГТА 080116-08КР000.17 ПЗ

Руководитель: Козлов А.Ю.

Работа защищена «__»_____20__г. Оценка _______________

Введение

В данной курсовой работе требуется применить средства среды Matlab для решения математических задач путем использования численных методов на компьютере. Необходимо написать программу, решающую поставленную задачу, используя предоставленные математические обоснования.

Многочисленные задачи естествознания, техники и механики, биологии, медицины и других отраслей научных знаний сводятся к математическому моделированию процессов в виде формулы, т.е. в виде функциональной зависимости. Так, например, переходные процессы в радиотехнике, кинетика химических реакций, динамика биологических популяций, движение космических объектов, модели экономического развития исследуются с помощью дифференциальных уравнений.

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

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

Поставлена следующая задача:

  1. Научиться решать дифференциальные уравнения численными и символьными методами с помощью программных средств Matlab.

1.Обыкновенные дифференциальные уравнения и системы обыкновенных дифференциальных уравнений

1.1 Обыкновенные дифференциальные уравнения

Обыкновенные дифференциальные уравнения (ОДУ) — это дифференциальное уравнение вида F(t, x, x’ ,x’’, … , x(n))=0, где x(t) — неизвестная функция, зависящая от переменной t. Порядком уравнения называется максимальный порядок n входящей в него производной (или дифференциала).

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

Одно из простейших применений дифференциальных уравнений — решение нетривиальной задачи нахождения траектории тела по известным проекциям ускорения.

Как следует из определения, обыкновенным дифференциальным уравнением первого порядка называется уравнение F(x, y,y’)=0, где x — независимая переменная, y(x) — неизвестная функция. В форме, разрешённой относительно производной, уравнение первого порядка записывается так: y’=f(x,y).

Общее решение (общий интеграл) уравнения при n = 1 имеет вид Ф(x,y,C)=0 или y=μ(x, C).

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

Задача Коши обычно возникает при анализе процессов, определяемых дифференциальным законом эволюции и начальным состоянием (математическим выражением которых и являются уравнение и начальное условие). Этим мотивируется терминология и выбор обозначений: начальные данные задаются при t = 0, а решение отыскивается при t > 0.

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

1.2 Система обыкновенных дифференциальных уравнений

Система обыкновенных дифференциальных уравнений n –го порядка может быть записана в канонической форме:

в нормальной форме:

или в векторной форме:

Решением системы обыкновенных дифференциальных уравнений Y’=F(x,Y) называется вектор–функция Y(x)=Φ(x) , которая определена и непрерывно дифференцируема на промежутке (a; b) и удовлетворяет системе Y ‘ = F(x,Y) на этом промежутке.

Задачей Коши для системы обыкновенных дифференциальных уравнений называется следующая задача: найти решение Y(x) системы Y ‘ = F(x,Y) такое, что Y(x0) = Y0 . Здесь

Частным решением системы дифференциальных уравнений называется решение какой–нибудь ее задачи Коши.

Вектор–функция Y=Y(x, C)=Y(x, C1,C2, … , Cn) , зависящая от n произвольных постоянных C1,C2, … , Cn называется общим решением системы дифференциальных уравнений на [a; b], если:

при любых допустимых значениях постоянных C1,C2, … , Cn функция Y(x, C) является решением системы на [a;b];

какова бы ни была начальная точка (x0, Y0) из области определения правой части системы, существуют такие значения C*1,C*2, … , C*n постоянных C1, C2, … , Cn , что функция Y(x, C*1,C*2, … , C*n ) является решением задачи Коши Y(x0)=0.

Пусть Y(x)=Φ(x) — решение системы, определенное на [a, b]. Тогда множество точек <Φ(x)>, x Є[a, b] — кривая в пространстве Rn.

Эту кривую называют фазовой траекторией или просто траекторией системы, а пространство Rn , в котором расположены фазовые траектории, фазовым пространством системы.

2. Метод Рунге-Кутты

2.1 Описание метода

Существует множество методов решения дифференциальных уравнений и систем ОДУ, такие как метод Эйлера, метод Адамса, метод Нистрема, семейство методов Рунге-Кутты. На последнем остановимся попродробнее.

Методы Рунге — Кутты — важное семейство численных алгоритмов решения обыкновенных дифференциальных уравнений и их систем. Данные итеративные методы явного и неявного приближённого вычисления были разработаны около 1900 года немецкими математиками К. Рунге и М. В. Куттой.

Формально, методами Рунге — Кутты являются модифицированный и исправленный метод Эйлера, они представляют собой схемы второго порядка точности. Существуют стандартные схемы третьего порядка, не получившие широкого распространения. Наиболее часто используется и реализована в различных математических пакетах стандартная схема четвёртого порядка. Иногда при выполнении расчётов с повышенной точностью применяются схемы пятого и шестого порядков. Построение схем более высокого порядка сопряжено с большими вычислительными трудностями.

Метод Рунге—Кутты 4 порядка столь широко распространён, что его часто называют просто методом Рунге—Кутта.

Рассмотрим задачу Коши

Тогда приближенное значение в последующих точках вычисляется по итерационной формуле:

где h — величина шага сетки по x и вычисление нового значение проходит в четыре этапа:

Метод Рунге-Кутты имеет погрешность, пропорциональную h5 на каждом шаге численного интегрирования и поэтому является одним из наиболее употребительных методов численного решения задач Коши для ОДУ и систем ОДУ.

Метод позволяет решать системы обыкновенных дифференциальных уравнений (ОДУ) первого порядка следующего вида:

которые имеют решение:

где t — независимая переменная (например, время); X, Y и т.д. — искомые функции (зависимые от t переменные). Функции f, g и т.д. — заданы. Также предполагаются заданными и начальные условия, т.е. значения искомых функций в начальный момент.

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

Метод Рунге-Кутта заключается в рекуррентном применении следующих формул:

2.2 Реализация метода в системе Matlab

Система MatLab имеет возможность решения систем обыкновенных дифференциальных уравнений. Для этого в ней имеются необходимые «решатели». Это функции ode23, ode45, odell3, odel5s, ode23s,ode23t и ode23tb.

Функции с суффиксом s предназначены для решения так называемых систем жестких дифференциальных уравнений. Для всех остальных систем дифференциальных уравнений наиболее употребительной является функция ode45, реализующая алгоритм Рунге- Кутта 4- 5-го порядка (разные порядки точности используются для контроля шага интегрирования).

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

yl’ = Fl( х, yl, у2, . уn );

у2′ = F2( х, yl, у2, . уn ) ;

уn’ = Fn( х, yl, у2, . уn);

то есть состоит из n уравнений, разрешенных относительно первых производных функций yl, у2, . уn (это все функции от х). Введем вектор-столбцы Y и F, состоящие из yl, у2, . уn и Fl, F2, . Fn соответственно. Тогда система дифференциальных уравнений примет следующий векторный вид:

Чтобы применить «решатель» ode45, нужно оформить в виде собственной функции правую часть системы уравнений F (х, Y).

3. Выполнение задания

Решить систему дифференциальных уравнений методом Рунге — Кутты 4- 5-го порядка при заданных начальных и конечных условиях (постоянный h=0.1;0.01). Оценить точность результатов решения. Построить графики , , , а также график f(x,y,z) в декартовой системе координат. Создать видеофайл решения задачи.

Курсовая работа: Решение систем дифференциальных уравнений при помощи неявной схемы Адамса 3-го порядка

Кафедра вычислительной математики и программирования

Пояснительная записка к курсовому проекту

«Решение систем дифференциальных уравнений при

помощи неявной схемы Адамса 3-го порядка»

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

2. Описание математических методов решения

3. Описание используемого метода

4. Описание блок-схемы

5. Описание программы

6. Анализ результатов

Бурное развитие в последнее десятилетие информационных технологий и компьютерной техники способствует возникновению всё более сложных математических задач, для решения которых без применения численных методов требуется значительное время. Очень часто перед специалистом возникают задачи, не требующие абсолютно точного решения; как правило, требуется найти приближенное решение с заданной погрешностью. Наряду с совершенствованием компьютерной техники происходит процесс совершенствования и численных методов программирования, позволяющих за минимальный отрезок времени получить решение поставленной задачи с заданной степенью точности.

Одной из таких задач является решение систем дифференциальных уравнений. Обыкновенными дифференциальными уравнениями можно описать поведение материальных точек в силовом поле, законы химической кинетики, уравнения электрических цепей и т. д. Ряд физических задач может быть сведён к решению дифференциальных уравнений или системы дифференциальных уравнений. Задача решения системы дифференциальных уравнений имеет важное прикладное значение при решении научных и технических проблем. Кроме того, она является вспомогательной задачей при реализации многих алгоритмов вычислительной математики, математической физики, обработки результатов экспериментальных исследований. Поэтому для инженеров крайне важно грамотно находить решение этой задачи.

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

Необходимо решить с заданной степенью точности задачу Коши для системы дифференциальных уравнений на заданном интервале [a,b]. Добиться погрешности на втором конце не более 0,0001. Результат получить в виде таблицы значений приближенного и точного решений в точках заданного интервала. Построить графики полученных решений и сравнить их с точным решением.

– система дифференциальных уравнений вида:

– интервал, на котором ищется решение: [a,b]

– погрешность, с которой ищется решение: е

– формулировка задачи Коши в начальной точке заданного интервала: u(a)=u, v(a)=v

– количество узлов сетки, для которой формируется таблица значений приближенного и точного решений системы: nx

– шаг вывода на экран значений искомых функций в узлах заданной сетки: np

– таблица значений приближенного и точного решений в узлах заданной сетки;

– графики полученных и точных решений.

2. Описание математических методов решения задачи

Конкретная прикладная задача может привести к дифференциальному уравнению любого порядка или к системе таких уравнений. Произвольную систему дифференциальных уравнений любого порядка можно привести к некоторой эквивалентной системе дифференциальных уравнений первого порядка. Среди таких систем выделяют класс систем, разрешённых относительно производной неизвестных функций:

(2.1)

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

Первый тип – это задачи Коши, или задачи с начальными условиями. Для таких задач кроме исходного уравнения в некоторой точке a должны быть заданы начальные условия, т.е. значения функции u1(a),…, um(a):

u1(a)=,…, um(a)= (2.2)

Ко второму типу задач относятся так называемые граничные, или краевые задачи, в которых дополнительные условия задаются в виде функциональных соотношений между искомыми решениями. Количество условий должно совпадать с порядком n уравнения или системы. Если решение задачи определяется в интервале xÎ[a,b], то такие условия могут быть заданы как на границах, так и внутри интервала.

Третий тип задач для систем дифференциальных уравнений – это задачи на собственные значения. Такие задачи отличаются тем, что кроме искомых функций u1(x),…, um(x) в уравнения входят дополнительно n неизвестных параметров l1 , l2 , . ln , которые называются собственными значениями. Для единственности решения на интервале [a,b] необходимо задать n + m граничных условий.

Рассмотрим подробнее задачу Коши. Воспользуемся компактной записью задачи (2.1), (2.2) в векторной форме:

(2.3)

Требуется найти на интервале [a,b].

Задачу Коши удобнее всего решать методом сеток. Метод сеток состоит в следующем :

1) Выбираем в области интегрирования упорядоченную систему точек a=x1

#pragma resource «*.dfm»

char *opz(char *); // ф-ия преобразования в обратную польскую запись;

double fpr(char *str,double u, double v,double x); // обратныйходпольской

int p=1,s=1,j=1,o=0; // записи;

__fastcall TForm1::TForm1(TComponent* Owner)

void __fastcall TForm1::N5Click(TObject *Sender)

void __fastcall TForm1::Button3Click(TObject *Sender)

void __fastcall TForm1::N7Click(TObject *Sender)

void __fastcall TForm1::N2Click(TObject *Sender) // очисткаформы


источники:

http://www.myunivercity.ru/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D1%8B/%D0%A7%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC_%D0%B4%D0%B8%D1%84%D1%84%D0%B5%D1%80%D0%B5%D0%BD%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_%D1%83%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B9/345164_2962986_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B01.html

http://www.bestreferat.ru/referat-120289.html

Название: Решение систем дифференциальных уравнений при помощи неявной схемы Адамса 3-го порядка
Раздел: Рефераты по математике
Тип: курсовая работа Добавлен 07:21:59 15 июня 2010 Похожие работы
Просмотров: 722 Комментариев: 22 Оценило: 3 человек Средний балл: 5 Оценка: неизвестно Скачать