- •А.К. Ефремов интегрированная
- •Рекомендовано редсоветом мгту им. Н.Э. Баумана
- •Isbn 5-7038-2301-3 мгту им. Н.Э. Баумана, 2003
- •1. Интерфейс системЫ matlab
- •1.1. Программная группа matlab
- •1.2. Командное окно matlab
- •1.2.1. Главное меню
- •1.2.2. Панель инструментов
- •1.3. Настройка параметров рабочего пространства
- •1.4. Справочная система matlab
- •2. Работа в режиме прямых вычислений
- •3. Базовые объекты системы matlab
- •3.1. Способы формирования матриц и векторов
- •3.2. Матричные операции и функции
- •3.3. Решение линейных уравнений
- •3.4. Вычисление корней полиномов
- •3.5. Обработка данных
- •4. Графические средства системы matlab
- •4.1. Графические объекты на плоскости
- •4.1.1. Функция plot
- •4.1.2. Функции fplot и ezplot
- •4.1.3. Другие графические функции
- •4.1.5. Обработка данных
- •4.2. Построение трехмерных поверхностей и тел
- •4.2.1. Основные графические функции
- •4.2.2. Дополнительные возможности
- •5. Основы программирования в среде matlab
- •5.1. Общие положения
- •5.2. Примеры простых программ
- •Xlabel('sin(X)') % Надпись по оси х
- •Xlabel('X') % Надпись по оси абсцисс
- •5.3. Программа с использованием внешней функции
- •5.4. Дополнительные программы
- •5.4.1. Дифференцирование функций
- •Xlabel('Число элементов массивов')
- •Xlabel('Число элементов массивов')
- •5.4.2. Функции eval, feval
- •Xlabel(‘t’), ylabel(‘y, dy/dt’)
- •Xlabel(‘y’), ylabel(‘dy/dt’)
- •6. Символьные вычисления
- •6.1. Определение символьной переменной
- •6.2. Основные функции
- •6.3. Математический анализ
- •6.3.1. Функция limit – предел функции одной переменной
- •6.3.2. Функция diff – дифференцирование функции одной переменной
- •6.3.3. Функция int – интегрирование функции одной переменной
- •6.3.4. Функция symsum – суммирование членов рядов
- •6.3.5. Функция taylor – разложение функции в ряд Тэйлора
- •6.4. Символьное решение уравнений
- •6.4.1. Решение отдельных уравнений
- •6.4.2. Решение систем уравнений
- •6.4.3. Решение дифференциальных уравнений
- •7. Пакет моделирования динамических систем simulink
- •7.1. Рабочая среда Simulink
- •7.2. Представление динамической системы в виде структурной схемы
- •7.3. Основные приемы работы в среде Simulink
- •7.4. Модель с ветвлением соединений
- •7. 5. Интегрирование дифференциального уравнения
- •Список литературы
- •Оглавление
- •Приложение
- •Разделы справочной системы
- •Программирования и отладки программ
- •Графические средства matlab
- •Символьные вычисления (symbolic math toolbox)
3.2. Матричные операции и функции
Матричные операции – основа системы MATLAB:
1. Сложение матриц. Если и - матрицы одинаковых размеров, то их суммой называют матрицу того же размера , элементы которой .
2. Умножение матрицы на скаляр. Произведением матрицы на скаляр называют матрицу , элементы которой .
3. Умножение матрицы , имеющей размер , на матрицу , имеющую размер , означает нахождение третьей матрицы размеров , причем элементы этой матрицы . Согласно определению данной операции, это правило действует, если число столбцов матрицы А равно числу строк матрицы В.
Определителем квадратной матрицы порядка n называют число (в MATLAB – det(A))
,
где знак определяется числом (четным или нечетным) перестановок чисел . Способы вычисления определителей можно найти в соответствующей литературе. Квадратная матрица называется неособенной или невырожденной, если ее определитель (в противном случае матрица особенная, или вырожденная). Матрица называется обратной квадратной матрице А, если ; обратная матрица вычисляется довольно сложным образом:
,
где – алгебраические дополнения элементов матрицы.
Матрица называется транспонированной по отношению к матрице А, если в последней поменять местами столбцы и строки.
Транспонирование матрицы А:
» A=[1 2 3;4 5 6]
A =
1 2 3
4 5 6
» B=A'
B =
1 4
2 5
3 6
» [atan(1)*4 sin(pi/2) exp(1)]'
ans =
3.1416
1.0000
2.7183
Последний прием удобен при создании векторов-столбцов.
Сложение и вычитание матриц:
» A=[3 4 2;2 5 5]; B=[0 3 1; 3 7 8]; C=A+B, D=A-B
C =
3 7 3
5 12 13
D =
3 1 1
-1 -2 -3
Умножение матриц:
» A=[1:3;4:6], B=[7:9;10:12]', C=A*B
A =
1 2 3
4 5 6
B =
7 10
8 11
9 12
C =
50 68
122 167
Следует отметить такую важную операцию, как ; при этом матрица А превращается в пустую (и освобождает память), но сохраняется как объект; в то же время clear('А') уничтожает матрицу А как переменную MATLAB.
3.3. Решение линейных уравнений
Пусть задана система из трех линейных уравнений
.
Введем матрицу, составленную из коэффициентов левых частей уравнений:
.
Если рассматривать x, y и z как элементы матрицы-столбца , т.е. , а правые части системы как матрицу-столбец , то можно записать матричное уравнение . Умножая обе части этого уравнения на обратную матрицу , получим . Это соотношение записано на основании того, что – единичная матрица (с единичными элементами на главной диагонали), а .
Команда для решения системы уравнений имеет вид
» A=[3 2 1;1 1 -1;1 -2 1]; B=[4 1 3]'; X=inv(A)*B, det(A)
X =
1.7000
-0.6000
0.1000
ans =
-10
Таким образом, ; существование решения подтверждается и тем, что определитель матрицы . Аналогичный результат получается при «левом» делении:
» A\B
ans =
1.7000
-0.6000
0.1000
Рекомендуется сравнить вычисление определителя матрицы вручную и с помощью системы MATLAB, например
» A=[1:3;4:6;7:9]; det(A)
ans =
0