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

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

2015-09-27

72.36 KB

1 чел.


Поделитесь работой в социальных сетях

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


Федеральное государственное автономное образовательное учреждение

высшего профессионального образования

«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

ИНСТИТУТ ИНЖЕНЕРНОЙ ФИЗИКИ и РАДИОЭЛЕКТРОНИКИ

Кафедра «Приборостроение и наноэлектроника»

ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №2

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

Студент,     РФ11-31Б         _____________________              

               подпись, дата            

Преподаватель                    ____________________               П. С. Маринушкин

                                                     подпись, дата                          

Красноярск, 2013

ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ

Решить дифференциальное уравнение (1) для вертикальных колебаний под действием вынуждающей силы.

 (1)

Где x – отклонение системы от исходного положения, t – время, m – масса, β – коэффициент вязкого трения, k – коэффициент жесткости амортизаторов, ω – циклическая частота.

Решим это дифференциальное уравнение для следующих параметров:
x = 0, dx/dt = 0, t = 0, β = 0.5 кг/с, k = 5 Н/м, m = 1 кг, Fm = 2000 Н,  
ω = 0.3 рад/с.

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

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

(2)

Метод легко реализуем, и требует минимум вычислений, но в теории дает низкую точность.

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

Приближенное значение в точках:

Коэффициенты:

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

function dx = diff_fun(t, y)

% Константы

m=1;

B=0.5;

k=5;

w=0.3;

 

% Уравнения

dx=[y(2); 1/m*(2000*abs(cos(w*t))-B*y(2)-k*y(1))];

Запишем скрипт для нахождения решения.

clc; clear; close all;

 

Y0=[0 0];                                   % Начальные значения

h=0.01;                                     % Шаг

t0=0;

t1=30;

 

T0=[t0:h:t1];                                % Интервал для решения

 

[T, Y] = ode45('diff_fun', T0, Y0);     

hold on

plot(T, Y(:,1), 'b-', 'LineWidth', 2)

plot(T, Y(:,2), 'r-', 'LineWidth', 2)

grid on

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

clc; clear; close all;

 

Y0=[0 0];                                   % Начальные значения

h=0.01;                                     % Шаг

t0=0;

t1=30;

 

%% Встроенная функция (Метод Рунге-Кутты)

T0=[t0:h:t1];                                % Интервал для решения

 

[T, Y] = ode45('diff_fun', T0, Y0);     

hold on

plot(T, Y(:,1), 'b-', 'LineWidth', 2)

plot(T, Y(:,2), 'r-', 'LineWidth', 2)

grid on

Y11=Y(:,1); Y22=Y(:,2);

clear T0 T Y                                % Очищаем переменные

 

%% Собственная функция (Метод Рунге-Кутты)

Y1=[]; Y2=[];                               % Задаем массив

y1=Y0(1); y2=Y0(2);                         % Задаем начальные значения

T=t0:h:t1;                                  % Задаем интервал

 

for t = t0:h:t1                             % Решаем

   k1=h*dx(t, y1, y2, '1');

   k2=h*dx(t+h/2, y1+k1/2, y2+k1/2, '1');

   k3=h*dx(t+h/2, y1+k2/2, y2+k2/2, '1');

   k4=h*dx(t+h, y1+k3, y2+k3, '1');

   y1=y1+(k1+2*k2+2*k3+k4)/6;

   Y1=[Y1 y1];

   

   k1=h*dx(t, y1, y2, '2');

   k2=h*dx(t+h/2, y1+k1/2, y2+k1/2, '2');

   k3=h*dx(t+h/2, y1+k2/2, y2+k2/2, '2');

   k4=h*dx(t+h, y1+k3, y2+k3, '2');

   y2=y2+(k1+2*k2+2*k3+k4)/6;

   Y2=[Y2 y2];

end

plot(T, Y1, 'm-', 'lineWidth', 2)

plot(T, Y2, 'g-', 'LineWidth', 2)

legend('y1 - ode45', 'y2 - ode45', 'y1 - Метод Рунге-Кутты', 'y2 - Метод Рунге-Кутты')

xlabel('Время, с');

ylabel('Амплитуда');

clear Y2 Y1

%% Собственная функция (Метод Эйлера)

Y1=[]; Y2=[];                               % Задаем массив

y1=Y0(1); y2=Y0(2);                         % Задаем начальные значения

for t = t0:h:t1

   y1=y1+h*dx(t, y1, y2, '1');

   y2=y2+h*dx(t, y1, y2, '2');

   Y1=[Y1 y1];

   Y2=[Y2 y2];

end

figure

hold on; grid on

plot(T, Y11, 'b-', 'LineWidth', 2)

plot(T, Y22, 'r-', 'LineWidth', 2)

plot(T, Y1, 'm-', 'lineWidth', 2)

plot(T, Y2, 'g-', 'LineWidth', 2)

legend('y1 - ode45', 'y2 - ode45', 'y1 - Метод Эйлера', 'y2 - Метод Эйлера')

xlabel('Время, с');

ylabel('Амплитуда');

Функция:

function y = dx(t, y1, y2, n)

% Константы

m=1;

B=0.5;

k=5;

w=0.3;

switch n

   case {'1'}

       y=y2;

   case {'2'}

       y=1/m*(2000*abs(cos(w*t))-B*y2-k*y1);

end

