Автор работы: Пользователь скрыл имя, 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
global tf;
tf = 0.8;
refine = 4;
options = odeset('Events',@events,'
'Refine',refine);
tspan = [ 0: 0.1 : tf];
Y0 = [1;0;0];
[t,Y] = ode45(@div, tspan,Y0, options);
t,
Y,
plot( t, Y(:,1));
hold on;
plot( t, Y(:,2),'r');
plot( t, Y(:,3),'g');
legend('x','y','z', 2);
grid on;
Решением в таком случае будет график (Рисунок 3.)
Рисунок 3 – Решение ОДУ с h=0.1
Глядя на этот график видно, что плавность функций нарушена, это связано в первую очередь с тем, что между точками излома программа не производит вычисления значений функции, т.е. эти точки не входят считаемые значения, они находятся между точками, указанными шагом.
Еще более яркую картину можно увидеть, если поставить значение h=0,2
tspan = [ 0: 0.2 : tf];
Y0 = [1;0;0];
[t,Y] = ode45(@div, tspan,Y0, options);
t,
Y,
plot( t, Y(:,1));
hold on;
plot( t, Y(:,2),'r');
plot( t, Y(:,3),'g');
legend('x','y','z', 2);
grid on;
Результат представлен на графике (Рисунок 4.)
Рисунок 4 – Решение ОДУ с h=0.5
На данном графике нет гладкости функций. Отсюда можно сделать вывод, что чем чаще шаг, тем точнее результат. Оптимальным же в MatLab’е является автоматический шаг, потому что машина самостоятельно подбирает шаг, тратя меньше ресурсов на вычисления.
Построим график функции F(x,y,z)
Для этого в рабочем поле введем следующую строку
plot3(Y(:,1),Y(:,2), Y(:,3))
получим следующий график в трехмерном пространстве (Рисунок 5.):
Рисунок 5 – График в трёхмерном изображении
При изучении движения точки на плоскости или в трехмерном пространстве полезно не только построить траекторию точки, но и следить за движением точки по траектории. MATLAB предоставляет возможность получить анимированный график, на котором кружок, обозначающий точку, перемещается на плоскости или в пространстве, оставляя за собой след в виде линии — траектории движения.
Вводим:
comet3(Y(:,1),Y(:,2), Y(:,3))
Получаем следующий результат (Рисунки 6, 7.)
Рисунок 6 – Движение точки по заданной траектории
Рисунок 7 – Движение точки по заданной траектории
Перед человеком всегда стояла задача решения сложных задач, будь то математических или жизненных. В решении жизненных задач было найдено мало способов и средств решения, чего не скажешь о математических. Сейчас на вооружении огромное число как методов так и средств их реализации. На сегодняшний день в решении математических задач активно используются персональные компьютеры, чьи возможности позволяют решать задачи повышенной сложности. Были разработаны программные средства, позволяющие произвести вычисления с огромной скоростью и точностью. Одним из наиболее ярких представителей этого семейства программных средств является MatLab.
В этой работе было рассмотрено решение типовой задачи: решение системы дифференциальных уравнений методом Рунге-Кутта 4-5 порядка. И легко заметить насколько легко это осуществляется в данной системе. И не нужно быть продвинутым пользователем ПК, чтобы разобраться с принципом работы системы MatLab и освоить ее.
Информация о работе Численное решение систем дифференциальных уравнений