ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.05.2019

Просмотров: 467

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Лекция  6

2.5. Работа с матрицами и векторами

2.5.1.  Ввод,  сложение и  вычитание векторов и матриц

Как уже  отмечено  выше,  МаНЬаЬ  работает  с данными  в  виде массивов 

-   упорядоченных  и  пронумерованных  совокупностей  однородных  данных. 

Массивы отличаются  по  числу размерностей:  одномерные, двухмерные,  мно­

гомерные.  Размером  массива  называется  число  элементов  вдоль  каждого  из 
измерений.  Одномерные  массивы  в  виде  строки  или  столбца  называются  со­
ответственно  вектор-строка  и  вектор-столбец.  Двухмерные  массивы  называ­
ют матрицами.

Для  ввода значений  матриц и  векторов  используются  квадратные  скоб­

ки.  Для  ввода  значений  строки  эти  значения  отделяют  друг  от  друга  пробе­

лами или запятыми,  например

»   V  =   [ 1 

3]

V  =

1 2  

3

Для задания нескольких строк используется знак «;»,  например

»   М  =   [ 1 

3 ;  

6 ;   7 

9]

М  =

1 2  

3

6

9

Возможен  ввод  элементов  матриц  и  векторов  в  виде  арифметических 

выражений,  содержащих любые доступные программе  функции,  например

»   V  =   [ 2 + 2 /  ( 3+4)  

ехр (5) 

5 ^ ^ 1 ; ( 1 0 ) ]

V  =

2 . 2 8 5 7  

1 4 8 . 4 1 3 2  

3 . 1 6 2 3

Для  указания  отдельного  элемента вектора или  матрицы  используются 

выражения вида У(1) или М (у), например

»   М ( 2 ,  2 )  

апз   =

5

Если  элементу  М(2,3)  нужно  присвоить  новое  значение  15,  то  следует 

использовать выражение

»   М ( 2 ,   3)

=   1 5


background image

2

Можно  использовать  выражение  с  одним  индексом  для  матриц,  в  этом 

случае  осуществляется  доступ  к  элементам  матрицы,  развернутым  в  один 

столбец.  Например:

»   М (7) 

а п з   =

3

При  сложении  векторов  и  матриц  происходит  поэлементное  сложение 

двух  векторов  или  матриц.  Матрицы  при  этом  должны  быть  одинакового 

размера.  Аналогично  осуществляется  и  вычитание  матриц  и  векторов.  Пусть 

даны два вектора А и В

»   А  =   [ 1 . 3 ;   5 . 4 ;   6 . 9 ]

А  =

1 . 3 0 0 0
5 . 4 0 0 0
6 . 9 0 0 0

»   В  =   [ 7 . 1 ;   3 . 5 ;   8 . 2 ]
В  =

7  . 1 0 0 0
3 . 5 0 0 0
8 . 2 0 0 0

Для  нахождения  суммы  используется  знак  «+»,  а  вычисление  суммы 

двух векторов будет выглядеть следующим  образом

»   С  =   А  +  В

С  =

8  .  4 0 0 0
8 . 9 0 0 0  
1 5   . 1 0 0 0

Аналогично  производится  вычитание  векторов,  а  также  сложение  и 

вычитание матриц.

Особенность  Ма1:ЬаЬ  представлять  все данные  в  виде  массивов  являет­

ся  очень  удобной.  Пусть,  например,  требуется  вычислить  значение  функции 

81

п  сразу  для  всех  элементов  вектора  С  и  записать  результат  вычислений  в 

вектор Б.  Для этого используется  следующий оператор

»   Ц  =  5Л-П(С)

О  =

0 . 1 4 6 1  
0 . 1 5 4 7
0 . 2 6 0 5


background image

3

Таким  образом,  встроенные  элементарные  функции  приспосабливают­

ся  к  виду  аргументов.  Если  аргумент  является  массивом,  то  результат  функ­
ции  будет  массивом  того  же  размера с  элементами,  равными  функции  от  со­
ответствующих  элементов  исходного  массива.  В  других  математических  си­
стемах ввод такого оператора сопровождалось бы ошибкой.

2.5.2. 

Использование  символа  двоеточия.  Объединение  матриц  и 

векторов, удаление их элементов

Символ  двоеточия  имеет  два  назначения.  Во-первых,  он  может  быть 

использован  при  создании  векторов,  каждый  элемент  которых  отличается  от 
предыдущего  на  постоянную  величину.  Например,  следующий  оператор 
приводит к созданию вектора-строки

»   х  =  [ 1 : 0 . 2 : 2 ]

х  =

1 . 0 0 0 0  

1 . 2 0 0 0  

1 . 4 0 0 0  

1 . 6 0 0 0  

1 . 8 0 0 0  

2 . 0 0 0 0

В  квадратных скобках указывается  значение  первого  элемента вектора, 

затем  через  двоеточие  шаг  изменения  каждого  последующего  элемента  и  за­
тем через двоеточие указывается  конечное  значение.  При этом  конечное  зна­

