Техническое задание 14 Описание модели исследуемого объекта 15 Описание численных методов решения системы ду 17 Метод Эйлера 17 Мето - davaiknam.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
6 Метод Рунге-Кутта 2-ого порядка (модифицированный метод Эйлера) 1 21.51kb.
8 Методы Рунге-Кутты Метод Эйлера и метод Эйлера-Коши относятся к... 1 28.84kb.
Неявный метод Эйлера 1 15.48kb.
Многомасштабный подход к моделированию ем полей в геоэлектрике 1 58.09kb.
Технология кейс-стади (Case study) Кейс метод (Case study) метод... 1 42.69kb.
«Счастье это когда тебя понимают»: так ли это? 1 37.45kb.
Метод неточной локализации решений недоопределённой системы ограничений 1 34.28kb.
Метод дельфи (delphi metod) 1 42.54kb.
Метод обучения 1 198.51kb.
Перечень вопросов, поставленных в контрольной работе №1 1 36.9kb.
Программа вступительных испытаний в магистратуру по направлению 010100. 1 150.63kb.
Вопросы к экзамену по курсу "Физика газового разряда" 1 23.69kb.
Направления изучения представлений о справедливости 1 202.17kb.

Техническое задание 14 Описание модели исследуемого объекта 15 Описание численных - страница №1/1



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

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

3. Описание численных методов решения системы ДУ 17

3.1. Метод Эйлера 17

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

3.3. Метод Адамса 19

4. Краткое описание программы на C++ и представление результатов ее выполнения 22

4.1 Интерфейс программы 22

4.2. Результаты выполнения программы при изменении начальных условий 24

4.3. Сравнение результатов выполнения программы, полученных тремя методами 25

4.3.1. Сравнение точности метода Адамса и метода Эйлера 25

4.3.2. Сравнение точности метода Адамса и метода Рунге-Кутта 26

4.4. Зависимость результатов от шага интегрирования (на примере метода Адамса) 27

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

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

5.2 Результаты выполнения программы 29

6. Выводы 31

7. Список используемой литературы 32



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


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


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

2. Разработать программу в среде Borland C++ Builder 6.0, реализующую моделирование физического процесса по его математической модели, используя методы Эйлера, Рунге-Кутта, Адамса. Результаты моделирования представить графически. Реализовать упрощенное динамическое отображение физического процесса. Сравнить результаты, полученные при использовании трех методов.

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




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

В качестве физического процесса рассмотрим так называемый двойной маятник (см. рисунок 1), представляющий собой систему двух маятников, один из которых массой m2 на растяжимой нити длиной l2 подвешен к другому массой m1, прикрепленного к неподвижной опоре нерастяжимой нитью длиной l1.


Рисунок1. Кинематическая схема двойного маятника

Математическое описание движения этой системы без учета трения представлено в работе [5, с.79-82]. Приведем кратко основные положения.

Обозначим:

θ1 и θ2 – углы отклонения соответственно маятников массой m1 и m2,

y1 и y2 – отклонения соответственно маятников массой m1 и m2.

Предполагается, что приведенные длины маятников равны: l=l1=l2,

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

1) Вводим систему отсчета (рисунок 1) и выражаем декартовы координаты через обобщенные:


2) Путем дифференцирования этих равенств получим декартовы составляющие скоростей, выраженные через обобщенные координаты (θ1 и θ2) и обобщенные скорости :
Тогда квадраты скоростей каждого маятника:
3) Декартовы координаты, входящие в формулу потенциальной энергии,

заменяем на обобобщенные:


4) Скорости, входящие в формулу кинетической энергии, заменяем на обобщенные скорости, так что кинетическая энергия в общем случае начинает зависеть не только от обобщенных скоростей, но и от обобщенных координат:
5) Составляем выражение для функции Лагранжа:

(1.1)

6) Составляем уравнения Лагранжа:

(1.2)


Первый маятник:

