<<

стр. 2
(всего 5)

СОДЕРЖАНИЕ

>>

ans =
0.3550 0.0046 0.4174 + O.OOOOi 0.0081 + 0.1312i
» airy(0,y)
ans =
0.3550 0.0046 0.4174 + O.OOOOi 0.0081 + 0.1312i
» airy(l,y)
ans =
-0.2500 -0.0085 0.0650 - O.OOOOi 0.0967 - 0.2320i
» airy(2,y)
ans =
0.6149 19.5870 -0.0539 - O.OOOOi -0.3964 - 0.5697i
» airy(3,y)
ans =
0.4483 33.2577 -0.7541 + O.OOOOi 0.3495 - 1.1053i
1 1 2 Г л а в а 5


5.2.6. Функции Лежандра
Функция Лежандра имеет вид:




где
г
1 сГ(х -\)
р(х)=—'L
2"и! dx"
Вычисление функции в системе MATLAB осуществляется с по-
мощью встроенной функции, имеющей вид:
leqendre(n, х),

где:
• п — целое число, не превосходящее 256;
• х — аргумент, значение которого удовлетворяет условию
-1 < х < 1 .
Функция возвращает массив чисел размерности п + \ для каждого
аргумента х.
Аргумент х может быть числом или вектором.

Пример 5.17
;;
» leqender(3, 0.5)
ans =
-0.4375
-0.3248
5.6250
-9.7428
» leqender(3, [-0.5, 0.2, 0.1])
ans
0.4375 -0.2800 -0.1475
1.1758
-0.3248 1.4179
-5.6250 2.8800 1.4850
-9.7428 -14.1091 -14.7756
Вычисление математических функций 113


5.2.7. Функции Бесселя
Функции Бесселя являются решением следующего дифференци-
ального уравнения:
d2 z
,
г y( )
7




где L — неотрицательное значение постоянной.
Функции JL (JC) и J, (z) образуют множество решений диффе-
ренциального уравнения. Эти решения имеют вид:
• функция Бесселя первого рода

! 4
У- o n ЛI
? \

2) i


где F(Z + k + \) —гамма-функция;
• функция Бесселя второго рода

JL(z)cos(Ln)-J(^
sin (Ln)

• функции Бесселя третьего рода можно вычислить, используя
функции первого и второго рода:




В системе MATLAB функции Бесселя определяются с помощью
следующих встроенных функций:
• bessei j (n, z) — определяет функцию Бесселя первого рода;
• bessely (n, z) — определяет функцию Бесселя второго рода.
В выражениях z — массив чисел, которые могут быть вещест-
венными и комплексными, п —- порядок массива, является чис-
лом вещественным и положительным.
114 Глава 5

Решение выдается для каждого элемента массива г.
Если z положительно, то результат будет вещественным.

Пример 5.18

» А=[2, 1,5];
>> В-Ц-21, 3,5] ;
» besselj(А,В)
ans =
-0.2611 - 0.7623i 0.3391 0.2611
» bessely(A,В)
ans =
-0.7512 0.1240i 0.3247 -0.4537

Существуют другие функции Бесселя и их модификации. С ними
можно познакомиться в книгах [9, 15, 16].


5.3. Функции пользователя
Решение практических задач, как правило, связано с вычисле-
ниями по одним и тем же алгоритмам при различных исходных
данных. В таких ситуациях полезно иметь в памяти компьютера
функции пользователя, обращаясь к которым получать решение,
подобно тому, как мы обращаемся к элементарным или специ-
альным функциям. Создание функции пользователя осуществля-
ется так, как описано ниже.
1. Вызов окна редактора m-файлов путем нажатия кнопки New
M-File (Создать m-файл).
2. Ввод строки
f u n c t i o n Z = ехрхр(х)

Ключевое слово function объявляет новую функцию, имя ко-
торой ехрхр, а ее параметр — х. Символ z определяет значение
функции при аргументе х. На экране образуется введенное вы-
ражение.
3. Задание новой функции (функции пользователя). Пусть
Z = ехр(х)/х
Вычисление математических функций 115

Наберем это выражение на клавиатуре. Оно отобразится на
экране окна редактора т-файлов.
4. Сохранение функции пользователя осуществляется нажатием
кнопки Save (Сохранить) на панели инструментов.
В результате появится новое окно. В поле File name (Имя
файла) отобразится имя созданной функции ехрхр. Для сохра-
нения функции на диске достаточно щелкнуть мышью по
кнопке Save (Сохранить).
5. Закрытие окна редактора т-файлов.
Функция пользователя z=exp(x) /x создана.
Для вычисления функции при данном аргументе х достаточно
набрать имя функции и значение аргумента в круглых скобках:
z=expxp(i). На экране получим значение функции z=exp(i)/i.



