
- •Iofun — функции ввода/вывода;
- •Общие принципы работы с пакетом Matlab
- •Браузер файловой структуры
- •View — вывод и скрытие панели инструментов;
- •Import data — открывает окно импорта файлов данных.
- •Сообщения об ошибках и исправление ошибок
- •Форматы чисел
- •Операции с рабочей областью и текстом сессии
- •1Oad( 'fname'....) — загрузка файла fname.Mat в форме функции.
- •Завершение вычислений и работы с системой
- •Столбцовые диаграммы
- •Контурные графики
- •Создание массивов данных для трехмерной графики
- •Построение графиков поверхностей
- •Tрехмерные контурные графики
- •Управление свойствами осей графиков
- •Вывод шкалы цветов
- •Формирование векторов и матриц
- •Создание матриц с заданными свойствами
- •Определитель и ранг матрицы
- •Применение оператора «:» в многомерных массивах
- •Апроксимация производных конечными разностями
- •Численное интегрирование
- •Inner — внутренняя переменная, изменяющаяся на закрытом интервале от inmin до inmax, a outer — внешняя переменная, изменяющаяся на закрытом интервале от outmin до outmax.
- •Решение обыкновенных дифференциальных уравнений
- •Преобразования Фурье
- •Функции одномерного прямого преобразования Фурье
Применение оператора «:» в многомерных массивах
Оператор «:» (двоеточие) позволяет легко выполнять операции по увеличению размерности массивов. Приведем пример формирования трехмерного массива путем добавления новой страницы. Пусть у нас задан исходный двумерный массив М размером 3x3:
» М=[1 2 3; 4 5 6; 7 8 9]
М =
1 2 3
4 5 6
7 8 9
Для добавления новой страницы с тем же размером можно расширить М следующим образом:
M(:,:,2)=[10 11 12; 13 14 15; 16 17 18]
M(:,:,1) =
1 2 3
4 5 6
7 8 9
M(:,:,2) =
10 11 12
13 14 15
16 17 18
Посмотрим, что теперь содержит массив М при явном его указании:
Как можно заметить, числа в выражениях М(:.:, 1) и М(:,: ,2) означают номер страницы.
Доступ к отдельному элементу многомерного массива
Чтобы вызвать центральный элемент сначала первой, а затем второй страницы, надо записать следующие выражения:
» M(2,2,1)
ans =
5
Таким образом, в многомерных массивах используется то же правило индексации, что и в одномерных и двумерных. Произвольный элемент, например, трехмерного массива задается как М(i,j,k), где i — номер строки, j — номер столбца и k — номер страницы. Этот элемент можно вывести, а можно присвоить ему заданное значение х: М(i,j,k)=x.
Удаление размерности в многомерном массиве
Мы уже отмечали возможность удаления отдельных столбцов присвоением им значений пустого вектора-столбца [ ]. Этот прием нетрудно распространить на страницы и вообще размерности многомерного массива. Например, первую страницу полученного массива М можно удалить следующим образом:
» М(:,:,1)=[ ]
Численные методы
Элементарные средства решения СЛУ
Решение систем линейных уравнений (СЛУ) относится к самой массовой области применения матричных методов. В этом разделе вы найдете ответы на вопросы, каким образом применяются указанные методы и какие дополнительные функции имеет система MATLAB для решения систем линейных уравнений.
Как известно, обычная СЛУ имеет вид:
а11X1+а12,X2...+ а1nXn=b1
Здесь а11, a12,..., апп — коэффициенты, образующие матрицу А, которые могут иметь действительные или комплексные значения, x1, х2,..., хп — неизвестные, образующие вектор X, и b1, b2,..., bп — свободные члены (действительные или комплексные), образующие вектор В.
Эта система может быть представлена в матричном виде как АХ=В, где А — матрица коэффициентов уравнений, X — искомый вектор неизвестных и В — вектор свободных членов. В зависимости от вида матрицы А и ее характерных особенностей MATLAB позволяет реализовать различные методы решения.
Для реализации различных алгоритмов решения СЛУ и связанных с ними матричных операций применяются следующие операторы: +,-,*,/, \, ^, '.
Как отмечалось ранее, MATLAB имеет два различных типа арифметических операций — поэлементные и для массивов (векторов и матриц) в целом. Матричные арифметические операции определяются правилами линейной алгебры.
Арифметические операции сложения и вычитания над массивами выполняются поэлементно. Знак точки «.» отличает операции над элементами массивов от матричных операций. Однако, поскольку операции сложения и вычитания одинаковы для матрицы и элементов массива, знаки «.+» и «.-» не используются. Рассмотрим другие операторы и выполняемые ими операции:
-
* — матричное умножение;
-
С = А*В — линейное алгебраическое произведение матриц А и В:
Для случая нескалярных А и В число столбцов матрицы А должно равняться числу строк матрицы В.
Скаляр может умножаться на матрицу любого размера.
-
/ — правое деление. Выражение Х=В/А дает решение ряда систем линейных уравнений АХ=В, где А — матрица размера тхп и В — матрица размера nx1;
-
\ — левое деление. Выражение Х=В\А дает решение ряда систем линейных уравнений ХА=В, где А — матрица размера тхп и В — матрица размера nx1. Если А — квадратная матрица, то А\В — примерно то же самое, что и inv(A)*B, в остальных случаях возможны варианты, отмеченные ниже.
Если А — матрица размера пхп, а В — вектор-столбец с п компонентами или матрица с несколькими подобными столбцами, тогда Х=А\В — решение уравнения АХ=В, которое находится хорошо известным методом исключения Гаусса.
-
^ — возведение матрицы в степень. Х^р — это X в степени р, если р — скаляр. Если р — целое число, то степень матрицы вычисляется путем умножения X на себя р раз. Если р — целое отрицательное число, то X сначала инвертируется. Если X — скаляр и Р — матрица, то Х^Р — это скаляр X, возведенный в матричную степень Р. Если X и Р — матрицы, то Х^Р становится некорректной операцией и система выдает сообщение об ошибке. Возможный вариант решения матричного уравнения АХ=В с применением оператора ^ можно представить как Х=В*А^-1.
-
' — транспонирование матрицы, то есть замена строк столбцами и наоборот. Например, А' — транспонированная матрица А. Для комплексных матриц транспонирование дополняется комплексным сопряжением. Транспонирование при решении СЛУ полезно, если в матрице А переставлены местами столбцы и строки.
При записи СЛУ в матричной форме необходимо следить за правильностью записи матрицы А и вектора В. Пример (в виде m-файла):
A=[2 1 0 1; 1 -3 2 4; -5 0 -1 -7; 1 -6 2 6];
B=[8 9 -5 0];
X1=B/A
X2=B*A^-1
X3=B*inv(A)
Эта программа выдает результаты решения тремя способами:
X1 =
3.0000 -4.0000-1.00001.0000
Х2 =
3.0000 -4.0000-1.00001.0000
X3 =
3.0000 -4.0000-1.00001.0000
Как и следовало ожидать, результаты оказываются одинаковыми для всех трех методов.