Подставляя полученные выражения в (1.2), получаем уравнение Лагранжа для первого маятника:

(1.3)

Второй маятник: (уравнение Лагранжа)

(1.4)


После несложных преобразований (1.3) и (1.4) получаем систему дифференциальных уравнений:

(1.5)


7) Модифицируем систему (1.5) для более общего случая, вводя учет трения (k1, k2, k3 – коэффициенты трения) и эффект растяжения нити второго маятника (С- коэффициент жесткости нити маятника 2, ι20 – начальное удлинение нити):
8) Применяя метод подстановки: , преобразуем систему ДУ второго порядка, состоящую из 3 ДУ, в систему ДУ первого порядка из 6 ДУ в форме Коши:

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


3. Описание численных методов решения системы ДУ


Решить дифференциальное уравнение численным методом – это значит для заданной последовательности аргументов х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 называется шагом интегрирования.

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


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

Рассмотрим дифференциальное уравнение первого порядка

(3.1)

с начальным условием



x=x0, y(x0)=y0 (3.2)

Требуется найти решение уравнения (2.1) на отрезке [а,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…) (3.3)

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


Рисунок 2. Вид ломаной Эйлера
Модифицированный метод Эйлера более точен. Сначала вычисляются вспомогательные значения искомой функции ук+1/2 в точках хк+1/2, затем находятся значение правой части уравнения (3.1) в средней точке y/k+1/2=f(xk+1/2, yk+1/2) и определяют ук+1 (см. рисунок 3):
Рисунок 3. Иллюстрация модифицированного метода Эйлера
Тогда: ук+1ккh

xk+1=xk+h

αk=f(xk+h/2, yk+f(xk,Yk)h/2) (3.4)

yk=yk-1+f(xk-1,yk-1)h

Формулы (3.4) − рекурентные формулы метода Эйлера.

Для оценки погрешности в точке хк проводят вычисления ук с шагом h, затем с шагом 2h и берут 1/3 разницы этих значений:

| ук*-у(хк)|=1/3(yk*-yk),

где у(х) - точное решение дифференциального уравнения.

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

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


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

1 Эти методы являются одноступенчатыми: чтобы найти ук+1 нужна

информация о предыдущей точке (xкyк)

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

3 Они не требуют вычисления производных от f (xy) а требуют вычисления

самой функции

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

                                                                       (3.5)

где                                                     

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

                                                 (3.6)

где   


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

3.3. Метод Адамса


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

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

Yk-1 , Yk-2 , Yk-3 …

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

       

Интеграл при этом выражается через квадратурную формулу:



,

где λi  – квадратурные коэффициенты, значения которых k от 2 до 4 приведены в таблице ниже.



k

λi

2

3/2

-1/2

 

 

3

23/12

-16/12

5/12

 

4

55/24

-59/24

37/24

-9/24

Полученное таким образом семейство формул называется явной k-шаговой схемой Адамса. Как видно, при k=1 в качестве частного случая получается формула Эйлера.

Например для формулы 4 порядка имеем:



(3.7)







-“прогноз”, вычисленный с использованием значений в предыдущих точках, (Р) - приближенное значение функции, вычисленное в точке получения прогноза, -«коррекция» прогнозного значения, yk+1 – искомое значение по Адамсу.

Достоинство такого метода решения ДУ заключается в том, что в каждой точке рассчитывается только одно значение функции F(x,y). К недостаткам можно отнести невозможность старта многошагового метода из единственной начальной точки, так как для вычислений по k-шаговой формуле необходимо значение значения функции в k узлах. Поэтому приходится (k-1) решение в первых узлах x1, x2, …, xk-1 получать с помощью какого-либо одношагового метода, например метода Рунге-Кутта 4–го порядка.

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

4. Краткое описание программы на C++ и представление результатов ее выполнения

4.1 Интерфейс программы


