- •Предисловие
- •Введение
- •Зачем нужен такой практикум?
- •О чем сказано далее
- •О системе MATLAB
- •Первые задачи
- •Фигуры Лиссажу
- •Биения
- •Волны
- •Основные графические объекты и их использование
- •Отрисовка движущихся кривых
- •Об использовании безразмерных переменных
- •Маятник
- •Свободные колебания
- •Вынужденные колебания
- •Переходные колебания
- •Резонанс
- •О случайном движении
- •Движение частиц в центральном поле
- •Траектория финитного движения
- •Влияние малого возмущения
- •Движение двух частиц
- •Случайные блуждания и диффузия
- •Закономерности случайных блужданий
- •Оценка параметров движения броуновской частицы в жидкости
- •Программа, изображающая случайные блуждания
- •Броуновские частицы в поле тяжести
- •Броуновское движение
- •Случайные силы
- •Корреляционные функции
- •Шары
- •Расчет движения шаров
- •Алгоритм расчета
- •Процедура Balls
- •Динамический хаос
- •Почему движение шаров становится непредсказуемым?
- •Как убедиться в появлении хаоса?
- •Функции распределения
- •Стохастический нагрев и стохастическое охлаждение
- •Потери пучка при прохождении через вещество
- •Эффективные сечения
- •Потери частиц пучка при прохождении слоя
- •Потери энергии
- •Распределение по углам и энергиям
- •Работа с сигналами и модель диодного выпрямителя
- •Работа с сигналами
- •Расчет простейших цепей
- •Статическая модель диода. Решение нелинейных уравнений
- •ПРИЛОЖЕНИЕ
- •Свободные колебания
- •Электрические и магнитные поля
- •Частица в магнитной ловушке
- •Фокусировка пучков частиц
- •Концентрация частиц
- •Приближенные методы решения систем дифференциальных уравнений
- •Моделирование распределения случайных величин
- •Компиляция файлов MATLAB
- •Список литературы
- •Работа в командном окне
- •Вход в систему MATLAB
- •Интерактивный доступ к справочной информации и документации
- •Команда hеlр
- •Команда lookfor
- •Меню Help
- •Редактирование и перевызов командной строки
- •Формат вывода
- •Копия протокола сессии
- •Введение матриц
- •Явное определение матриц
- •Функции построения матриц
- •Операции, выражения и переменные
- •Правила записи операторов
- •Матричные операции
- •Операции с массивами
- •Сохранение данных из рабочей области
- •Операторы for, while, if, case и операторы отношения
- •Цикл for
- •Цикл while
- •Условный оператор if
- •Оператор переключения case
- •Условия (операторы отношения)
- •Функция find
- •Функции MATLAB
- •Скалярные функции
- •Векторные функции
- •Матричные функции
- •M-файлы
- •Файлы-программы, или сценарии
- •Файлы-функции
- •Текстовые строки, сообщения об ошибках, ввод
- •Работа с m-файлами
- •Список путей доступа
- •Работа со списком путей доступа
- •Текущий каталог
- •Средство просмотра и редактирования путей доступа Path Browser
- •Использование редактора/отладчика
- •Отладка m-файлов
- •Сравнение алгоритмов: flops и etime
- •Графика
- •Плоские графики
- •Команда plot
- •Разметка графика и надписи
- •Управление осями при выводе графиков
- •Несколько графиков на листе
- •Специальные виды графиков
- •Столбиковые диаграммы
- •Ступенчатые кривые
- •Гистограммы
- •Изображение функций
- •Трехмерные изображения
- •Одномерная кривая
- •Сеточные поверхности
- •Изолинии
- •Дескрипторная графика (графика низкого уровня)
- •Графические объекты и их иерархия
- •Дескрипторы и работа с ними
- •Свойства графических объектов и работа с ними. Функции get и set
- •Движущиеся графики (анимация)
- •Разработка графического интерфейса пользователя
- •Создание внешнего вида интерфейса
- •Способы взаимодействия графического интерфейса с функциями пользователя
- •Общая структура функции NAME.M графического интерфейса
- •Функционирование графического интерфейса
- •Разработка функции Run
- •Разработка функции Exit
- •Разработка функции Edit
рица из 0 и 1 (ложь или истина). Таким образом можно с помощью одного оператора find определить и записать сразу все индексы матрицы, удовлетворяющие некоторому условию. Если при этом вспомнить, что оператор цикла for допускает форму for k=KK, где KK - целый вектор, то удобно использовать их вместе. Например если вам необходимо выполнить <оператор> только для тех элементов матрицы, которые больше 3, то удобно это сделать следующим образом:
for i=find(A>3) <оператор>
end;
5. Функции MATLAB
В системе MATLAB существует большое количество функций, подготовленных разработчиками системы (см. п. E ). Большинство из них предоставлено в виде исходных текстов. Можно эти функции классифицировать по областям их использования (тригонометрические, спецфункции, функции линейной алгебры и т.д.), но здесь мы вкратце опишем действия функций по отношению к матричному характеру переменных MATLAB.
5.1.Скалярные функции
Определенные функции MATLAB действуют только на скаляры, но когда аргументом их является матрица, то они действуют поэлементно. К таким функциям относятся
sin |
asin |
exp |
abs |
round |
cos |
acos |
log (натуральнй) |
sqrt |
floor |
tan |
atan |
rem (остаток) |
sign |
ceil |
5.2. Векторные функции
Существуют другие функции, аргументами которых являются вектора (строки или столбцы), но если эти функции действуют на матрицу размера mxn (m >= 2), то они действуют постолбцово, т.е. результатом действия является вектор-строка, каждый элемент которой является результатом действия этой функции на соответствующий столбец. Построчное действие такой функции (если необходимо) может быть достигнуто использованием операции транспонирования. Например, mean(A’). Некоторые из этих функций приведены далее:
121
max |
sum |
median |
any |
min |
prod |
mean |
all |
sort |
std |
|
|
Например, максимальный элемент прямоугольной матрицы находится с помощью команды max(max(A)), а не с помощью max(A). Попробуйте сами выполнить эти операции.
5.3.Матричные функции
Наибольшую мощь системе MATLAB дают матричные функции. Наиболее употребительные приведены в следующей таблице:
eig |
собственные значения и собственные вектора |
chol |
факторизация Холецкого |
svd |
сингулярная декомпозиция |
inv |
обратная матрица |
lu |
LU-факторизация |
qr |
QR-факторизация |
hess |
форма Хессенберга |
schur |
декомпозиция Шура |
rref |
приведение к треугольной форме методом Гаусса |
expm |
матричная экспонента |
sqrtm |
матричный корень квадратный |
poly |
характеристический полином |
det |
определитель |
size |
размерность |
norm |
норма вектора или матрицы |
cond |
число обусловленности |
rank |
ранг матрицы |
Функции MATLAB могут иметь один или несколько результатов. Например, функция y = eig(A), или просто eig(A) генерирует вектор-столбец, содержащий собственные значения матрицы A, в то время как оператор [U,D] = eig(A) генерирует матрицу U, чьи столбцы являются собственными векторами A, а диагональная матрица D содержит на главной диагонали собственные значения этой матрицы. Попробуйте вычислить это сами.
122