Действия по поэлементному преобразования векторов
Все эти операции преобразуют элементы вектора как элементы обычного одномерного массива чисел. К таким операциям относятся все из вышеперечисленных элементарных математических функций, зависящих от одного аргумента.
Например х=[-2,-1,0,1,2]
V=sin(x); V =-0.9093 -0.8415 0 0.8415 0.9093
V=tan(x); V=exp(x) и др.
1) Добавление (вычитание) числа к каждому из элементов (+, -);
2) Поэлементное умножение векторов (.*);
3) Поэлементное деление векторов (./, .\)
4) Поэлементное возведение в степень.(.^)
Базовые действия с матрицами
Базовые действия с матрицами – сложение, вычитание, транспонирование, умножение матрицы на число, умножение матриц, возведение матрицы в целую степень. Данные операции осуществляются в Matlab с помощью обычных знаков арифметических операций.
Важно помнить ряд условий, при которых эти операции возможны:
- при сложении или вычитании матриц они должны иметь одинаковые размеры;
- при умножении матриц число столбцов первого множителя должно совпадать с числом строк второго множителя.
Пример сложения и вычитания матриц:
А=[1 2 3 4 5; 6 7 8 9 11]
A= 1 2 3 4 5
6 7 8 9 11
B=[0 -1 -2 -3 -4; 5 6 7 8 9]
B = 0 -1 -2 -3 -4
5 6 7 8 9
A+B
ans = 1 1 1 1 1
11 13 15 17 20
А-B
ans = 1 3 5 7 9
1 1 1 1 2
Пример умножения матрицы на число
А*5
ans = 5 10 15 20 25
30 35 40 45 55
Пример транспонирования матрицы
А’
ans = 1 6
2 7
3 8
4 9
5 11
Пример умножения матрицы на матрицу
A’*B
ans = 30 35 40 45 50
35 40 45 50 55
40 45 50 55 60
45 50 55 60 65
50 61 67 73 79
Функция обращения матрицы – inv (A) –вычисляет матрицу обратную
заданной матрице А. Исходная матрица А должна быть квадратной и её определитель должен быть отличен от нуля.
Пример возведения матрицы в степень
А^2
Весьма интересными в языке Matlab являются операции деления матриц слева направо и справа налево .(/ и \)
Операция А\В равносильна совокупности операций inv(A)*B, которая является решением матричного уравнения: А*Х=В.
Для примера рассмотрим решение системы линейных алгебраических уравнений:
x1 + 2x2 + 3x3 = 14
2x1 - x2 - 5x3 = -15
x1 - x2- x3 = - 4
A=[1 2 3; 2 -1 -5; 1 -1 -1]
A= 1 2 3
2 -1 -5
1 -1 -1
B = [14; -15; -4]
B = 14
-15
- 4
x = A \ B
x = 1
То есть x1 =1 x2 =2 x3 = 3 – корни системы уравнений.
Полиномы
В системе Matlab предусмотрены возможности математического оперирования с полиномами.
Полином (многочлен) как функция определяется следующим выражением:
В Matlab полином задается и хранится в виде вектора, элементами которого являются коэффициенты полинома от an до а0
P = [an … a2 a1 a0]
Ввод полиномов осуществляется также как и ввод вектора длиной n+1, где n – порядок полинома.
Система Matlab имеет функцию roots(P) которая вычисляет вектор, элементы которого являются корнями заданного полинома, по вектору коэффициентов.
Пусть требуется найти корни полинома:
Р(х) = х5+8x4+31x3+80x2+94x+20
P=[1 8 31 80 94 20]
Roots(P)
-1.0000+3.0000i
-1.0000+3.0000i
-3.7321
-2.0000
-0.2679
Обратная операция – построение вектора Р коэффициентов полинома по заданному вектору его корней – осуществляется функцией poly.
P = poly(R),
где R – заданный вектор корней полинома, Р – вычисленный вектор коэффициентов полинома.
Пример:
P = [1 8 31 80 94 20]
P = 1 8 31 80 94 20
R= roots (P)
R = -1.0000+3.0000i
-1.0000+3.0000i
-3.7321
-2.0000
-0.2679
P1 = poly(R)
P1 = 1.0000 8.0000 31.0000 80.0000 94.0000 20.0000
Для вычисления значения полинома по заданному значению его аргумента в Matlab предусмотрена функцияpolyval.Обращение к ней происходит по схеме:
y = polyval (Р, x),
где Р – вектор коэффициентов полинома;
x – значение аргумента полинома.
Пример
P = [1 8 31 80 94 20]
x = 2
y = polyval (P, x)
y = 936
Вычисление производной от полиномапроизводится функциейpolyder.Эта функция создает вектор коэффициентов полинома представляющий собой производную от заданного полинома.
dp = polyder (P)
dp = 5 32 93 160 94
Оператор условия IF
Оператор условия if .... end вычисляет некоторое логическое выражение и выполняет соответствующую группу инструкций в зависимости от значения этого выражения. Если логическое выражение истинно, то MATLAB выполнит все инструкции между if и end, а затем продолжит выполнение программы в строке после end. Если условие ложно, то MATLAB пропускает все утверждения между if и end и продолжит выполнение в строке после end.
Пример.
if rem(a, 2) == 0
disp('a четно')
b = а/2;
end