Система MATLAB имеет ряд функций, не относящихся к элемен-
тарным, специальным и функциям пользователя. К ним принад-
лежат функции поразрядной обработки, обработки множеств,
времени и даты. Они достаточно подробно описаны в [9].
X



ГЛАВА 6


Алгебра
векторов и матриц

6.1. Создание векторов и матриц
Вектор или матрица состоят из имени и элементов, заключенных
в квадратные скобки. Элементы вектора отделяются запятыми
или пробелами. Элементами вектора могут быть числа положи-
тельные и отрицательные, действительные и комплексные.

Пример 6.1

» V=[l,2,-3,-7,12]
» V=[3 2+3i l - 2 i -5]

Для вывода вектора на экран нажимается клавиша <Enter>. От-
кликом будут элементы вектора без квадратных скобок, отделен-
ные друг от друга пробелами. Для нашего примера они будут
иметь вид:

-з 12

3.0000 2.0000 + 3.0000i 1.0000 - 2.0000i -5.0000


Элементами матрицы, так же как вектора, могут быть числа по-
ложительные и отрицательные, действительные и комплексные.
В строках матрицы они отделяются запятыми или пробелами, а
строки отделяются точкой с запятой (,-).
Алгебра векторов и матриц 117


\ Пример 6.2

» М=[1 - 2 3 ; 2 3 -4;-3 4 5]

После нажатия клавиши <Enter> на'экране появится следующая
матрица:
м-
1 -2 3
2 3 -4
-3 4 5

