- •Некоторые сведения о пакете Matlab.
- •Данные в ml
- •Матрицы
- •Операции в ml
- •Логические операции:
- •Приоритет операций в ml:
- •Тригонометрические функции.
- •Особые матрицы
- •Операции с векторами и матрицами.
- •Выполнение операций над матрицами.
- •Специальные функции для матриц.
- •Действия с элементами матрицы
- •Анализ данных (для постолбцовой обработке матриц)
- •Действия с полиномами (многочленами)
- •Графика в ml
- •Диаграммы и гистограммы.
- •Круговые диаграммы.
- •Программирование в ml
- •Операторы языка
- •Операторы ввода/вывода
- •Операторы цикла и условные операторы.
- •Операторы цикла.
- •Оператор цикла с параметром:
- •Оператор цикла с предусловием:
- •Условный оператор.
- •Оператор переключения (выбора).
- •Функция eval
- •Функция menu.
- •Файлы функции
- •Вычисление интеграла.
- •Нахождение нулей функции.
- •Решение систем дифференциальных уравнений.
-
Решение систем дифференциальных уравнений.
Система ML имеет встроенные средства для решения обыкновенных дифференциальных уравнений (ДУ) произвольного порядка. Обыкновенное дифференциальное уравнение – это уравнение, содержащее аргумент, искомую функцию этого аргумента и ее производные различных порядков F(t, y, y’,…, y(n))=0. Наивысший порядок производной искомой функции в данном уравнении называется порядком дифференциального уравнения. Решением дифференциального уравнения является такая функция, которая при подстановке в дифференциальное уравнение обращает его в верное равенство. Самое простое ДУ – это уравнение 1-го порядка, разрешенного относительно производной. Оно имеет вид y’=f(t, y). Если y является вектором, то речь идет о системе дифференциальных уравнений. ДУ и системы порядка 2 и выше можно свести к системам уравнений 1-го порядка. Так, для того чтобы свести к системе уравнений 1-го порядка уравнение y’’=f(t, y, y’), нужно использовать замену: y1=y и y2=y’. В результате замены будем иметь систему:
y1’=y2
y2’=F(t, y1, y2)
В ML имеется целый ряд встроенных функций, предназначенных для решения этой задачи. Это функции ode23, ode45, ode113 и …. В перечисленных функциях реализованы различные методы решения ДУ. Наиболее часто используют функции ode23 и ode45, в основе работы которых лежит метод Рунге-Кутта. Для уравнений 2 и 3 порядков используют функцию ode23, а для уравнений 4 и 5 порядков – функцию ode45.
[t, y]= <название метода>(‘<fun>’, <tspan>, <y0>), где
t – вектор-столбец, содержащий значение независимой переменной (обычно это время t);
y – массив решений, каждая строка которого соответствует определенному значению t;
fun – имя m-файла, в котором вычисляются правые части системы ДУ;
tspan – вектор, определяющий интервал интегрирования;
y0 – скаляр или вектор-столбец, в котором задаются начальные условия.
Пример.
Имеем ДУ y’’+4y’+5y=0
С начальными условиями y(0)=3 и y’(0)=-5
Выполним замену : y1=y и y2=y’, получим систему ДУ:
y1’=y2
y2’=-5y1-4y2
при y1(0)=3 и y2(0)=-5
Составим файл-функцию для вычисления правых частей системы ДУ.
function F=mydif(t,y)
F=[y(2); -5*y(1)-4*y(2)];
Сохраним файл в текущем каталоге. Обратимся к функции ode45.
>> [t,y]=ode45('mydif', [0 5],[3;-5])
Отобразим график решения ДУ и график производной (график изменения координаты точки и ее скорости в зависимости от времени).
>> plot(t,y(:,1),'r',t,y(:,2),'k--')
>> xlabel('t');
>> ylabel('y,y\prime')