Методы решения обыкновенных дифференциальных уравнений
Решение дифференциального уравнения для вертикальных колебаний под действием вынуждающей силы. Сравнение функции ode45 и метода Рунге-Кутты 4 порядка. Оценка точности результата решения данного уравнения методом Эйлера и методом Рунге-Кутты 4 порядка.
Рубрика | Математика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 10.10.2015 |
Размер файла | 342,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru//
Размещено на http://www.allbest.ru//
Федеральное государственное автономное образовательное учреждение
высшего профессионального образования
«СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»
ИНСТИТУТ ИНЖЕНЕРНОЙ ФИЗИКИ и РАДИОЭЛЕКТРОНИКИ
Кафедра «Приборостроение и наноэлектроника»
ОТЧЕТ ПО ЛАБОРАТОРНОЙ РАБОТЕ №2
Методы решения обыкновенных дифференциальных уравнений
Красноярск, 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 порядка). Создадим файл-функцию для нашего уравнения.
functiondx = 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; closeall;
Y0=[0 0]; % Начальные значения
h=0.01; % Шаг
t0=0;
t1=30;
T0=[t0:h:t1]; % Интервал для решения
[T, Y] = ode45('diff_fun', T0, Y0);
holdon
plot(T, Y(:,1), 'b-', 'LineWidth', 2)
plot(T, Y(:,2), 'r-', 'LineWidth', 2)
gridon
Дополним код собственными функциями и сравним полученный результат.
clc; clear; closeall;
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);
clearT0TY% Очищаем переменные
%% Собственная функция (Метод Рунге-Кутты)
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('Амплитуда');
clearY2Y1
%% Собственная функция (Метод Эйлера)
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 порядка.
Размещено на Allbest.ru
...Подобные документы
Численное решение уравнения методом Эйлера и Рунге-Кутта в Excel. Программа на языке Turbo Pascal. Блок-схема алгоритма. Метод Рунге-Кутта для дифференциального уравнения второго порядка. Модель типа "хищник-жертва" с учетом внутривидового взаимодействия.
курсовая работа [391,5 K], добавлен 01.03.2012Практическое решение дифференциальных уравнений в системе MathCAD методами Рунге—Кутты четвертого порядка для решения уравнения первого порядка, Булирша — Штера - системы обыкновенных дифференциальных уравнений первого порядка и Odesolve и их графики.
лабораторная работа [380,9 K], добавлен 23.07.2012Общая характеристика и особенности двух методов решения обычных дифференциальных уравнений – Эйлера первого порядка точности и Рунге-Кутта четвёртого порядка точности. Листинг программы для решения обычного дифференциального уравнения в Visual Basic.
курсовая работа [1,1 M], добавлен 04.06.2010Получение точного решения дифференциального уравнения вручную, операторным методом, приближенное решение с помощью рядов (до 5 элемента ряда) на заданном интервале, графическое решение. Относительная и абсолютная погрешность методов Эйлера и Рунге-Кутты.
курсовая работа [990,8 K], добавлен 17.07.2014Теоретическое обоснование расчетных формул. Задача Коши для дифференциального уравнения первого порядка. Метод Рунге-Кутта. Ломаная Эйлера. Построение схем различного порядка точности. Выбор шага. Апостериорная оценка погрешности. Правило Рунге.
курсовая работа [111,1 K], добавлен 13.11.2011Изучение методов Рунге-Кутты четвертого порядка с автоматическим выбором длины шага интегрирования для решения дифференциальных уравнений. Оценка погрешности и сходимость методов, оптимальный выбор шага. Листинг программы для ЭВМ, результаты, иллюстрации.
курсовая работа [2,9 M], добавлен 14.09.2010Составление диагональной системы способом прогонки, нахождение решения задачи Коши для дифференциального уравнения на сетке методом Эйлера и классическим методом Рунге-Кутта. Построение кубического сплайна интерполирующей функции равномерного разбиения.
практическая работа [46,1 K], добавлен 06.06.2011Решение нелинейных уравнений методом касательных (Ньютона), особенности и этапы данного процесса. Механизм интерполирования функции и численное интегрирование. Приближенное решение обыкновенных дифференциальных уравнений первого порядка методом Эйлера.
курсовая работа [508,1 K], добавлен 16.12.2015Основные методы Рунге-Кутта: построение класса расчетных формул. Расчетная формула метода Эйлера. Получение различных методов Рунге-Кутта с погрешностью второго порядка малости при произвольном задавании параметров. Особенности повышения порядка точности.
реферат [78,4 K], добавлен 18.04.2015Аналитическое и компьютерное исследования уравнения и модели Ван-дер-Поля. Сущность и особенности применения методов Эйлера и Рунге-Кутта 4 порядка. Сравнение точности метода Эйлера и Рунге-Кутта на одном графике, рисуя фазовые траектории из 1 точки.
курсовая работа [341,7 K], добавлен 06.10.2012Дифференциальные уравнения Риккати. Общее решение линейного уравнения. Нахождение всех возможных решений дифференциального уравнения Бернулли. Решение уравнений с разделяющимися переменными. Общее и особое решения дифференциального уравнения Клеро.
курсовая работа [347,1 K], добавлен 26.01.2015Дифференциальное уравнение первого порядка, разрешенное относительно производной. Применение рекуррентного соотношения. Техника применения метода Эйлера для численного решения уравнения первого порядка. Численные методы, пригодные для решения задачи Коши.
реферат [183,1 K], добавлен 24.08.2015Решение дифференциального уравнения методом численного интегрирования Адамса. Методы, основанные на применении производных высших порядков. Формулы, обеспечивающие более высокую степень точности, требующие вычисления третьей производной искомого решения.
курсовая работа [81,9 K], добавлен 29.08.2010Уравнения с разделяющимися переменными, методы решения. Практический пример нахождения частного и общего решения. Понятие о неполных дифференциальных уравнениях. Линейные уравнения первого порядка. Метод вариации постоянной, разделения переменных.
презентация [185,0 K], добавлен 17.09.2013Задачи Коши и методы их решения. Общие понятия, сходимость явных способов типа Рунге-Кутты, практическая оценка погрешности приближенного решения. Автоматический выбор шага интегрирования, анализ брюсселятора и метод Зонневельда для его расчета.
курсовая работа [1,7 M], добавлен 03.11.2011Порядок решения дифференциального уравнения 1-го порядка. Поиск частного решения дифференциального уравнения, удовлетворяющего указанным начальным условиям. Особенности применения метода Эйлера. Составление характеристического уравнения матрицы системы.
контрольная работа [332,6 K], добавлен 14.12.2012Решение задачи Коши для дифференциального уравнения. Погрешность приближенных решений. Функция, реализующая явный метод Эйлера. Вычисление погрешности по правилу Рунге. Решение дифференциальных уравнений второго порядка. Условие устойчивости для матрицы.
контрольная работа [177,1 K], добавлен 13.06.2012Общая постановка задачи решения обыкновенных дифференциальных уравнений, особенности использования метода Адамса в данном процессе. Решение системы обыкновенных дифференциальных уравнений методом Адамса и точным методом, сравнение полученных результатов.
курсовая работа [673,6 K], добавлен 27.04.2011История возникновения дифференциальных исчислений. Изучение особенностей дифференциального уравнения I порядка. Описание соотношения, связывающего функцию и ее производные. Рассмотрение метода изоклин. Построение интегральных кривых методом изоклин.
курсовая работа [458,4 K], добавлен 17.02.2016Задачи Коши для дифференциальных уравнений. График решения дифференциального уравнения I порядка. Уравнения с разделяющимися переменными и приводящиеся к однородному. Однородные и неоднородные линейные уравнения первого порядка. Уравнение Бернулли.
лекция [520,6 K], добавлен 18.08.2012