Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по прикладному программированию по теме «Решение дифференциальных уравнений численными методами».docx
Скачиваний:
41
Добавлен:
26.03.2015
Размер:
244.16 Кб
Скачать

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Балтийский Государственный Технический Университет «Военмех» им. Д.Ф. Устинова»

Курсовая работа по прикладному программированию по теме

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

Выполнил: студент Н111

Макурова В.В.

Проверил: доцент каф. Н1

Жуков Ю.А.

Санкт-Петербург

2012

Оглавлени

Техническое задание 3

Описание модели исследуемого объекта 4

Математическое описание методов интегрирования для уравнения динамики системы тел 5

Описание программы на C++ 8

Краткое описание программы в пакете Matlab и представление результатов ее выполнения 10

Описание программы в Matlab 10

Выводы 13

Оглавление 2

Техническое задание 3

Описание модели исследуемого объекта 4

Математическое описание методов интегрирования для уравнения динамики системы тел 5

Описание программы на C++ 8

Краткое описание программы в пакете Matlabи представление результатов ее выполнения 10

Выводы 13

Техническое задание

Описать физический процесс с помощью системы дифференциальных уравнений второго порядка. Разработать программу в среде C++BuilderXE2, реализующую математическое моделирование физического процесса, а также решение дифференциальных уравнений тремя методами — Эйлера, Рунге-Кутта, Адамса. Сравнить результаты, полученные тремя методами. Выполнить проверку в математическом пакетеMatlab.

Описание модели исследуемого объекта

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

Рис.1. Схематическое изображение системы

Процесс описывается тремя дифференциальными уравнениями в форме Коши:

(1.1)

Где

m 1 – масса нижнего тела (тележки);

m 2 – масса верхнего тела (груза);

C1 – жесткость левой пружины;

C2 – жесткость правой пружины;

C3 – жесткость верхней пружины;

l1 –длина покоя левой пружины;

l2 – длина покоя правой пружины;

l3 – длина покоя верхней пружины;

w – длина нижнего тела;

h – высота нижнего тела;

k – коэффициент трения среды;

L – ширина всей площадки, на которой перемещаются тела;

nyu – коэффициент трения о поверхность

Математическое описание методов интегрирования для уравнения динамики системы тел

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

Решить дифференциальное уравнение численным методом – значит для заданной последовательности аргументов х0, х1…, хnи числа у0, не определяя функцию у=F(x), найти такие значения у1, у2,…, уn, что уi=F(xi)(i=1,2,…, n) и F(x0)=y0.

Таким образом, численные методы позволяют вместо нахождения функции У=F(x) получить таблицу значений этой функции для заданной последовательности аргументов. Величина h=xk−xk-1называется шагом интегрирования.

Рассмотрим некоторые методы.

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

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

Рассмотрим дифференциальное уравнение первого порядка с начальным условием x=x0, y(x0)=y0.Найдём решения уравнения на отрезке [a,b]

Разобьем отрезок [a,b] наnравных частей и получим последовательность х0, х1, х2,…, хn, гдеxi=x0+ih(i=0,1,…,n), аh=(b-a)/n− шаг интегрирования.

В методе Эйлера приближенные значения у(хi+1)≈yi+1вычисляются последовательно по формулам:

yi+1 = уi+hf(xi, yi) (i=0,1,2…)

При этом искомая интегральная кривая у=у(х), проходящая через точку A00, у0), заменяется ломанойA0A1A2… с вершинамиAi(xi,yi) (i=0,1,2,…); каждое звеноAiAi+1этой ломаной, называемой ломаной Эйлера, имеет направление, совпадающее с направлением той интегральной кривой уравнения, которая проходит через точкуAi.

Рис.2. Ломаная Эйлера

Вычисления по методу Эйлера с пересчетом делаются в два этапа.

Прогноз:

Коррекция:

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

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

Методы Рунге-Кутта обладают следующими свойствами:

  1. Эти методы являются одноступенчатыми: чтобы найти ук+1, нужна информация о предыдущей точке (xк,yк)

  2. Методы согласуются с рядом Тейлора вплоть до членов порядка hp, где степень р различна для различных методов и называется порядковым номером или порядком метода.

  3. Они не требуют вычисления производных от f (x,y), а требуют вычисления самой функции.

Алгоритм Рунге-Кутта четвертого порядка:

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

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

Вычисление нового значения проходит в четыре стадии:

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