чение  не  обязательно  должно  равняться  сумме  предпоследнего  значения  и 
шага  -   вектор-строка  заполнится  до  элемента,  не  превосходящего  конечное 
значение.  Например,  если  в  последнем  примере  конечное  значение  принять 

1,9,  то  последний  элемент  вектора будет  1,8.  Шаг  может  быть  и  отрицатель­

ным,  в  этом  случае  конечное  значение  должно  быть  меньше  начального. 
Шаг, равный единице, можно не указывать.

Если  необходимо  аналогично  составить  вектор-столбец,  то  следует  за­

полнить вектор-строку и затем ее транспонировать,  например

» х =   [ 1 : 0 . 2 : 2 ] '  

х  =

1

. 0 0 0 0

1.2000

1 .

4 0 0 0  

1 . 6 0 0 0  
1 . 8 0 0 0  

2.0000

Для транспонирования  векторов  и матриц  используется  символы точки 

с апострофом,  а для  получения  комплексно  сопряженного  вектора и  матрицы 
используется  символ  апострофа.  Для  вещественных  матриц  и  векторов  эти 
операции  равноценны  и  приводят  к транспонированию,  как это  показано  вы­
ше,  так  как  использование  двоеточия  приводит  к  созданию  только  веще­
ственных матриц и векторов.

Для  обращения  к  блокам  последовательно  расположенных  элементов 

матриц  и  векторов  служит  также  символ  двоеточия.  Например,  требуется  в


background image

векторе  XV  из семи элементов  заменить  со 2-го  по  6-ой  нулями.  С  индексаци­
ей с помощью двоеточия это решается следующим образом:

» И = [ 0 . 1  

2 . 9  

3 . 3  

5 . 1  

2 . 6  

7 . 1  

9 . 8 ] ;

»   И (2 :  6)  =  0 ;

»   N 

И  =

0 . 1 0 0 0  

0

0

0

0

0

 

9 . 8 0 0 0

4

Индексация  с  помощью  двоеточия  удобна  при  выделении  части  из 

большого объема  данных в новый массив:

»   N1  =   N ( 3 : 5 )

N1  =

3 . 3 0 0 0  

5 . 1 0 0 0  

2 . 6 0 0 0

Если  необходимо  выделить  прямоугольный  блок  из  существующей 

матрицы, то  номера строк и столбцов задаются с помощью двоеточий  и отде­

ляются друг от друга запятой,  например:

»   Р  =   [ 1  2  0  2 ;   4  1 0   1 2   5 ;   0  1 1   1 0   5 ;   9  2  3  5]

Р  =

1

2

0

2

4

1 0

1 2

5

0

11

1 0

5

9

2

3

5

»   й   =   Р ( 2 : 3 ,   2 : 3 )  

О  =

10 

12 

11 

10

В  случае,  когда  требуется  выделить  из  матрицы  строку  или  столбец, 

вместо одного из индексов ставится двоеточие,  например:

»   Р1  =   Р ( 2 ,  

: )

Р1  =

1 0  

1 2  

5

Часто  бывает  необходимо  удалить  отдельные  строки  или  столбцы мат­

риц  и  векторов.  С  этой  целью  используются  пустые  квадратные  скобки  [  ]. 
Например,  для  удаления  второй  строки  из  матрицы  Р  необходимо  ввести 
оператор

»   Р(2,  :)  =  [  ]

а для удаления второго столбца этой матрицы следует ввести  оператор


background image

5

»   Р ( : ,   2 )   =   [  ]

Рассмотренный  выше  способ  ввода  элементов  матриц  позволяет  его 

использовать  и для  объединения  нескольких  малых матриц  в  одну  большую. 
Например,  если  необходимо  построить  матрицу  на  основании  четырех  дру­
гих,  то  в  качестве  элементов  этой  матрицы  при  вводе  указываются  имена 
подматриц

»   А  =   [ 1  2 ;   3  4]

А  =

1

2

 

4

»   А1  =   [ А  А + 2 ; А + 3   А+ 4 ]

А1  =

1

2

 

4

6

6

8

2.5.3.  Создание матриц специального вида

Ма1ЬаЬ  имеет  ряд  встроенных  функций,  которые  позволяют  быстро  и 

легко создать некоторые специальные матрицы.

Для  создания  прямоугольной  матрицы,  элементы которой  равны  нулю, 

используется  функция 

гегоз, 

аргументами  которой  являются  число  строк  и 

столбцов матрицы,  например

»   А = 2 е г о з ( 3 , 4 )

А  =

0

0

0

Если  задать  только  один  аргумент,  например  3,  то  будет  создана  квад­

ратная нулевая матрица 3 x 3 .

Единичная  квадратная матрица  создается с помощью  функции 

еуе, 

при 

этом  по  главной ее диагонали  располагаются единицы,  а остальные элементы 
равны нулю

»   I   =   е у е   ( 4 )

I  =

1

0

 

0 

0

 

1

0

 

0

0

 

0

 

1

0

1