- •Предисловие
- •Введение
- •Зачем нужен такой практикум?
- •О чем сказано далее
- •О системе 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
матрицу нулей такой же размерности, как и A. Если x – вектор, то diag(x) – это диагональная матрица, у которой на главной диагонали стоит вектор x; если A – квадратная матрица, то diag(A) – это вектор, элементы которого состоят из диагональных элементов A. Проверьте, чему равна diag(diag(A))? Матрицы можно строить из блоков. Например, если A – матрица 3х3, тогда команда
B=[A, zeros(3,2); zeros(2,3), eye(2)]
создает новую матрицу 5х5. Попробуйте выполнить эту команду сами.
3.Операции, выражения и переменные
3.1.Правила записи операторов
MATLAB является интерпретирующим языком непосредственных вычислений, т.е. выражения, которые вы вводите, интерпретируются и вычисляются. Операторы MATLAB обычно имеют форму
переменная = выражение или просто
выражение
Выражение, как правило, формируется из операторов, функций и имен переменных. После выполнения выражения генерируется матрица, которая выводится на экран и присваивается соответствующей переменной для последующего использования. Если имя переменной в левой части и знак = отсутствуют, автоматически генерируется переменная ans (answer - ответ), которой присваивается результат вычислений.
Обычно оператор завершается клавишей Enter. Однако в случае необходимости оператор может быть продолжен на следующей строке, для чего его необходимо завершить тремя или более точками, после которых следует Enter. С другой стороны, в одной строке может быть несколько операторов, разделенных запятой или точкой с запятой.
Если последним символом в строке является точка с запятой, то вывод значений результата не производится, но присвоение выполняется. Это помогает подавить вывод ненужных промежуточных результатов. MATLAB различает большие и маленькие буквы в именах команд, функций и переменных. Например, solveUT не то же самое, что solveut. Команда who выводит список всех переменных в рабочем пространстве. Переменная может быть удалена из рабочего пространства командой clear <имя_переменной>. Команда clear без аргументов очищает все непостоянные переменные в рабочем пространстве. Постоянная переменная eps
115
(epsilon) представляет машинную точность - порядка 10−6 на большинстве машин. Эта переменная является полезной при определении сходимости итеративных процессов. Вывод на дисплей или вычисления могут быть прерваны на большинстве компьютеров, не покидая MATLAB, с помощью комбинации клавиш Ctrl+C
(Ctrl+Break на PC).
3.2. Матричные операции
Следующие матричные операции доступны в MATLAB:
+ |
сложение |
- |
вычитание |
* |
умножение |
ˆ |
степень |
’ |
транспонирование |
\ |
левое деление |
/ |
правое деление |
Эти матричные операции применимы, конечно, и к скалярам (матрицам 1х1). Если размерность матриц не соответствует используемой операции, то система генерирует сообщение об ошибке за исключением случаев, когда одним из операндов является скаляр, потому что в этом случае операция выполняется между скаляром и каждым элементом матрицы второго операнда.
Оперция «матричное деление» требует специальных комментариев. Если A является обращаемой квадратной матрицей, а b - вектор-столбец или вектор-строка соответственно, тогда x = A\b является решением уравнения A x = b , а x = b/A является решением уравнения x A = b . Если A - квадратная матрица, то при левом делении для факторизации используется метод исключения Гаусса и эта факторизация позволяет решить уравнение A x = b. Если матрица не квадратная, то для ее факторизации используется метод ортогонализации Хаусхольдера с ведущим столбцом, а приведенная матрица используется для решения недоили переопределенной системы уравнений в смысле наименьших квадратов. Правое деление определяется в терминах левого деления по формуле b/A = (A \b ) .
3.3. Операции с массивами
Матричные операции сложения и вычитания действуют поэлементно, а остальные приведенные выше операции - нет, они являются матричными операциями. Следует отметить, что приведенные выше операции *,ˆ, \, / могут стать поэлементными,
116