- •Моделирование движения голономных механических систем в пакете Matlab
- •Введение
- •Основы программирования в системе Matlab
- •Работа с матрицами
- •Построение графиков
- •Дескрипторная графика [2] Графические объекты
- •Использование дескрипторов объектов
- •Функции для работы с графическими объектами
- •Установка свойств объекта
- •Определение осей или рисунка
- •Нахождение дескрипторов существующих объектов
- •Скрипты и функции
- •Полезные команды
- •Решение систем дифференциальных уравнений
- •Визуализация движения в Матлабе
- •Библиотека примитивов
- •Окружность
- •Заштрихованная кривая
- •Спираль
- •Пружина
- •Примеры моделирования голономных систем Диск с маятником
- •Визуализация динамики механической системы.
- •Уравнения равновесия системы
- •Динамические эффекты на примере диска с маятником
- •Цилиндр, катающийся в подвижном желобе
- •Заключение
- •Литература
Основы программирования в системе Matlab
В данном разделе будут рассмотрены основные возможности и инструменты языка программирования Matlab.
Для хранения данных Matlab использует именованные области памяти, которые называются переменными. В переменные можно записывать числа, символы, строки. В отличие от других математических программ любая переменная внутри Matlab представляется в виде массива. Если в переменную записать число, то внутреннее представление этой переменной будет массивом размерностью 1×1.
Для работы с переменными можно использовать операторы, простейшими из которых являются арифметические, логические и операторы отношений.
Арифметические операторы
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
/ |
Деление |
\ |
Деление слева |
^ |
Возведение в степень |
( ) |
Скобки определяют порядок вычислений |
Логические операторы
& (and) |
Логическое И |
| (or) |
Логическое Или |
~ (not) |
Логическое Не |
xor |
Исключающее Или |
Пример
Булевые значения обозначаются зарезервированными словами языка Matlab:
true Логическая 1, Истина
false Логический 0, Ложь
Операторы отношений
== (eq) |
< (lt) |
<= (le) |
~= (ne) |
> (gt) |
>= (ge) |
|
|
|
Пример
Символ ; в конце строки означает запрет вывода на экран результатов выполнения выражения. Этот символ удобно использовать при отладке программы: достаточно убрать его, чтобы получить результат в командном окне. При вводе длинных выражений, не умещающихся на одной строке, можно использовать многоточие и клавишу Enter или комбинацию клавиш Shift+Enter для указания того, что выражение продолжится на следующей строке.
Работа с матрицами
Главная особенность языка заключается в том, что все переменные представляются в виде матриц. При этом скалярные числа в представлении Matlab являются матрицами размерностью 1x1. Элементами матриц могут быть переменные любых типов.
В примере после знака >> вводится матрица A. При инициализации элементы матрицы заключаются в квадратные скобки. Конец строки матрицы определяется знаком ";", разделителем между элементами матрицы в строке служат пробел или запятая. После нажатия клавиши Enter, Matlab выводит на экран результат выполнения команды.
Простейшие функции работы с матрицами
Функции Matlab, предназначенные для работы с матрицами, позволяют для заданной матрицы получить какие-либо ее характеристики (определитель, след и т.д.) или построить новую матрицу (обратную, транспонированную и т.д.).
A' |
возвращает транспонированную матрицу A |
diag(A) |
возвращает диагональные элементы матрицы A |
det(A) |
возвращает определитель матрицы A |
inv(A) |
возвращает матрицу обратную к A |
eig(A) |
возвращает собственные значения матрицы A |
poly(A) |
возвращает коэффициенты характеристического полинома матрицы A |
length(A) |
возвращает число элементов матрицы A. Если массив многомерный, то возвращается число элементов наибольшей размерности массива. |
size(A) |
возвращает вектор, содержащий величины размерностей матрицы A. |
Для обращения к конкретному элементу матрицы необходимо указать порядковый номер его строки и столбца. Например, чтобы получить значение элемента, находящегося в первой строке втором столбце матрицы A, введем команду
Как видно из примера, если явно не присваивать результат вычисления какой-либо переменной, то он сохранится в служебной переменной ans.
Для генерации матриц удобно использовать специальные функции:
zeros |
все элементы нули |
ones |
все элементы единицы |
rand |
равномерно распределенные случайные элементы |
randn |
нормально распределенные случайные элементы |
Ниже представлено два примера генерации нулевых матриц
Для удаления строк или столбцов матрицы необходимо просто присвоить им пустую матрицу. В следующем примере удаления второй строки ранее созданной матрицы A для обозначения всех элементов второй строки используется символ :.
Операции над матрицами.
В Matlab имеется большой арсенал средств для выполнения операций над матрицами. Вот некоторые из них:
+ |
Сложение |
- |
Вычитание |
* |
Умножение |
.* |
Поэлементное произведение |
./ |
Поэлементное деление |
.\ |
Поэлементное деление слева |
.^ |
Поэлементное возведение в степень |
.' |
Поэлементное транспонирование |
Ниже представлен пример умножения двух матриц.
Пример поэлементного возведения в степень:
