- •Введение
- •Командное окно
- •Редактирование командной строки.
- •Длинные командные строки.
- •Вывод на печать командного окна.
- •Запуск внешних программ.
- •!Notepad
- •Команда format.
- •Выражения
- •Переменные.
- •Inf бесконечность
- •Операторы.
- •Функции.
- •Текстовые комментарии и символьные константы.
- •Операции с рабочей областью
- •Операции с файлами
- •Дневник командного окна
- •Операции с векторами и матрицами
- •Оператор «двоеточие».
- •Векторные индексы.
- •Удаление строк и столбцов.
- •Объединение матриц.
- •Транспонирование матриц.
- •Создание матриц с заданными свойствами.
- •Создание вектора равноотстоящих точек.
- •Создание вектора равноотстоящих точек в логарифмическом масштабе.
- •Разреженные матрицы.
- •Графика
- •Команда plot.
- •Графические объекты.
- •Окна изображений.
- •Добавление кривых на существующий график.
- •Управление осями.
- •Разбиение графического окна.
- •Подписи к осям и заголовки.
- •Графики в полярной системе координат.
- •Контурные графики и графики полей градиентов.
- •Создание массивов данных для трехмерной графики.
- •Построение графиков трехмерных поверхностей.
- •Программирование в системе matlab.
- •Основные типы данных.
- •Арифметические операторы и массивы.
- •Операторы отношения.
- •Логические операторы и функции.
- •Приоритет выполнения операторов.
- •Структура файлов сценариев.
- •Структура m-файлов функций.
- •Использование подфункций.
- •Операторная функция.
- •Передача данных через глобальные переменные.
- •Параметры функционального типа.
- •Функции с переменным числом аргументов.
- •Управление потоками.
- •If expression1
- •Диалоговый ввод.
- •Численные методы и обработка данных
- •Решение систем линейных алгебраических уравнений.
- •Решение систем линейных уравнений итерационными методами.
- •Обратная матрица и определитель.
- •Факторизация Холецкого.
- •Lu факторизация.
- •Qr факторизация.
- •Матричная экспонента.
- •Собственные значения и собственные вектора.
- •Нормальная форма Жордана.
- •Разложение Шура.
- •Сингулярное разложение.
- •Численное интегрирование.
- •Представление полиномов в среде matlab.
- •Умножение и деление многочленов.
- •Вычисление производной от многочлена.
- •Решение систем нелинейных уравнений.
- •Преобразование Фурье.
- •Xlabel('time (seconds)')
- •Решение обыкновенных дифференциальных уравнений.
- •Численное решение дифференциальных уравнений в частных производных.
- •Литература
Арифметические операторы и массивы.
За исключением некоторых матричных операторов, арифметические операторы MATLAB работают с элементами массивов одинаковой размерности. Если в качестве операндов выступают вектора или прямоугольные массивы, то их размерность должна быть одинаковой. Если один из операндов является скаляром, а другой нет, то скаляр применяется к каждому элементу другого операнда. Это правило известно как скалярное расширение.
В качестве примера рассмотрим произведение скаляра и матрицы:
A = magic(3)
A =
8 1 6
3 5 7
4 9 2
3 * A
ans =
24 3 18
9 15 21
12 27 6
Для возведения матрицы в степень следует использовать оператор ‘^’, например:
B = A^2
B =
91 67 67
67 91 67
67 91
здесь A – магическая матрица из предыдущего примера. Для возведения в степень каждого отдельного элемента матрицы A следует использовать оператор ‘.^’, например:
C = A.^2
C =
64 1 36
9 25 49
16 81 4
Для правого матричного деления используется оператор ‘/’, по определению B/A = (A'\B')':
B/A
ans =
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000
Почленное правое деление С./A образует матрицу с элементами C(i, j)/ A(i, j) :
C./A
ans =
8 1 6
3 5 7
4 9 2
Для левого матричного деления используется оператор ‘\’, грубо говоря, A\B означает то же, что и inv(A)*B, за исключением способа реализации:
A\B
ans =
8.0000 1.0000 6.0000
3.0000 5.0000 7.0000
4.0000 9.0000 2.0000
Eсли A – квадратная матрица с размерностью nxn, а B – вектор-столбец с n компонентами или матрица с несколькими такими столбцами, то X = A\B есть решение системы уравнений AX = B вычисленное методом исключения Гаусса. Если матрица A плохо масштабирована или близка к сингулярной (определитель матрицы равен нулю), то система выдает соответствующее предупреждение. Если A не является квадратной матрицей, то X = A\B является квази-решением недоопределенной (число уравнений меньше числа неизвестных) или переопределенной (число уравнений больше числа неизвестных) системы уравнений AX = B.
Оператор почленного левого деления A.\B создает матрицу с элементами B(i,j)/A(i,j). Матрицы A и B должны иметь одинаковую размерность. Пример:
A.\C
ans =
8 1 6
3 5 7
4 9 2
Оператор матричного транспонирования (‘) меняет местами строки и столбцы исходной матрицы. Если элементы матрицы являются комплексными числами, то при транспонировании они заменяются своими комплексно-сопряженными значениями:
D=[1 1-2i; 1+3i 2]
D =
1.0000 1.0000 - 2.0000i
1.0000 + 3.0000i 2.0000
Почленное транспонирование комплексной матрицы операцию комплексного сопряжения не проводит:
D.'
ans =
1.0000 1.0000 + 3.0000i
1.0000 - 2.0000i 2.0000
При сложении двух матриц A+B (или вычитании A-B) требуется, чтобы они имели одинаковую размерность. Если одна из матриц является константой, то при сложении эта константа прибавляется к каждому элементу другой матрицы:
A+B
ans =
99 68 73
70 96 74
76 93
A+4
ans =
12 5 10
7 9 11
8 13 6
Следует отметить, что каждый арифметический оператор имеет аналогичную по своему названию функцию. Например, вместо оператора матричного сложения A+B можно использовать функцию plus(A, B). Полный список операторов можно получить по команде help ops. Соответствие функций операторам позволяет одновременно использовать элементы как операторного, так и функционального программирования.