Программа позволяет получить решение системы ДУ, представленной в формуле (1.6), методами математического моделирования (Эйлера, Рунге-Кутта, Адамса). Для реализации метода Эйлера использована формула (3.3), метода Рунге-Кутта – формула (3.6), Адамса – формула (3.7), при этом вычисление первых 4-х точек в методе Адамса производилось по формуле метода Эйлера. Результаты решения представлены в виде графиков положения объектов физической модели и динамическим отображением физического процесса (раскачивания двойного маятника) в режиме реального времени.

Блок-схема алгоритма программы приведена в Приложении 1, код программы представлен в Приложении 2.

Интерфейс программы визуально можно разделить на 5 областей (см. рисунок 4.):

1. Область отрисовки графиков;

2. Область отрисовки физической модели;

3. Область задания начальных значений;

4. Область выбора метода расчета;

5. Блок кнопок управления программой.


Рисунок 4. Окно выполнения программы

Область отрисовки графиков. Для отрисовки графиков применяется визуальный компонент Tchart, содержащий три компонента TSeries, используемых для отрисовки графиков положения первого (а1(t)) и второго маятника (а2(t)) и для отрисовки графика длины нити второго маятника (а3(t)).

Область отрисовки физической модели. Для отрисовки физической модели используется компонент TImage и его функции рисования линий и овалов. В данном случае, мы имеем дело с частным случаем овала – окружностью, которая заполняется выбранным цветом (красным для шара 1 и зеленым для шара 2.

Область задания начальных значений. Для задания начальных значений используется 6 текстовых полей, в которых задаются начальные величины в виде текстовых строк:

• Время моделирования, Т (сек)

• Шаг интегрирования, h

• Массы шаров m1 и m2

• Начальные отклонения от положения равновесия x1 и x2

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



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

Блок кнопок управления программой позволяет запустить моделирование физического процесса (кнопка «Расчет») с одновременной отрисовкой графиков и поведения (движения двойного маятника) физической модели, а так же, остановить моделирование (Кнопка «Стоп») до окончания заданного времени моделирования.

Программа начинает работу по кнопке «Расчет». До активации кнопки «Расчет» можно задать начальные значения в соответствующих полях; если ввода не произведено, программа работает со значениями по умолчанию. В режиме реального времени выполняется отрисовка графиков функций и имитация движения двойного маятника. Анализ поведения физической модели при различных начальных значениях описан в параграфе 4.2. До окончания времени моделирования можно остановить выполнение программы и задать новые начальные условия или выбрать иной метод расчета. Завершение работы программы осуществляется путем нажатия кнопки с крестиком в правом верхнем углу основного окна программы (блок управляющих кнопок).

Путем изменения шага интегрирования при неизменных остальных начальных значениях было проведено исследование зависимости точности выполнения программы от шага интегрирования. Результаты представлены далее в параграфе 4.3.

Проведены исследования зависимости точности результатов моделирования процесса от выбранного метода интегрирования. Результаты представлены в параграфе 4.4.


4.2. Результаты выполнения программы при изменении начальных условий


Проанализируем влияние эффекта растяжения нити на движение объектов двойного маятника при изменении начальных условий − будем изменять только массу m2.

1. Условия по умолчанию (m2=1, m2=0.01, l1=1, l20=1, x1=-0.2, x2=0, x3=0.5, k1=0.01, k2=0.02, c=30, k3=0.05*c). Масса шара №2 существенно мала по сравнению с массой шара №1 (m1/m2=100), растяжение нити шара №2 очень мало (можно пренебречь) и не влияет на характер движения шариков.

Наблюдаем графики зависимости а1(t) и a2(t) – амплитуд колебаний шаров №1 и №2 от времени, каждый из которых имеет модулирующую структуру - затухающую по времени кривую типа кривой Лиссажу - минимальная амплитуда шара №1 при максимальной амплитуде шара №2 и наоборот (см. рисунок 5):
Рисунок.5. Окно выполнения программы для случая массы шара 2 существенно меньшей массы шара 1.

2. Масса шара №2 сравнима с массой шара №1, но по-прежнему остается меньшей m1: m1/m2=3.3. Наблюдается небольшой эффект растяжения нити шара №2 (график a3(t) - кривая синего цвета) в первые 1.5 секунды, далее растяжение практически не заметно. Растяжение нити существенно повлияло на характер движения шариков (не наблюдается кривая Лиссажу), но соотношение «минимальная амплитуда шара №1 при максимальной амплитуде шара №2 и наоборот» сохранилось (см. рисунок 6):


Рисунок.6. Окно выполнения программы для случая массы шара 2 сравнимой с массой шара 1.

3. Масса шара №2 больше массы шара №1: m2/m1=1,5, эффект растяжения нити шара №2 более выраженный (в течение 3.5 сек), характер движения шариков изменился – они движутся в противофазах (см. рисунок 7)


Рисунок.7. Окно выполнения программы для случая соотношения масс m2/m1=1,5.

4. Масса шара №2 больше массы шара №1 (m2/m1=5), эффект растяжения нити ярко выражен (более 10 сек), и становится основным процессом, шарики движутся в противофазах, общий вид кривых графиков амплитуд «повторяет» форму кривой амплитуды растяжения нити (см. рисунок.8):


Рисунок.8. Окно выполнения программы для случая соотношения масс m2/m1=1,5.

4.3. Сравнение результатов выполнения программы, полученных тремя методами

4.3.1. Сравнение точности метода Адамса и метода Эйлера


Начальные условия установлены по умолчанию:

m1=1, m2=0.01, x1=-0.1, x2=0, T=50, h=0.005

1. Метод Адамса. Получена ожидаемая для данного соотношения масс форма графиков – кривая Лиссажу, затухающие колебания (см. рисунок 9):
Рисунок.9. Окно выполнения программы при выборе метода Адамса для начальных условий по умолчанию.

2. Метод Рунге-Кутта. Получена ожидаемая форма графиков – кривая Лиссажу, затухающие колебания (см. рисунок 10):


Рисунок.10. Окно выполнения программы при выборе метода Рунге-Кутта для начальных условий по умолчанию.

3. Метод Эйлера. Наблюдается отклонение от ожидаемого результата: амплитуда колебаний нарастает, что противоречит логике - не может быть реализован «вечный двигатель (см. рисунок 11):


Рисунок 11. Окно выполнения программы при выборе метода Эйлера для начальных условий по умолчанию

Увеличение временного периода до Т=100 с наглядно демонстрирует эту ситуацию (см. рисунок 12):


Рисунок.12. Окно выполнения программы при выборе метода Эйлера для начальных условий по умолчанию при увеличенном временном интервале
Ситуация «исправляется» при уменьшении шага интегрирования в 10 раз (см. рисунок 13):
Рисунок 13. Окно выполнения программы при выборе метода Эйлера для начальных условий по умолчанию при увеличенном временном интервале с уменьшенным шагом интегрирования

Таким образом, при одинаковых начальных условиях метод Адамса дает лучшие результаты и менее чувствителен к шагу интегрирования по сравнению с другими методами, при этом метод Рунге-Кутта дает лучшие результаты по сравнению с методом Эйлера.



4.3.2. Сравнение точности метода Адамса и метода Рунге-Кутта


Начальные условия:

m1=1, m2=0.01, x1=-0.1, x2=0, T=7, h=0.0075.

Ниже представлены результаты выполнения программы методом Адамса (рисунок.14) и Рунге-Кутта (рисунок 15):
Рисунок 14. Окно выполнения программы при выборе метода Адамса при большом шаге интегрирования
Рисунок.15. Окно выполнения программы при выборе метода Рунге-Кутта при большом шаге интегрирования

Из анализа характера поведения графика a3(t) растяжения нити видно, что метод Адамса позволяет «зафиксировать» колебательный процесс на временном интервале (0;2), а методом Рунге-Кутта «фиксируются» только «сглаженные» колебания, причем на значительно меньшем интервале времени (0; 0.3), что позволяет сделать вывод о большей точности метода Адамса по сравнению с методом Рунге-Кутта.

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

4.4. Зависимость результатов от шага интегрирования (на примере метода Адамса)


1. Выбираем первоначально шаг интегрирования h=0.005, наблюдаем следующий вид графиков амплитуд отклонений шаров и растяжения нити (см. рисунок 16):
Рисунок 16. Окно выполнения программы при выборе метода Адамса при шаге интегрирования по умолчанию

2. Шаг уменьшили в 5 раз (h=0.001), результат выполнения программы получился более точным - отображается график растяжения нити, максимальная амплитуда отклонения шара №2 превышает значение «1» (см. рисунок 17):


Рисунок 17. Окно выполнения программы при выборе метода Адамса при уменьшении в 5 раз шага интегрирования по сравнению со значением по умолчанию

3. Дальнейшее уменьшение шага не изменяет характер процесса (см.рисунок 18):


Рисунок 18. Окно выполнения программы при выборе метода Адамса при уменьшении в 10 раз шага интегрирования по сравнению со значением по умолчанию

Следовательно, шаг h=0.001 является для метода Адамса оптимальным, а решение системы ОДУ при указанном шаге будет являться устойчивым.


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

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


Для решения полученной в формуле (1.6) системы ДУ в пакете MATLAB была использована стандартная функция

ode45 (f, interval, X0 [, options]), где:



  • f - вектор-функция для вычисления правой части уравнения системы уравнений

  • interval - массив из двух чисел, определяющий интервал интегрирования дифференциального уравнения или системы;

  • Х0 - вектор начальных условий системы дифференциальных систем

  • options - параметры управления ходом решения дифференциального уравнения или системы.

Вектор-функция с именем Model (t,x), содержащая систему ДУ из 6-ти ДУ и установку начальных значений, задается в файле «Model.m», программный код приведен в Приложении 3. После сохранения файла «Model.m» формируем код сценария отрисовки графиков, представляющий собой следующую последовательность команд в командной строке:

1) Вызываем функцию ode45 с требуемыми параметрами:

