You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: tex/LinearAlgebra.tex
+51-14Lines changed: 51 additions & 14 deletions
Original file line number
Diff line number
Diff line change
@@ -9,6 +9,18 @@ \section{Бинарные операции и их свойства}
9
9
10
10
Введём понятие \textit{бинарной операции} и рассмотрим некоторые её свойства, такие как \textit{коммутативность} и \textit{ассоциативность}.
11
11
12
+
\begin{definition}
13
+
\textit{Функцией} будем называть бинарное отношение на двух множествах $X$ и $Y$, такое, что каждому элементу из $X$ сопоставляется ровно один элемент из $Y$. Запись $f: X \to Y$ как раз и обозначает, что функция $f$ сопоставляет элементы из $X$ элементам из $Y$.
14
+
\end{definition}
15
+
16
+
\begin{definition}
17
+
Для функции $f: X \to Y$, множество $X$ называется \textit{областью определения функции} или \textit{доменом функции}.
18
+
\end{definition}
19
+
20
+
\begin{definition}
21
+
Для функции $f: X \to Y$, множество $Y$ называется \textit{областью значений функции} или \textit{кодоменом функции}.
22
+
\end{definition}
23
+
12
24
\begin{definition}
13
25
Функцию, принимающую два аргумента, $f: S \times K \to Q$ будем называть \emph{двухместной} или \emph{функцией арности два}.
14
26
Для записи таких функций будем использовать типичную нотацию: $c = f(a,b)$.
@@ -143,7 +155,7 @@ \section{Полугруппа}
143
155
\begin{itemize}
144
156
\item Множество положительных целых чисел с операцией сложения является коммутативной полугруппой.
145
157
\item Множество целых чисел с операцией взятия наибольшего из двух ($\max$) является коммутативной полугруппой.
146
-
\item Множество всех строк конечной длины (без пустой строки) над фиксированным алфавитом $\Sigma$ с операцией конкатенации является полугруппой. Так как конкатенация на строках не является коммутативной операцией, то и полугруппа не является коммутативной.
158
+
\item Множество всех строк конечной длины без пустой строки\footnote{Множество всех строк конечной длины c пустой строкой также является полугруппой. Однако, такая структура является ещё и моноидом, что будет показано далее.} над фиксированным алфавитом $\Sigma$ с операцией конкатенации является полугруппой. Так как конкатенация на строках не является коммутативной операцией, то и полугруппа не является коммутативной.
147
159
\end{itemize}
148
160
\end{example}
149
161
@@ -158,7 +170,7 @@ \section{Моноид}
158
170
\begin{example} Приведём примеры моноидов, построенных на основе полугрупп из предыдущего раздела.
159
171
160
172
\begin{itemize}
161
-
\item Неотрицательные целые числа с операцией сложения являются моноидом. Нейтральный элемент --- $0$.
173
+
\item Неотрицательные целые числа (или же натуральные числа с нулём) с операцией сложения являются моноидом. Нейтральный элемент --- $0$.
162
174
\item Целые числа, дополненные значением $-\infty$ (``минус-бесконечность'') с операцией взятия наибольшего из двух ($\max$) являются моноидом. Нейтральный элемент --- $-\infty$.
163
175
\item Множество всех строк конечной длины с пустой строкой (строка длины 0) над фиксированным алфавитом $\Sigma$ и операцией конкатенации является моноидом. Нейтральный элемент --- пустая строка.
164
176
\item Квадратные неотрицательные матрицы\footnote{Неотрицательной называется матрица, все элементы которой не меньше нуля.} фиксированного размера с операцией умножения задают моноид. Нейтральный элемент --- единичная матрица.
@@ -183,6 +195,14 @@ \section{Группа}
183
195
Если операция $\circ$ коммутативна, то говорят, что группа \textit{Абелева}.
184
196
\end{definition}
185
197
198
+
\begin{example}
199
+
Рассмотрим несколько примеров групп.
200
+
\begin{itemize}
201
+
\item Целые числа $\mathbb{Z}$ с операцией сложения $+$ являются группой. Получается дополнением моноида из предыдущего раздела обратными по сложению элементами.
202
+
\item Целые числа $\mathbb{Z}$ без нуля\footnote{При наличии нуля возникают трудности с нейтральным элементом. Логично считать $1$ --- нейтральным по умножению, однако $0\cdot1 = 0$, а не 1, как того требует определение.} с операцией умножения $\cdot$ не являются группой, так как нет обратных по умножению. Действительно, возьмём $a = 3$, тогда должен существовать $a^{-1} \in\mathbb{Z}$, такой что $3\cdot a^{-1} = 1$. Видим, что $a^{-1} = \frac{1}{3}$, но $\frac{1}{3} \notin\mathbb{Z}$.
203
+
\item Множество обратимых\footnote{Квадратная матрица $M$ называется обратимой, если существует матрица $N$, называемая обратной, такая что $M \cdot N = N \cdot M I$, где $I$ --- единичная матрица. К сожалению, не все матрицы являются обратимыми, потому, чтобы сконструировать группу, нам приходится требовать обратимость явно.} матриц с операцией матричного умножения задают группу.
204
+
\end{itemize}
205
+
\end{example}
186
206
187
207
\section{Полукольцо}
188
208
@@ -246,14 +266,19 @@ \section{Полукольцо}
246
266
\item$(a \odot b) \odot c = a \odot (b \odot c)$ по определению $\odot$
247
267
\item$\{\varepsilon\}\odot a = \{\varepsilon\cdot w \mid w \in a \} = \{w \mid w \in a \} = a \odot\{\varepsilon\} = a$
248
268
\end{itemize}
249
-
Вообще говоря, сконструированный нами моноид не является коммутативным: легко проверить, например, что для любых непустых$a,b \in R, a \neq b, a \neq\{\varepsilon\}, b \neq\{\varepsilon\}$: $a \cdot b \neq b \cdot a$ по причине некоммутативности конкатенации строк.
269
+
Вообще говоря, сконструированный нами моноид не является коммутативным: легко проверить, например, что существуют непустые$a,b \in R, a \neq b, a \neq\{\varepsilon\}, b \neq\{\varepsilon\}$: $a \cdot b \neq b \cdot a$ по причине некоммутативности конкатенации строк.
250
270
251
271
\item$\odot$ дистрибутивно слева и справа относительно $\cup$:
252
272
\begin{itemize}
253
273
\item$a \odot (b \cup c) = \{ w_1\cdot w_2\mid w_1\in a, w_2\in b \cup c\} = \{ w_1\cdot w_2\mid w_1\in a, w_2\in b \}\cup\{ w_1\cdot w_2\mid w_1\in a, w_2\in c \} = (a \odot b) \cup (a \odot c)$
254
274
\item Аналогично, $(a \cup b) \odot c = (a \odot c) \cup (b \odot c)$
255
275
\end{itemize}
256
-
При этом, в общем случае, $a \odot (b \cup c) \neq (b \cup c) \odot a$ из-за некоммутативности операции $\odot$.
276
+
При этом, в общем случае, $a \odot (b \cup c) \neq (b \cup c) \odot a$ из-за некоммутативности операции $\odot$. Действительно,
\item$\varnothing$ является \textit{аннигилятором} по умножению: для любого $a \in R$ верно, что
@@ -294,7 +319,20 @@ \section{Кольцо}
294
319
295
320
\end{enumerate}
296
321
297
-
Заметим, что мультипликативное свойство $\mathbb{0}$ (быть аннигилятором по умножению) не указыватеся явно, так как может быть выведено из остальных утверждений.
322
+
Заметим, что мультипликативное свойство $\mathbb{0}$ (быть аннигилятором по умножению) не указыватеся явно, так как может быть выведено из остальных утверждений. Действительно,
323
+
\begin{enumerate}
324
+
\item$a \otimes\mathbb{0} = a \otimes (\mathbb{0} \oplus\mathbb{0})$, так как $\mathbb{0}$ --- нейтральный по сложению, то $\mathbb{0} \oplus\mathbb{0} = \mathbb{0}$
325
+
\item Воспользуемся дистрибутивностью: $a \otimes (\mathbb{0} \oplus\mathbb{0}) = a \otimes\mathbb{0} \oplus a \otimes\mathbb{0}$. В итоге: $a \otimes\mathbb{0} = a \otimes\mathbb{0} \oplus a \otimes\mathbb{0}$
326
+
\item Так как у нас есть группа по сложению, то для любого $a$ существует обратный элемент $a^{-1}, a \oplus a^{-1} = \mathbb{0}$. Прибавим $a^{-1} \otimes\mathbb{0}$ к левой и правой части равенства\footnote{Обычно данное действие воспринимается как очевидное, но, строго говоря, оно требует аккуратного введения структур с равенством и соответствующих аксиом.}, полученного на предыдущем шаге:
327
+
$$a \otimes\mathbb{0} \oplus a^{-1} \otimes\mathbb{0} = a \otimes\mathbb{0} \oplus a \otimes\mathbb{0} \oplus a^{-1} \otimes\mathbb{0}.$$
328
+
\item Воспользуемся дистрибутивностью и ассоциативностью.
329
+
\begin{align*}
330
+
(a \oplus a^{-1}) \otimes\mathbb{0} & = a \otimes\mathbb{0} \oplus (a \oplus a^{-1}) \otimes\mathbb{0} \\
331
+
\mathbb{0} \otimes\mathbb{0} & = a \otimes\mathbb{0} \oplus\mathbb{0} \otimes\mathbb{0} \\
332
+
\mathbb{0} & = a \otimes\mathbb{0}
333
+
\end{align*}
334
+
\item Аналогично можно доказать, что $\mathbb{0} = \mathbb{0} \otimes a$.
335
+
\end{enumerate}
298
336
299
337
\end{definition}
300
338
@@ -353,11 +391,10 @@ \section{Матрицы и вектора}
353
391
Примерами структурных операций является \textit{транспонирование}, \textit{взятие подматрицы} и \textit{взятие элемента по индексу}.
354
392
355
393
\begin{definition}[Транспонирование матрицы]
356
-
Пусть дана матрица $M_{n\times m}$. Тогда результат её \emph{транспонирования}
357
-
$
358
-
M_{n\times m}^T = M'_{m\times n},
359
-
$
360
-
такая что $M'[i,j] = M[j,i]$ для всех $0\leq i \leq m - 1$ и $0\leq j \leq n - 1$.
394
+
Пусть дана матрица $M_{n\times m}$. Тогда результат её \emph{транспонирования}, это такая матрица $M'_{m\times n}$, что $M'[i,j] = M[j,i]$ для всех $0\leq i \leq m - 1$ и $0\leq j \leq n - 1$.
395
+
396
+
Операцию транспонирования принято обозначать как $M^{T}$.
397
+
361
398
\end{definition}
362
399
363
400
\begin{example}
@@ -418,7 +455,7 @@ \section{Матрицы и вектора}
418
455
419
456
\begin{definition}[Поэлементные операции]
420
457
421
-
Пусть $G = (S,\circ)$ --- полугруппа, $M_{n \times m}, N_{n\times m}$ --- две матрицы одинакового размера над этой полугруппой.
458
+
Пусть $G = (S,\circ)$ --- полугруппа\footnote{Здесь, как и в дальнейшем, требование к структуре быть полугруппой не обязательно. Оно лишь позволяет нам получить ассоциативность соответствующих операций над матрицами, что может оказаться полезным при дальнейшей работе.}, $M_{n \times m}, N_{n\times m}$ --- две матрицы одинакового размера над этой полугруппой.
Сложность наивного произведения двух матриц составляет $O(n^3)$, что очевидным образом следует из псевдокода. Но можно ли улучшить этот алгоритм? Первый положительный ответ был опубликовал Ф. Штрассен в 1969 году~\cite{Strassen1969}. Сложность предложенного им алгоритма --- $O(n^{\log_2 7}) \approx O(n^{2.81})$. Основная идея --- рекурсивное разбиение исходных матриц на блоки и вычисление их произведения с помощью только 7 умножений, а не 8.
680
+
Сложность наивного произведения двух матриц составляет $O(n^3)$ из-за тройного вложенного цикла, где каждый уровень вложенности привносит $n$ итераций. Но можно ли улучшить этот алгоритм? Первый положительный ответ был опубликовал Ф. Штрассен в 1969 году~\cite{Strassen1969}. Сложность предложенного им алгоритма --- $O(n^{\log_2 7}) \approx O(n^{2.81})$. Основная идея --- рекурсивное разбиение исходных матриц на блоки и вычисление их произведения с помощью только 7 умножений, а не 8.
644
681
645
-
Рассмотрим алгоритм Штрассена более подробно. Пусть $A$ и $B$ --- две квадратные матрицы размера $2^n \times2^n$\footnote{Если размер умножаемых матриц не является натуральной степенью двойки, мы дополняем исходные матрицы дополнительными нулевыми строками и столбцами.} над кольцом $R=(S,\oplus,\otimes)$. Наша задача найти матрицу $C = A \cdot B$.
682
+
Рассмотрим алгоритм Штрассена более подробно. Пусть $A$ и $B$ --- две квадратные матрицы размера $2^n \times2^n$ над кольцом $R=(S,\oplus,\otimes)$. Если размер умножаемых матриц не является натуральной степенью двойки, то дополняем исходные матрицы дополнительными нулевыми строками и столбцами. Наша задача найти матрицу $C = A \cdot B$.
646
683
647
684
Разделим матрицы $A, B$ и $C$ на четыре равные по размеру блока.
0 commit comments