Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выч.Математика (Быков) - ЛБ2 (методичка).doc
Скачиваний:
7
Добавлен:
09.11.2018
Размер:
123.9 Кб
Скачать

Базовые действия с матрицами

Базовые действия с матрицами – сложение, вычитание, транспонирование, умножение матрицы на число, умножение матриц, возведение матрицы в целую степень. Данные операции осуществляются в 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

  1. 13 15 17 20

А-B

ans = 1 3 5 7 9

  1. 1 1 1 2

Пример умножения матрицы на число

А*5

ans = 5 10 15 20 25

  1. 35 40 45 55

Пример транспонирования матрицы

А’

ans = 1 6

  1. 7

  2. 8

  3. 9

  4. 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

2

3

То есть 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

Оператор цикла с определенным числом операций FOR

Синтаксис:

for <переменная цикла> = <начальное значение>: <приращение>:<конечное значение>

инструкции

end

Оператор цикла for .... end выполняет инструкцию или группу инструкций предопределенное число раз. По умолчанию приращение равно 1. Можно задавать любое приращение, в том числе отрицательное. Для положительных индексов выполнение завершается, когда значение индекса превышает <конечное значение>; для отрицательных приращений выполнение завершается, когда индекс становится меньше чем <конечное значение>.

Этот цикл выполняется пять раз:

for i = 2:6

x(i) = 2*x(i-1);

end