>> [t,y]=ode45(@Model, [0:0.1:50], [0;-0.2;0;0;0;0.5]) (5.1)

2) Результатом выполнения функции ode45 является массив из 6 столбцов (и числом строк, равным частному от деления разности значений конечного и начального интервалов на шаг интегрирования). Для построения графиков амплитуд и длины нити шара 2 нас интересуют столбцы 2, 4 и 6, поэтому далее в командной строке задаем следующие команды:

>> y1=y(:,2); //график отклонений 1-го шара (5.2)

>> y2=y(:,4); //график отклонений 2-го шара (5.3)

>> y3=y(:,6); //график изменения длины 2-го шара (5.4)

3) Задаем команду отрисовки трех графиков на одной координатной оси заданными цветами:

>> plot(t,y1,'r-',t,y2,'g-',t,y3,'b--') (5.5)

4) Включаем сетку, подписываем оси и формируем легенду графиков:

>>grid on (5.6)

>>xlabel ('t') (5.7)

>>ylabel ('Yi(t)') (5.8)

>>legend('y1','y2','y3'); (5.9)

В результате в окне «Figure 1» получаем изображение графиков (см. рис. 19), совпадающее с результатом, полученным в программе на C++ для начальных условий по умолчанию:

Рисунок 19. Результат выполнения программы в пакете Matlab (окно отрисовки графиков), начальные условия по умолчанию, шаг функции ode45 равен 0.1