» M=[7-2

А теперь матрица выглядит так:
м-
7.0000 - 2.0000i 1.,0000 + l.OOOOi 12 .0000
1.0000 2,.0000 7.0000
l.OOOOi 2 .0000 — .00001
1

Если элементы вектора или матрицы являются числами, отли-
чающимися друг от друга на постоянный шаг, то вектор или мат-
рицу можно образовать проще.
: • • " V" •
• ,
.
j Пример 6.3

V=[l:4]
v=
1 2 3 4
М=[1:3;2:4;7:9]
М=
12 3
23 4
78 9
Здесь решение получено для случая постоянного шага, равного 1.
При постоянном шаге, отличном от единицы, процедуры образо-
вания вектора и матрицы и отклики имеют вид:
Глава 6
118

» V=[l:0.2:2]
V=
1. 6000 2.0000
1.0000 1.2000 1.4000
1,8 0
,00
» M = [ 1 : 0 . 2 : 1 . 8 ; 2 : 0 . 4 : 3 . 6 ; 1:5]
V=
1. 6000
1. 0 0
80
1.0000 1.2000 1.4000
3. 2000
3. 0 0
60
2.0000 2.4000 2.8000
4. 0000
5. 0 0
00
1.0000 2.0000 3.0000



6.2. Преобразование матриц
Система MATLAB позволяет:
• заменить элементы вектора или матрицы без их редактиро-
вания;
• изменить размер вектора или матрицы;
• преобразовать матрицу в иной вид;
• образовать матрицу специального вида.

6.2.1. Вызов на экран
и замена элементов матрицы
Для вызова на экран элементов вектора или матрицы достаточно
указать их имя и координаты в круглых скобках (номер строки и
номер столбца вектора).

\ Пример 6.4

» V=[l 2 3 7 12];
» V(4)
V=
7
>> №-[1,3,7; 2 6 12; -4 8 3 ] ;
» M(l,3)
М=



Для замены элемента необходимо указать имя элемента или мат-
рицы, его координаты и присвоить этому имени новое значение
Алгебра векторов и матриц 119


элемента. После нажатия клавиши <Enter> на экране будет ото-
бражен вектор или матрица с новым значением элемента.

I Пример 6.5 !
i .. i ........i
Пусть вектор и матрица— те же, что и в предыдущем примере.
Заменим третий элемент вектора (со значением з) на 12, а эле-
мент матрицы, находящийся во второй строке и третьем столбце
(со значением 12), — на -7.
Решение:
» V(3) = 12
v(3) =
1 2 12 7 12
» М(2,3) = -7
М=
13 7
2 6-7



6.2.2. Изменение размера вектора
или матрицы
Изменение размера вектора проще всего осуществить путем его
редактирования. Изменение размера матрицы легче выполнить
посредством удаления или добавления строк и столбцов мат-
рицы.
Удаление строки или столбца осуществляется с помощью знака
двоеточия (.-), который ставится в круглых скобках после имени
матрицы:
• м (:, п) — удалить строку п;
• м (т,:) — удалить столбец т.

\ Пример 6.6

Пусть матрица имеет вид:

м=
1
120 Глава 6

2 7 4
3 12 -7

Необходимо удалить вторую строку и третий столбец.
Решение будет иметь вид:
» М(:,2)

м=
1 2 3
3 12 -7
» М(3, :)
м=
1 2
3 12



Увеличить размер матрицы можно посредством объединения ма-
лых матриц в большую. Эта процедура называется конкатенаци-
ей. Она осуществляется путем образования матрицы из имен ма-
лых матриц. При этом допускаются алгебраические операции над
именами. Рассмотрим эти методы на примерах.

| Пример 6.7

Пусть имеется три следующих вектора:
Vl=[l 2 3],V2=[3 -2 1],V3=[7 6 2].
Образуем матрицу из этих векторов. Векторы следует рассматри-
вать как элементы матрицы. Тогда получим:
» M=[V1; V2; V3]
На экране матрица из векторов vi, v2, v3:
м=
12 3
3-2 1
7 6 2
Выполним теперь операцию конкатенации. Создадим из полу-
ченной матрицы матрицу размером 6x6. Для этого образуем три
новых матрицы: м+з, м-5 и м*2.
Алгебра векторов и матриц 121


Процедуры имеют вид:
» Z=[M, М+3;: М-5, М*2]
z-
1 2 5
3 4 6
3 -2 1 1
6 4
7 6 2 10 9 5
-4 -3 -2 4
2 6
-2 -7 -4 -4
6 2
2 1 14
-3 4
12



6.2.3. Математические операции
с векторами и матрицами
Определитель матрицы
Определитель матрицы вычисляется с помощью функции
det{M)
где м — матрица, элементами которой могут быть вещественные
и комплексные числа.
Г" "•••-•••••; •:- - • : •••- • • • - • • ••••" ;


| Пример 6.8 |

» М=[2 3 - 1 ; 1 -6 2 ; 1 3 5 ] ;
» det(M)
ans =
-90
» M=[l+2i, 3, - 2 . 5 ; i , - 1 , 5; 3, 5, 0 ] ;
» det(M)
ans =
12.5000 - 62.5000i

Рассмотрим функции системы MATLAB, позволяющие преобра-
зовать векторы и матрицы, создавать новые матрицы, выполнять
математические операции над элементами векторов и матриц.
При практических расчетах такие действия бывают необходимы,
если расчеты сводятся к матричным операциям.
122 Глава 6

Транспонирование матрицы
Транспонированной называется матрица, у которой строки стали
столбцами, а столбцы строками исходной матрицы.
Транспонирование осуществляется следующим представлением
исходной матрицы: м', где м — исходная матрица.


! Пример 6.9

Пусть исходная матрица имеет вид:

"2 7
3-4 2
5 1 -5

Получим транспонированную матрицу:
» М=[1 2 7 ; 3 -4 2 ; 5 1 -5] ;
» Z=M'
Z=
1 3 5
2-4 1
7 2-5



След матрицы
Следом матрицы называется сумма ее диагональных элементов.
Вычисляется с помощью функции trace о, которая имеет вид:
trace(M)
где м — матрица.


\ Пример 6.10 I
• ..; ; •




Пусть матрица имеет вид: м=[2 б - 1 ; 2 4 8; 1 -2 3].
Ее диагональными элементами являются 2, 4, 3, а их сумма рав-
на 9.
Алгебра векторов и матриц 123

Решение имеет вид:
» М = [ 2 , 6 , - 1 ; 2 , 4 , 8 ; 1 , - 2 , 3] ;
» Z=trace(M)
Z=
9



Обратная матрица
Обратной называется матрица, полученная в результате деления
единичной матрицы Е на исходную:


Получают обратную матрицу с помощью функции invO, имею-
щей вид:
inv(M)
где м — исходная квадратичная матрица.

| Пример 6.11

» М=[1, - 1 , 3 ; 2, 1 1 , 7; - 3 , 5, 4 ] ;
» Z=inv(M)
Z=
0.0539 0.1138 -0.2395
-0.1737 0.0778 -0.0060
0.2575 -0.0120 0.0778


Единичная матрица
Функциями создания единичной матрицы являются:
• eye (n) — определяет единичную матрицу размером пхп;
• eye(m,n)— определяет единичную матрицу размером mxn
с единицами в диагонали и с нулями в остальных элементах
матрицы;
• eye (size (м)) — определяет единичную матрицу с тем же раз-
мером, что и матрица м.
124 Глава 6


! Пример 6.12 I

» М=еуе (3)
М=
1 0
0
1
0 0
1
0 0
М=еуе ( 3 , 4 )
»
М=
0
1 0
0
0
0 1 0
0
1
0 0
2, 2, - 3 ,
» М=[1 1 2 3; О, 1, 3, 0; 1, 2, 3, 4];
» Z = e y e ( s i z e (ММ
Z=
0 0
1 0
0 0
1
0
1 0
0 0
0 1
0 0


Образование матрицы
с единичными элементами
Матрица с единичными элементами реализуется следующими
функциями:
• ones (n) — образует матрицу размером пхп, все элементы ко-
торой равны единице:
• ones (m, n) — образует единичную матрицу размером mxn;
• ones (size (м)) — образует единичную матрицу такого же раз-
мера, как и матрица м.

| Пример 6.13

» M=ones(3)
М=
1 1 1
1 1 1
1 1 1
Алгебра векторов и матриц 125

M=ones(3,4)
»
м=
1 1 1 1
1 1 1 1
1 1 1 1
» М = [ 3 , 2, 1, 7; 6, 1, -2, 4];
» Z= o n e s ( s i z e ( M ) )
Z=
1 1 1 1
1 1 1 1


Образование матрицы с нулевыми элементами
Матрицы с нулевыми элементами формируются следующими
функциями:
• zeros (n) — создает матрицу размером пхп с нулевыми элемен-
тами;
• zeros (m,n)— образует матрицу размером mxn с нулевыми
элементами;
• zeros (size (M)) — возвращает матрицу с нулевыми элемента-
ми того же размера, что и матрица м.

I Пример 6.14 |
: У, ............... ,, . I
» M=zeros(3)
М-
0 0 0
0 0 0
0 0 0
» M=zeros (3,4)
М=
0 0 0 0
0 0 0 0
0 0 0 0
» М=[1, 2, 3; 2, 3, 4; 3, 4, 5] ;
» M=zeros(size(M))
М-
0 0 0
0 0 0
0 0 0
126 Глава 6

Вектор равноотстоящих точек
Вектор равноотстоящих точек формирует массив точек в диапа-
зоне [а; Ъ\. Реализуется следующими функциями:
• linspace (a,b) — создает массив из 100 точек, распределенных
равномерно в диапазоне [a; b\;
• linspace (a,b,n) — создает массив из п точек, равномерно рас-
пределенных в диапазоне [а; Ь].

I Пример 6.15

» R=linspace(l,2)
R=
1.0000 1.0101 1.0202 1.9899 2.0000
» R=linspace(l,10,5)
R=
1.0000 3.2500 5.5000 7.7500 10.0000


Перестановка элементов матрицы
Перестановка столбцов и строк матрицы осуществляется с по-
мощью следующих функций:
• flipir (M) — осуществляет перестановку столбцов матрицы м
относительно вертикальной оси;
• f lipud (M) — осуществляет перестановку строк матрицы отно-
сительно горизонтальной оси.

Пример 6.16

» М = [ 1 , 2, 3 , 4 ; 3 , 1, 4, 2]
М='
12 3 4
3 14 2
» Z=flipir(M)
Z=
4 3 2 1
2 4 13
Алгебра векторов и матриц 127_

» W=flipud(M)
W=
3 14 2
12 3 4

В MATLAB имеется также функция перестановки элементов, ко-
торая из вектора v, состоящего из п элементов, образует матрицу,
состоящую из п! столбцов, т. е. число строк соответствует всем
перестановкам элементов вектора V. Функция имеет вид:
perms(V)

где v — вектор, состоящий из п элементов.

! Пример 6.17
, .!
•.




» V = [ 2 , l , 7 ] ;




» P = p e r m s ( V )




Р=
7 1 2
7 2 1
17 2
1 2 7
2 17
2 7 1


Создание матрицы с заданной диагональю
Система MATLAB имеет функции, позволяющие из элементов
вектора v создавать матрицу с заданной диагональю.
Такими функциями являются:
• M=diaq (v, к) — образует матрицу м, в одной из диагоналей ко-
торой находятся элементы вектора v. При к = 0 элементы век-
тора находятся в главной диагонали, при к > 0 — в к-й верхней
диагонали, при к < 0 — в к-й нижней диагонали. Остальные
элементы квадратной матрицы м являются нулями;
• M=diaq(V) — образуется квадратная матрица, в которой на
главной диагонали стоят элементы вектора v;
• v=diaq(M,K) — образует вектор-столбец v из к-й диагонали
матрицы м;
128 Глава 6

• v=diaq(M) — возвращает главную диагональ матрицы м в виде
вектора v.
•-•••
• :



\ Пример 6.18

V=[l, 0, 2, - 7 ] ;
M=diaq(V,0)
M=
0 0 0
0 0 0 0
2 0
0 0
-7
0
0 0
Z=diaq(V, -2)
Z=
0 0
0
0 0 0
0 0
0
0 0 0
0
1 0 0
0
0
0
0 0 0 0
0
0
0 0 2 0
0
-7 0
0 0 0
V=diaq(M, 0)

1
0
2
-7
M=[l, 2, - 3 , 5; -2, б, 4, 7; 1, 0, 4, -2];
V=diaq(M,1)


2
4
—2
V=diaq(M)
Алгебра векторов и матриц 129


Создание массивов со случайными элементами
Генерирование случайных чисел в системе MATLAB осуществ-
ляется с помощью функции, которая создает случайные числа,
равномерно распределенные на интервале [0; 1]. Функция имеет
следующие варианты:
• rand (n) — создает матрицу случайных чисел размером
• rand(m,n) — создает матрицу случайных чисел размером
• rand(m,n,p,...) — формирует массив случайных чисел с нор-
мальным законом распределения;
• rand (size (А)) — генерирует массив случайных чисел разме-
ра А;
• rand— генерирует единственное случайное число, распреде-
ленное по равномерному закону, нажимая многократно кла-
виши < t > (стек функции rando) и <Enter>, получим множест-
во случайных чисел из диапазона [0; 1], распределенных по
равномерному закону;
• rand с state') — генерирует вектор случайных чисел, состоя-
щий из 35 значений, с равномерным законом распределения.
Состояние генератора случайных чисел можно менять. Для этого
существуют следующие варианты функции:
• rand с s t a t e ' , о) — генератор устанавливается в исходное на-
чальное состояние;
• rand с state *,s) — генератор устанавливается в некоторое со-
стояние S.

Пример 6.19

» Z=rand(4)
Z=
0.4449 0.9797 0.7373
0.9568
0.6946 0.5226 0.2714 0.1365
0.6213 0.8801 0.2523 0.0118
0.7948 0.8757
0.1730 0.8929
» M=[l, 2, :3; 2 , 4 , 1 ] ;
» Z=rand(size(M))

5 3ак. 1196
130 Глава 6

z=
0.6614 0.4692 0.9883
0.2844 0.0648 0.5828

Покажем график, образованный случайными числами. Для этого
сформируем координаты точек на плоскости в виде матрицы слу-
чайных чисел с большим числом строк и одним столбцом по осям
х и у.
Программа будет иметь следующий вид:
» X=rand(800, 1);
» Y=rand(800, 1);
» plot(X, Y, ' . ' )
График показан на рис. 6.1.


F E t Vw I s r To
l d e n et os
e ii
i l Desktop Window Help

:
«: D Шн а
о ss в в . с ;®.<a>
» f ®




09
. v "



08 ' ' ': '.
. *



07
. •:;---.*V \% • "
'• '
.•. * •
*•
• /

06 *
. »

•. "
0•
5 • •*• • . '., * .- ... *
*
«.
•*''." ."-.•' ' ».*.
04
. -» ** • *••




03
. c
.. ..% •• . •*•••'.-
• •••**•*:


02
. ' : V . } •". \:':
./

01
. I t •• *' • •'•••

1
i.:
•;.",
- . ' , •


0 01 02
.. 0.4 0.5 0,6 0.7 0.B 0.9 1
0.3




Рис. 6.1. Точки со случайными значениями координат х и у,
распределенными по равномерному закону

Система MATLAB имеет датчик случайных чисел с нормальным
законом распределения, с математическим ожиданием, равным
Алгебра векторов и матриц 13j_

нулю, и среднеквадратическим отклонением, равным 1. Генери-
рование случайных чисел осуществляется с помощью следующих
функций:
• randn — генерирует одно случайное число, нажимая последо-
вательно клавиши <Т> и <Enter>, можно получить семейство
случайных чисел;
• randn (n) — матрица случайных чисел размером пхп;
• randn (m,n) — матрица случайных чисел размером mxn;
• randnfm,n,p...)— массив случайных чисел с нормальным
законом распределения;
• randn (size (В)) — генерирует случайные числа размером в; в
может быть вектором или матрицей;
• randn('state') — возвращает вектор с двумя элементами при
данном состоянии генератора случайных чисел;
• randn('state',о) — возвращает генератор в начальное (нуле-
вое) состояние;
• randn (' s t a t e ' , s) — устанавливает состояние генератора s.

| Пример 6.20

» Z=randn(2, 3)
Z=
0. 7104 0. 7073
0.7853
0. 9508 0. 1.381
0.4353

Система позволяет по данным датчика случайных чисел постро-
ить график— гистограмму нормального распределения случай-
ных чисел.
Программа имеет следующий вид:
» Y=randn(n,l);
» hist(y,m)
где n — количество случайных чисел, m— число интервалов
в диапазоне случайных чисел.
Глава 6
132

Пример 6.21

Построить гистограмму случайных чисел при п = 20000 и
m = 100.
В этом случае программа будет иметь вид:
» Y=randn(20000,1);
» hist(Y,100)
Ответ представлен на рис. 6.2.


Ff E * V w [nsert T o D st p Wdw Hp
ie d e i o s eko n o e
l i l
D :св>:Н S ; k : ®- Q <"/ ® ! ч? • • Ш и D



BO
O -
Ik
500 -

400 -

300 • -




200 -




I
10
0 -




-Jill
-A'
-5 3-2 3 12 3 4


Рис. 6.2. График нормального закона распределения случайных чисел


Поворот матрицы
Поворот матрицы позволяет создать новую матрицу, у которой
меняются не только значения элементов в строках и столбцах, но
также размер матрицы.
Поворот матрицы осуществляет функция rot (), имеющая вид:
rot90(M, К)
Алгебра векторов и матриц 133

где:
• м — матрица;
• к — число, указывающее на величину поворота матрицы в
градусах, кратных 90°.
Если к = 1, то поворот осуществляется на 90°, при к = 2 — на 180°
и т. д.
Поворот выполняется против часовой стрелки.
При к = 1 функция имеет вид:
rot90(M)

Пример 6.22

» М = [ 1 , 2, 3; 2, 3, 4; 3, 4, 5] ;
» Z=rot90(M,2)
Z-
5 4 3
4 3 2
3 2 1


Выделение треугольных частей матрицы
Выделение треугольных частей матрицы выполняется с помощью
следующих функций:
• t r i l (м) — создает нижнюю треугольную часть матрицы,
остальные элементы являются нулями;
• t r i i (м, к ) — создает нижнюю часть диагонали, начиная
с к-й;
• triu(M) — создает верхнюю часть матрицы м;
• triu(M,K) — создает верхнюю часть матрицы м, начиная
с к-й диагонали.

Пример 6.23

» М = [ 1 , 4, 3; 7, 2, 2; 6, 1, 5]
М=
14 3
Глава 6
134

7 2 2
6 1 5
Z - t r i l (M)
z=
1 0
0
7 2 0
5
6 1
z - t r i l (M, 1)
z=
0 4 3
0 2
0
0 0 0


Вычисление магического квадрата

MATLAB имеет большое число функций, позволяющих образо-
вать специальные матрицы, матричные функции. В качестве
примера приведем только одну из них.
Матрица, называемая магическим квадратом, представляет со-
бой квадратную матрицу размером nxn(n>3), у которой сумма
строк, столбцов и главных диагоналей является одной и той же
величиной.
Функция имеет вид:
i
magic(n)

где п — размер квадратной матрицы.

Пример 6.24

M=magic(3)
М=
8 16
3 57
4 92
Алгебра векторов и матриц 135


6.3. Математические операции
над векторами и матрицами
Над векторами и матрицами можно выполнять практически все
те операции, что и над числами: сложение и вычитание, умноже-
ние и деление, вычисление элементарных функций, таких как
возведение в степень, извлечение квадратного корня, вычисление
логарифма, вычисление тригонометрических функций. При этом
матричными операторами являются почти все арифметические
операторы (табл. 6.1).


Таблица 6.1. Таблица матричных операторов MATLAB

Функция Название Оператор Синтаксис
+
plus Плюс (сложение матриц) М1+М2

-
minus Минус (вычитание матриц) М1-М2

Почленное умножение
times Ml.*М2
массивов чисел

mtimes Матричное умножение М1*М2

mpower Возведение матрицы в степень М1ЛХ

Почленное возведение
power А
М1. Х
Л

элементов матрицы в степень

mzdivide Деление матриц слева направо М1/М2
/




mldivide Обратное деление матриц М1\М2
\




Почленное деление элементов
rdivide Ml./М2
./
матрицы слева направо

Почленное деление элементов
ldivide Л Ml.\М2
матрицы справа налево


Приведем примеры выполнения матричных операций.
136 Глава 6

Даны следующие матрицы:
12 5 2 0 3
М= 2 1 , N= 1 5 4
3
2 14 1
3 3

Воспользуемся матричными функциями, приведенными в табл. 6.1,
и выполним операции, соответствующие этим функциям:

2
3 28 -1 2
minus(M, N) = 1 -2 -3
85
plus(M,N) = 3
4 -1
5 -2
5 3

-
19 16"
25 ˜2 0 15"
mtimes(M, N) = 10 19
18 15 4
times(M,N) = 2
17 14
17 4
3
6

"15 4
"l
13 27" 25'
mpower(M, 2) = 10 14 17 9
power (M, 2) = 4 1
12 11 27_ 1
4 16

r
0.7
0.9 -0.5"
mrdivide(M, N) = -0.14 0.18 0.7
1.02 0.26 -0.1

r
0.9524 2. 5714 -0.3810"
mldivide(M, N) = -0.4286 0. 1429 1.5714
-0 5714 0.0476
0.3810

-
0.5 inf 1.667'
rdivide(M,N) = 2 0.6 0.25
0.6667 0.3333 4
Алгебра векторов и матриц 137


О 0.6
1.6667 4
0.5
ldivide(M,N) =

0.25
3
1.5

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

Пример 6.25

» М=[1 2 5 ; 2 3 ].; 2 1 4 ]
» N=[2 0 3 ; 1 5 4 ; 3 3 1]
0 15'
"2
м.*N = 15 4
2

4
6 3

15 13 27"
14
2= 10 17
12 11 27


Аналогичные операции выполняются над векторами. Покажем
это на примере.
Г"""" ' •"••••>;. vv,...-.-.......-.-:..;..--˜."..-.. •-
• •••- •
!• •• ;.
, ...........3
i Пример 6.26 \
Пусть даны два вектора:
» Vl=[l, 2, 4, 7];
» V2=[-2, 3, 1, 5]
Процедуры вычислений и результаты будут иметь вид:
» V1+V2

[-1 5 5 12]
Vl-V2=[3 - 1 3 2]
Vl.*V2=[-2 6 4 35]
У 1 . Л 2 = [ 1 4 1 6 49]
Глава 6
138
V1/V2=1.1O2 6



Vl\ V2 =

-0.2857 0.4286 0.1429 0.7143
VI./V2=[-0.5000 0.6667 4.0000 1.4000]
VI.\V2=[-2.0000 1.5000 0.2500 0.7143]


6.3.1. Примерыобразования функций
от векторов и матриц
Приведем примеры образования элементарных функций \пх, е'\
sinx из вектора и матрицы.

| Пример 6.27

Пусть вектор N имеет вид: N- [1 з 5 7 9 ].
Образуем функции In N, e N , sin N.
Решение будет иметь вид:
» N=[1, 3, 5, 7, 91;
» Z=log(N)

0 1.0986 1.6094 1.9459 2.1972
» Z=exp(N)
Z=
1.0е + 003
0.0027 0.0201 0.1484 1.0966 8.1031
» Z=sin(N)
Z=
0.8415 0.1411 -0.9589 0.6570 0.4121


| Пример 6.28

Пусть матрица имеет вид: к=[1, 2, 7; 3, -2, 6].
2
к к
Необходимо вычислить функции: In К , е" , е + 2К + К .
Алгебра векторов и матриц 139

Процедуры ввода и результаты вычисления имеют вид:
» К=[1, 2, 7; 3, -2, 6];
» Z=log(K)

О 0.6931 1.19459
3.1416i
1.0986 0.6931 1.7918
Z=exp(-K)
Z=
0.1353 0.0009
0.3679
0.0498 7.3891 0.0025
Z=exp(K)+2*K+K.A2
Z-
1.0е + 003
0.0057 0.0154 1.1596
0.4514
0.0351 0.0001
ГЛАВА 7


Визуализация вычислений


Система MATLAB имеет богатые возможности графического
представления информации. Она позволяет строить двухмерные
и трехмерные графики функций, заданных в аналитическом виде,
в виде векторов и матриц; дает возможность построения множе-
ства функций на одном графике; позволяет представлять графики
разными цветами, типами точек и линий и в различных системах
координат.
Система способна строить диаграммы, гистограммы и графики
специальных функций.
Мы ограничимся рассмотрением лишь двухмерной и трехмерной
графики универсальных математических функций.
Более детально с графической системой MATLAB можно озна-
комиться по литературным источникам, например, [9].


7.1. Двухмерная графика
Основными функциями двухмерной графики являются:
p l o t ( x , у)
p l o t ( x , у, s)
p l o t ( x l , yl, si, x2, y2, s2, . . . , xn, yn, sn)
Визуализация вычислений 141

где:
• х — аргумент функции, задаваемой в виде вектора;
• у — функция, представленная в аналитическом виде или в ви-
де вектора илц матрицы;
• s — вектор стилей графика; константа, определяющая цвет
линий графика, тип точек и тип линии;
• xi, х2,..., хп — аргументы п функций, изображаемых на одном
графике;
• yi, у2, ..., уп — функции, изображаемые на одном графике.
Рассмотрим более подробно функции двухмерной графики и
приведем примеры.

7.1.1. Функция plot(x,y)
Функция позволяет строить график при задании функции
У = /(х) в аналитическом виде, в виде вектора или матрицы.
В математических расчетах находит широкое применение. Наи-
более часто используется в следующих случаях:
• выбор области изоляции корня уравнения / ( л ) = 0;
• определение координат особых точек функции (максимумов,
минимумов, точек перегиба, разрывов непрерывностей);
• проверка достоверности выбора функции интерполяции;
• качественная оценка точности представления функции сте-
пенным рядом.

i Пример 7.1 !
I.;
Дана функция
х
у = З -9х + 6.
Определить область изоляции корня уравнения
3*-9х + 6 = 0
и другие особые точки функции.
142 Глава 7

Решение:
» х = 0 : 0.1 : 3.5;
у = 3. л х - 9 . х + 6;
»
» p l o t (x,y)

График функции приведен на рис. 7.1. Из рисунка видно, что
функция имеет два корня и минимум. При этом областями изоля-
ции корней может быть: 0.5 < xi < 1.5, 2 < х2 < 3. Минимум
функции расположен в области 1.5 < х < 2.5.
Теперь можно искать корни уравнения и минимум функции.


F E» Vw I s r T o Ps o Wdw Hp
i d e n et os eWp no e
l
e i l ti l




0 05
. 1 15
.. 2 25
.

Рис. 7.1. График функции у = ? -9х + 6


7.1.2. Функция plot (x,y,s)
Функция аналогична функции plot (x, у) и отличается лишь нали-
чием вектора констант з, определяющего цвет линий графика,
тип точек и линий функции, т. е. стиль графика. Стиль графика s
можно не задавать.
Визуализация вычислений 143

В табл. 7.1 приведены стили графиков системы MATLAB.

Таблица 7.1. Стили графиков

Тип линии
Тип точки Цвет линии
Y -
• Точка Желтый Сплошная

о М
Окружность Двойной
Фиолетовый
пунктир

X -.
С
Крест Голубой Штрих-
пунктир

+ R --
Красный
Плюс Штриховая
* G
Звездочка Зеленый

S В
Квадрат Синий

D W Белый
Ромб
V, Треугольник вверх, К Черный
вниз, влево, вправо
Л, < , >

р Пятиугольник
н Шестиугольник


При задании стиля символ s представляется в виде вектора, эле-
ментами которого являются: тип точки, цвет линии и тип линии,
разделенные запятыми и выделенные одиночными кавычками.
Например:
p l o t ( x , у, ' [ ' R ' , • . ' , ' - . ' ] )

Это график красного цвета (R), ТОЧКИ графика в виде звездочек
(*), линии штрихпунктирные (-.).
На рис. 7.2 показан график функции у = 3 х - 9х + 6, выполненный
в этом стиле.

! Пример 7.2

Астроном Хаббл обнаружил, что галактики удаляются от Земли
тем быстрее, чем дальше они от нее расположены. Данные опыта
Хаббла приведены в табл. 7.2.
144 Глава 7

ШиипдикЕ 1 Ш Ш
ex • •'




Vw Isr To ekp Wo
s net os so n w
lD t id
Fi
l
e Ш H e l o




D p i • - •




25

20

15
i




1
0 * -




i




5- -
"*• +
, * '




' • " • *


•*-




0
*

<<

стр. 2
(всего 5)

СОДЕРЖАНИЕ

>>