Получаем графики на рисунке 1, 2. Видим, что решение по методу Рунге-Кутты 4 порядка незначительно отличается от решения через функцию ode45. Но совершенно неожиданные результаты дает метод Эйлера
(см. рисунок 2), данные полученные этим методом практически идеально совпадают с данными функции
ode45.

Рисунок 1 – Сравнение функции ode45 и метода Рунге-Кутты 4 порядка

Рисунок 2 – Сравнение ode45 и метода Эйлера

ЗАКЛЮЧЕНИЕ

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



 

Другие похожие работы, которые могут вас заинтересовать.
6215. Численные методы решения обыкновенных дифференциальных уравнений 1.42 MB
  Порядком обыкновенного дифференциального уравнения называется порядок старшей производной от искомой функции. Общим интегралом уравнения. неявным образом причем число постоянных интегрирования равно порядку уравнения. Общим решением обыкновенного дифференциального уравнения называется функция.
13538. Понятие о численных методах решения обыкновенных дифференциальных уравнений 153.35 KB
  Недостатки метода Эйлера 4. Идея метода Эйлера очень проста. В результате приходим к приближённому уравнению: Поскольку по определению у= окончательно имеем следующее уравнение являющееся основой метода Эйлера: 8 Конечно это уравнение является лишь приближённым и мы надеемся что чем меньше величина шага h тем оно будет более точным уменьшается локальная погрешность метода то есть погрешность на одном его шаге.
3551. Визуализация численных методов. Решение обыкновенных дифференциальных уравнений 143.97 KB
  Дифференциальными уравнениями называются уравнения, связывающее значение некоторой неизвестной функции в некоторой точке и значение её производных различных порядков в той же точке. Первые дифференциальные уравнения возникли из задач механики...
20. Решение систем обыкновенных дифференциальных уравнений методами Рунге-Кутты 520.86 KB
  Программа интегрирования имеет пять основных частей: Главная вызывающая программа; Процедура вычисления правых частей; Процедура одного шага интегрирования методом РунгеКутты второго порядка RК_2; Процедура одного шага интегрирования методом РунгеКутты четвертого порядка RК_4; Функция вычисления точного решения TochSolve. Текст программы приведен в приложение Б Программа содержит в себе следующие переменные: tochпеременная для хранения точного решения ДУ; tfвеличина определяющая конец интервала интегрирования; h текущее...
13536. Элементы общей теории обыкновенных дифференциальных уравнений первого порядка 129.39 KB
  Такие уравнения называются дифференциальными. Аналогичное исследование с помощью дифференциального уравнения можно провести и для изучения экстратока замыкания. Для того чтобы найти эту функцию отделим переменные t и x друг от друга собрав члены с x в левой части уравнения а члены с t в правой: .
12625. РАСЧЁТ ДИНАМИЧЕСКИХ ХАРАКТЕРИСТИК ЭЛЕКТРИЧЕСКИХ СЛЕДЯЩИХ ПРИВОДОВ С ПРИМЕНЕНИЕМ ОПЕРАЦИОННОГО МЕТОДА РЕШЕНИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 868.94 KB
  Эти системы элементы скачкообразно переходят через ряд состояний в каждом из которых они описываются линейной дифференциальной системой уравнений ЛДУ. Подготовка исходных материалов для составления программы расчёта динамических характеристик ЭСП включает: составление расчётной схемы системы управления или элемента; определение числа учитываемых нелинейностей и как следствие числа учитываемых состояний системы управления или элемента; составление ЛДУ для всех учитываемых состояний и приведение ЛДУ к виду уравнений...
19450. Численные методы решения нелинейных уравнений 156.56 KB
  Видим что обе части не являются алгебраическими и содержат тригонометрические формулы значит это трансцендентное уравнение для решения которого не существует формул для отыскания корней. Построим график для того чтобы примерно определить промежутки содержащие корни см. Для этого реализуем метод половинного деления. Для того чтобы использовать эту функцию напишем скрипт который будет выводить первые пять корней отмечать их на графике а также использовать встроенную функцию для проверки решения и вычислять резонансные частоты стержня.
8663. Дифференциальные уравнения. Системы линейных уравнений с постоянными коэффициентами, методы их решения 60.86 KB
  Системы линейных уравнений с постоянными коэффициентами методы их решения План. Системы линейных уравнений с постоянными коэффициентами методы их решения. Автономные системы дифференциальных уравнений. Классификация точек покоя системы двух однородных линейных дифференциальных уравнений с постоянными коэффициентами.
6396. Виды нелинейных дифференциальных уравнений 1-го порядка 163.25 KB
  Дифференциальное уравнение уравнение связывающее значение некоторой неизвестной функции в некоторой точке и значение её производных различных порядков в той же точке. Дифференциальное уравнение содержит в своей записи неизвестную функцию её производные и независимые переменные; однако не любое уравнение содержащее производные неизвестной функции является дифференциальным уравнением. Нелинейное дифференциальное уравнение дифференциальное уравнение обыкновенное или с частными производными в которое по крайней мере одна...
19491. Решение дифференциальных уравнений в частных производных 267.96 KB
  Экранированная двухпроводная линия РАСЧЕТ Для выполнения расчета необходимо запустить PDE Toolbox для этого необходимо выполнить команду pdetool в рабочей области MTLB.– Двухмерная модель проводящей линии Сначала из геометрических примитивов строиться модель системы см...
© "REFLEADER" http://refleader.ru/
Все права на сайт и размещенные работы
защищены законом об авторском праве.