
- •Лабораторная работа № 1 основы программирования в пакете прикладных программ matlab
- •1. Использование matlab в качестве научного калькулятора
- •1.1. Операции с числами
- •1.1.1. Ввод действительных чисел
- •1.1.2. Простейшие арифметические действия
- •1.1.3. Ввод комплексных чисел
- •1.1.4. Элементарные математические функции
- •1.1.5. Специальные математические функции
- •1.1.6. Элементарные действия с комплексными числами
- •1.1.7. Функции комплексного аргумента
- •1.2 Простейшие операции с векторами и матрицами
- •1.2.1. Ввод векторов и матриц
- •1.2.2. Формирование векторов и матриц
- •1.2.3 Действия над векторами
- •1.2.4 Поэлементное преобразование матриц
- •1.2.5 Матричные действия над матрицами
- •1.3 Функции прикладной численной математики
- •1.3.1. Операции с полиномами
- •2. Программирование в среде MatLab
- •2.1 Операторы цикла и условные операторы
- •If условие
- •If условие
- •2.2 Ввод исходных данных и вывод результатов
- •3. Графика
- •4. Создание м-файлов
- •4.1. Особенности создания м-файлов
- •4.2. Основные особенности оформления м-файлов
- •4.3 Создание функциональных файлов
- •4.3.1 Общие требования к построению
1.2.4 Поэлементное преобразование матриц
Для поэлементного преобразования матрицы пригодны все указанные ранее алгебраические функции. Каждая такая функция формирует матрицу того же размера, что и заданная, каждый элемент которой вычисляется как указанная функция от соответствующего элемента заданной матрицы. Кроме этого, в MatLAB определены операции поэлементного умножения матриц одинакового размера (совокупностью знаков ' .* ', записываемой между именами перемножаемых матриц), поэлементного деления (совокупности './ ' и '.\'), поэлементного возведения в степень (совокупность '.^' ), когда каждый элемент первой матрицы возводится в степень, равную значению соответствующего элемента второй матрицы.
Приведем несколько примеров:
» A = [1,2,3,4,5; -2, 3, 1, 4, 0]
A =
1 2 3 4 5
-2 3 1 4 0
» B = [-1,3,5,-2,1; 1,8,-3,-1,2]
B =
-1 3 5 -2 1
1 8 -3 -1 2
» sin(A)
ans =
0. 8415 0. 9093 0. 1411 -0. 7568 -0. 9589
-0. 9093 0. 1411 0. 8415 -0. 7568 0
» A . * B
ans =
-1 6 15 -8 5
-2 24 -3 -4 0
» A . / B
ans =
-1. 0000 0. 6667 0. 6000 -2. 0000 5. 0000
-2. 0000 0. 3750 -0. 3333 -4. 0000 0
» A . \ B
Warning: Divide by zero
ans =
-1. 0000 1. 5000 1. 6667 -0. 5000 0. 2000
-0. 5000 2. 6667 -3. 0000 -0. 2500 Inf
» A . ^ B
ans =
1. 0e+003 *
0. 0010 0. 0080 0. 2430 0. 0001 0. 0050
-0. 0020 6. 5610 0. 0010 0. 0002 0
Оригинальной в языке MatLAB является операция прибавления к матрице числа. Она записывается следующим образом: A + x, или х + A (А - матрица, а x - число). Такой операции нет в математике. В MatLAB она эквивалентна совокупности операций А + х * Е, где Е - обозначение матрицы, которая состоит только из единиц, тех же размеров,что и матрица А. Например:
» A = [ 1 2 3 4 5; 6 7 8 9 11 ]
A =
1 2 3 4 5
6 7 8 9 11
» A + 2
ans =
3 4 5 6 7
8 9 10 11 13
» 2 + A
ans =
3 4 5 6 7
8 9 10 11 13
1.2.5 Матричные действия над матрицами
К матричным действиям над матрицами относят такие операции, которые используются в матричном исчислении в математике и не противоречат ему.
Базовые действия с матрицами - сложение, вычитание, транспонирование, умножение матрицы на число, умножение матрицы на матрицу, возведение матрицы в целую степень - осуществляются в языке MatLAB с помощью обычных знаков арифметических операций. При использовании этих операций важно помнить условия, при которых эти операции являются возможными:
при сложении или вычитании матрицы должны иметь одинаковые размеры;
при умножении матриц количество столбцов первой матрицы должно совпадать с количеством строк второй матрицы.
Невыполнение этих условий приведет к появлению в командном окне сообщения об ошибке. Приведем несколько примеров.
Пример сложения и вычитания:
» A = [ 1 2 3 4 5; 6 7 8 9 11 ]
» B = [ 0 -1 -2 -3 -4; 5 6 7 8 9 ]
» A + B
» A - B
Пример умножения на число:
» 5*A
» A*5
Пример транспонирования матрицы:
» A'
Пример умножения матрицы на матрицу:
» A' * B
» С = A * B'
Возведение матрицы в целую степень осуществляется в MatLAB с помощью знака "^": А^n. При этом матрица должна быть квадратной, а n - целым (положительным или отрицательным) числом. Это матричное действие эквивалентно умножению матрицы А на себя n раз (если n - положительно) или умножениюбратной матрицы на себя (при n отрицательно).
Приведем пример:
» A^2
» A^(-2)
Оригинальными в языке MatLAB являются две новые, неопределяемые в математике функции деления матриц. При этом вводятся понятие деления матриц слева направо и деление матриц справа налево. Первая операция записывается с помощью знака ' / ' , а вторая - ' \ '.
Операция В / A эквивалентна последовательности действий B * inv(A), где функция inv осуществляет обращение матрицы. Ее удобно использовать для решения матричного уравнения: Х * А = В.
Аналогично операция A\B равносильна совокупности операций inv(A)*B, которая представляет собой решение матричного уравнения: А * Х = В.
Для примера рассмотрим задачу отыскания корней системы линейных алгебраических уравнений:
x1 + 2x2 + 3x3 = 14
2x1 - x2 - 5x3 = -15
x1 - x2 - x3 = -4
В среде MatLAB это можно сделать таким образом:
» A = [ 1 2 3; 2 -1 -5; 1 -1 -1]
» B = [ 14;-15;-4]
» x = A \ B
x =
1
2
3
При анализе векторов по столбцам или строкам используют операторы:
max - максимальное значение из всех элементов столбца(строки);
min - минимальное значение;
mean - среднее значение;
median - медиана;
std - стандартное отклонение;
sort - сортировка элементов в порядке возрастания;
sum - сумма элементов;
prod - произведение элементов;
length - длина (число элементов) вектора.
Например, вычисление функции x=m! можно выполнить, используя последовательность операторов
i=1:m; % создается вектор i=[1 2... m]
x=prod(i); % вычисляется m!.
Оператор z=sum(i.*y) вычисляет сумму произведений i*y(i) элементов вектора i=1:m и m-мерного вектора y=[y1 y2 ...ym].