Следует подчеркнуть, что результат был получен для интервала изменения функции 0.1 (далее N=0/1), а для программы на С++ использовали шаг интегрирования h=0.005 и получили примерно одинаковый результат (см. рисунок 20.1):
а) результат программы в Matlab б) Результат программы на C++

Рисунок 20.1. Сравнение результатов решения системы ДУ в Matlab и на C++

Уменьшаем интервал изменения функции ode45 в 200 раз (N=0.0005) и получаем тот же результат, но с увеличенной частотой (см. рисунок 20.2), что позволяет сделать вывод, что величины N и h не тождественны (так, изменяя интервал в Matlab на [0:1:500] получаем тот же вид графика (см. рисунок 20.3):
Рисунок 20.2. Результат выполнения программы в Matlab, начальные условия по умолчанию, шаг функции ode45 равен 0.0005
Рисунок 20.3. Результат выполнения программы в Matlab, начальные условия по умолчанию, интервал функции ode45 равен [0:1:500]

5.2 Результаты выполнения программы


Выполним изменение массы шара №2 для наблюдения эффекта растяжения нити шара 2 и его влияния на структуру колебаний шаров по аналогии с действиями описанными в п.4.2. Так как массы шаров и коэффициент жесткости нити задаются в файле «Model.m», вследствие чего после их изменения и сохранения файла требуется каждый раз вводить код сценария (5.1)-(5.9), он записан в файл «Draw.m» (см. Приложение 3) и для получения графиков после изменения начальных значений требуется ввести в командной строке одну команду: >>draw.

Ниже представлены результат выполнения программы в Matlab для следующих случаев: m2=0.3 (рисунок 21), m2=01(рисунок 22), m2=1.5(рисунок 23), m2=5 и С=50 (рисунок 24.1) и m2=5 С=25 (рисунок 24.2), на основании сравнения которых с результатами программы на C++ делаем вывод об идентичности результатов полученных реализацией задачи на C++ и в пакете Matlab.


Рисунок 21. Результат выполнения программы в пакете Matlab при m2=0.3
Рисунок 22. Результат выполнения программы в пакете Matlab при m2=1
Рисунок 23. Результат выполнения программы в пакете Matlab при m2=1.5
Рисунок 24.1. Результат выполнения программы в пакете Matlab при m2=5 и С=50
Рисунок 24.2. Результат выполнения программы в пакете Matlab при m2=5 и С=25

6. Выводы


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

Разработана программа в среде Borland C++ Builder 6.0, реализующая моделирование физического процесса по его математической модели, используя методы Эйлера, Рунге-Кутта, Адамса. Результат работы программы выводится в виде графиков зависимости положения объектов двойного маятника (отклонений от положения равновесия и растяжения нити) и отрисовки их движения. Программа позволяет производить тест-анализ работы двойного маятника при различных начальных условиях (изменения соотношения масс, изменение начальных отклонений объектов).

Проведены вычислительные эксперименты. Определены значения граничных условий при задании начальных условий моделирования.

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

Разработана программа для решения заданной системы в пакете Mattlab.

Результаты реализации поставленной задачи на C++ не уступают результатам реализации в пакете Matlab.






7. Список используемой литературы





  1. Лафоре Р. Объектно-ориентированное программирование в С++. Классика Computer Science. 4-е изд. – СПб.: Питер, 2012

  2. Васильев А.Н. MATLAB. Самоучитель. Практический подход. – Спб.: Наука и техника, 2012.

  3. Николаев В.И. О маятнике Максвелла // http://genphys.phys.msu.ru/rus/edu/mech/Addon/O%20mayatnike%20Maksvella.pdf

  4. Маликов Р.Ф. Практикум по компьютерному моделированию физических явлений и объектов // http://bspu.ru/files/KompMod.pdf

  5. Щеглова И. Ю., Богуславский А. А. Моделирование колебательных процессов (на примере физических задач): методическое пособие для студентов физико-математического факультета // http://www.ict.edu.ru/ft/006121/part1.pdf

  6. Щербаков И.Н. Численные методы и программирование. Решение обыкновенных дифференциальных уравнений // http://www.physchem.chimfak.rsu.ru/Source/NumMethods/ODE.html





Разница между неудачей и успехом заключается в том, чтобы делать что-то «почти правильно» и «совершенно правильно». Эдуард Симмонз
ещё >>