add 3 lectures for SFedU

This commit is contained in:
Edward Emelianov 2021-11-11 20:44:40 +03:00
parent 5d6974b950
commit 0d8fbff1dd
238 changed files with 2746 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,408 @@
\documentclass[10pt,pdf,hyperref={unicode}]{beamer}
\hypersetup{pdfpagemode=FullScreen}
\usepackage{lect}
\title[Компьютерная обработка. Лекциия 1.]{Компьютерная обработка результатов измерений}
\subtitle{Лекция 1. Общие сведения об измерениях. Виды сигналов и методы их анализа.}
\date{}
\begin{document}
% Титул
\begin{frame}{}
\maketitle
\end{frame}
% Содержание
\begin{frame}{}
\tableofcontents[hideallsubsections]
\end{frame}
\section{Физические измерения}
\begin{frame}{Физические измерения}
\begin{defin}
Экспериментальное определение значения измеряемой величины с применением средств
измерений называется {\bf измерением}.
\end{defin}
\begin{block}{}
Важнейшей особенностью измерений является {\it принципиальная невозможность
получения результатов измерения, в точности равных истинному значению
измеряемой величины} (особенно эта особенность проявляется в микромире, где
господствует принцип неопределенности).
Эта особенность приводит к необходимости оценки степени близости результата
измерения к истинному значению измеряемой величины, т.е. вычислять
{\bf погрешность измерения}.
\end{block}
\end{frame}
\section{Величины}
\begin{frame}{Величины}
\only<1>{
\begin{defin}
Мерой называется средство измерений, предназначенное для воспроизведения и хранения
значения
физической величины.
Результатом сравнения оцениваемой вещи с мерой является именованное число,
называемое значением величины.
\end{defin}
\begin{block}{Физические величины}
\begin{itemize}
\item постоянные (инварианты, константы, априорно фиксированные значения);
\item изменяющиеся (по определенному закону от $t$);
\item случайные (не имеющие точного значения).
\end{itemize}
% Скалярные, векторные, комплексные, тензорные величины.\par
% Метрология.
\end{block}
}\only<2>{
\begin{block}{Физические величины}
Основные:
\begin{itemize}
\item длина (метр);
\item масса (килограмм);
\item время (секунда);
\item сила электрического тока (Ампер);
\item термодинамическая температура (Кельвин);
\item количество вещества (моль);
\item сила света (кандела).
\end{itemize}
Вспомогательные:
\begin{itemize}
\item плоский угол (градус);
\item телесный угол (стерадиан).
\end{itemize}
Производные величины (например, 1\,Кл=1\,А$\cdot$с).
\end{block}
}\only<3>{
\begin{defin}
Размер величины~--- ее количественная характеристика. Цель любого измерения~--- получение
информации о размере физической величины.
Размерность~--- качественная характеристика измеряемой величины. Если с изменением основной
величины в $n$~раз производная изменится в $n^p$~раз, то говорят, что данная производная единица
обладает размерностью $p$~относительно основной единицы. Например, размерность объема (м${}^3$)
равна трем.
Анализ размерностей помогает установить связи между физическими величинами. Например:
определить время падения тела под действием силы тяжести~($g$) с высоты~$h$. $t=C h^x\cdot g^y$.
Составим уравнение размерностей: $T=L^x\cdot(LT^{-2})^y$. Отсюда $y=-1/2$, $x=1/2$. Искомое
выражение: $t=C\sqrt{h/g}$ (как мы знаем, $C=\sqrt2$).
\end{defin}
}
\end{frame}
\begin{frame}{Виды измерений}
\begin{description}
\only<1>{
\item[Прямые] при которых искомое значение физической величины получают непосредственно.
\item[Косвенные] на основании результатов прямых измерений других физических величин,
функционально связанных с искомой величиной (например, измерение сопротивления при
помощи вольтметра и амперметра).
\item[Совместные] проводимые одновременно для нескольких неодноименных величин для
определения зависимости между ними (например, для измерения зависимости сопротивления
от температуры, $R=R_0(1+AT)$, измеряют $R$ при нескольких разных~$T$, откуда вычисляют
$R_0$$A$).
\item[Совокупные] при которых искомые значения величин определяют путем решения системы
уравнений, получаемых при измерениях этих величин в различных сочетаниях (например,
измерение сопротивлений резисторов, соединенных треугольником).
}
\only<2>{
\item[Равноточные] выполненные одинаковыми по точности средствами измерений.
\item[Неравноточные] выполненных различающимися по точности средствами измерений и
(или) в разных условиях.
\item[Однократные, многократные] (в зависимости от возможности проведения повторных
измерений).
\item[Статические] для величин, принимаемых в соответствии с конкретной
измерительной задачей за неизменные на протяжении времени измерения.
\item[Динамические] для изменяющейся по размеру физической величины.
\item[Абсолютные] основанное на прямых измерениях одной или нескольких основных
величин и (или) использовании значений физических констант.
\item[Относительные] сравнение с эталонными мерами.}
\end{description}
\end{frame}
\begin{frame}{Методы измерений}
\begin{description}
\item[Метод непосредственной оценки] непосредственно по средству измерения со шкалой.
\item[Нулевой метод] такое сравнение с мерой, при котором результирующий эффект
воздействия управляемой величины и меры сводят к нулю (например, измерение сопротивления
при помощи моста Уитстона).
\item[Дифференциальный (разностный) метод] измеряемая величина сравнивается с эталоном,
значение которого незначительно от нее отличается (например, взвешивание на рычажных весах
с гирями).
\item[Метод измерения замещением] поочередное измерение величины и замещающей меры (пример:
измерение сопротивления при помощи стабильного источника напряжения, амперметра и опорного
резистора).
\end{description}
\end{frame}
\begin{frame}{}
\begin{block}{Качество измерений}
Точность~--- близость результатов к истинному значению измеряемой величины.\\
Достоверность~--- степень доверия к результатам измерения.\\
Сходимость~--- близость результатов при измерении одним и тем же методом в одинаковых
условиях.\\
Воспроизводимость~--- близость результатов при измерении одним и тем же методом, но в
разных условиях.
Пример: измерение толщины индикатором часового типа. Цена деления индикатора: $10\,$мкм. В
результате измерений получили ряд данных: $1.71$, $1.69$, $1.60$, $1.70$, $1.72$, среднее
значение: $(1.68\pm0.05)\,$мм. Если отбросить явно ошибочное $1.60$, получим:
$(1.71\pm0.01)\,$мм. Для оценки воспроизводимости измерим штангенциркулем (с ценой деления
$0.05\,$мм). Если в пределах погрешности получим $1.70\cdot1.72\,$мм, то метод измерения
дал хорошую воспроизводимость.
При измерении температуры терморезистором АЦП может обеспечить цену деления $0.03\degr C$,
однако, точность и воспроизводимость измерений будет определяться характеристиками самого
терморезистора и измерительной схемы. Точность можно оценить по эталонному термометру в
единичном измерении; воспроизводимость~--- по множеству измерений с прохождением
контрольной точки "сверху" и "снизу".
\end{block}
\end{frame}
\begin{frame}{Формы представления результатов}
\only<1>{
\begin{block}{Общая форма представления}
Точечная оценка результата измерения, характеристики погрешностей измерения, указание условий
измерения.
Характеристики погрешностей указывают в абсолютных или относительных единицах. Этими
характеристиками могут быть:
среднее квадратическое отклонение погрешности;
среднее квадратическое отклонение случайной погрешности;
среднее квадратическое отклонение систематической погрешности;
нижняя граница интервала погрешности измерений;
верхняя граница интервала погрешности измерений;
нижняя граница интервала систематической погрешности измерений;
верхняя граница интервала систематической погрешности измерений;
вероятность попадания погрешности в указанный интервал.
\end{block}
}\only<2>{
\begin{block}{Требования к оформлению результата}
\begin{itemize}
\item Наименьшие разряды оценки и погрешности должны совпадать. Например: вместо
$x=1.23\pm0.5$ пишем $x=1.2\pm0.5$; вместо $y=5.1\cdot10^4\pm25$ пишем
$(51.000\pm0.025)\cdot10^3$.
\item Характеристики погрешностей выражаются числом, содержащим не более двух значащих
цифр, причем с округлением в б\'ольшую сторону. Например: вместо
$x=1.014\pm0.111$ пишем $x=1.01\pm0.12$.
\item Допускается характеризовать погрешность числом с одной значащей цифрой (с округлением
по классическиму правилу).
\end{itemize}
Примеры:
$(8.334 \pm 0.012)\,$г, $P = 0.95$.
$32.014\,$мм, характеристики погрешностей и условия измерений по РД 50-98\,--\,86, вариант 7к.
$(32.010\cdots32.018)\,$мм, $P = 0.95$, измерение индикатором ИЧ 10\,кл. точности 0 на стандартной
стойке с настройкой по концевым мерам длины 3\,кл. точности; измерительное перемещение не более
$0.1\,$мм; температурный режим измерений $\pm2\degr C$.
$72.6360\,$мм; $\Delta_\text{н}= -0.0012\,$мм, $\Delta_\text{в}= +0.0018\,$мм; $P = 0.95$.
\end{block}
}
\end{frame}
\begin{frame}{Представление результатов}
\only<1>{
\begin{block}{Табличное}
Позволяет избежать многократной записи единиц измерения, обозначений измеряемой величины,
используемых множителей. В таблицы, помимо основных измерений, могут быть включены и результаты
промежуточных измерений.
Для удобства импортирования данных и одновременно наглядности чтения удобно хранить в формате TSV
(tab separated values) или CSV (comma separated values).
SED позволит легко преобразовать TSV/CSV в таблицу \LaTeX.
\end{block}
\begin{block}{Графическое}
На основе графика легко можно сделать вывод о соответствии
теоретических представлений данным эксперимента, определить вид функциональной
зависимости измеряемой величины.
\end{block}
}
\only<2>{\img{table1}}
\only<3>{\vspace*{-1em}\img[0.9]{table2}}
\only<4>{\vspace*{-2em}\img{graph1}}
\only<5>{\vspace*{-2em}\img{graph2}}
\end{frame}
\begin{frame}{}
\only<1>{
\begin{block}{Выбор типа графика}
\begin{description}
\item[График] подходит для изображения динамики какой-то зависимости, наглядной визуализации
экстремумов, перегибов и прочих характерных мест (например, фотометрическая кривая).
\item[Столбцевая диаграмма] позволяет визуализировать различие в нескольких наборах данных
(например, падение покупательной способности рубля с течением времени).
\item[Круговая диаграмма] лучше всего подходит для демонстрации вклада отдельных частей в целое
(например, химический состав атмосферы звезды).
\item[Гистограмма] похожа на график с дискретным аргументом (например, $0, 1, 2, \ldots$ или
$0-9, 10-19, 20-29,\ldots$). Гистограммы отлично характеризуют изображения.
\end{description}
\end{block}
}\only<2>{
\begin{block}{Визуализация в виде таблицы}
Идеал~--- полное отсутствие таблиц в тексте. Исключения: данные в таблице~--- текст или пиктограммы.
Если в таблице слишком много данных, ее никто не будет читать. Исключение~--- справочники (но они
нынче в электронном виде).
\end{block}
\begin{block}{Программное обеспечение}
Хорошо: \LaTeX, GNUplot, GNU Octave, R\dots.
Плохо: LibreOffice (Writer, Calc).
Ужасно: проприетарное ПО (M\$ Word и т.п.).
\end{block}
}
\end{frame}
\section{Сигналы и их виды}
\begin{frame}{Сигналы и их виды}
\only<1>{
\begin{defin}
Если некоторая изменяющаяся величина измеряется непрерывно (или квазинепрерывно), мы
имеем дело с потоком информации, или сообщением.
В теории информации физический процесс, значения параметров которого отображают
передаваемое сообщение, называется сигналом.
\end{defin}
\begin{block}{}
Модуляция--демодуляция. Зашумление.
{\bf Помехи}: аддитивные, мультипликативные, фазовые.
\end{block}
}
\only<2>{\img[0.7]{Ampl_modulation}}
\only<3>{\img{Freq_modulation}}
\only<4>{\begin{light}\img[0.7]{Phase_modulation}\end{light}}
\only<5>{Add/mult\img[0.7]{add_mult_noise}}
\end{frame}
\begin{frame}{Виды сигналов}
\only<1>{
\begin{block}{Аналоговый}
Описывается непрерывной (или кусочно--непрерывной) функцией $x(t)$: $t\in[t_0,t_1]$,
$x\in[x_0,x_1]$. Аудиосигналы, телевизионные сигналы и т.п.
\end{block}
\img[0.4]{oscill}
}
\only<2>{
\begin{block}{Дискретный}
Описывается решетчатой функцией (последовательностью, временн\'ым рядом) $x(nT)$: $x\in[x_0,x_1]$,
$n=\overline{1,N}$, $T$~-- интервал дискретизации. Величину $f=1/T$
называют частотой дискретизации. Если интервал дискретизации является
постоянной величиной, дискретный сигнал можно задать в виде ряда $\{x_1,\ldots, x_N\}$.
\end{block}
\img[0.6]{disc_sig}
}
\only<3>{
\begin{block}{Цифровой}
Описывается квантованной решетчатой функцией и отличается от обычного дискретного сигнала тем, что
каждый уровень квантования кодируется двоичным кодом. Таким образом, если
величина $x\in[x_0,x_1]$ квантуется $N$~разрядным кодом, для
обратного представления из кода $K_x$ в значение $x$ применяется
преобразование: $x=x_0+K_x\cdot (x_1-x_0)/2^{N}$. К цифровым сигналам относятся
сигналы, используемые в системах связи с импульсно--кодовой модуляцией.
\end{block}
\img[0.4]{digital_signal}
}
\only<4>{\img{Analog_signal}}
\end{frame}
\begin{frame}{Дискретизация}
\begin{block}{}
Дискретизация строит по заданному аналоговому сигналу $x(t)$ дискретный сигнал $x_n(nT)$, причем
$x_n(nT)=x(nT)$. Операция восстановления состоит в том, что по заданному дискретному сигналу
строится аналоговый сигнал.
\end{block}
\begin{block}{Теорема Котельникова--Найквиста}
\begin{itemize}
\item любой аналоговый сигнал может быть восстановлен с какой угодно точностью по своим дискретным
отсчётам, взятым с частотой $f > 2f_c$, где $f_c$~-- максимальная частота, которой ограничен спектр
реального сигнала;
\item если максимальная частота в сигнале равна или превышает половину частоты дискретизации
(наложение спектра), то способа восстановить сигнал из дискретного в аналоговый без искажений не
существует.
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{Теорема Котельникова--Найквиста}
\begin{block}{}
$$\text{Фурье: }X_{s}(f)\ {\stackrel {\mathrm {def} }{=}}\sum _{n=-\infty }^{\infty }T\cdot x(nT)\
e^{-i2\pi
nTf}$$
$$\text{В окне: }X(f) = \sum _{n=-\infty }^{\infty }x(nT)\cdot \underbrace {T\cdot \mathrm {rect}
(Tf)\cdot
e^{-i2\pi nTf}} _{{\mathcal {F}}\left\{\mathrm{sinc}\left[\frac{\pi}{T}(t-nT)\right]\right\}}$$
\end{block}
\begin{columns}\column{0.5\textwidth}
\img{ReconstructFilter}
\column{0.5\textwidth}
\begin{block}{Формула Уиттекера--Шеннона}
Восстановить непрерывную функцию из дискретной:
$$x(t)=\sum _{n=-\infty }^{\infty }x(nT)\cdot \mathrm{sinc}\left[\frac{\pi}{T}(t-nT)\right]$$
\end{block}
\end{columns}
\end{frame}
\begin{frame}{Квантование}
\begin{defin}
Для преобразования дискретного сигнала в цифровой вид применяется операция квантования или
аналогово--цифрового преобразования~(АЦП), которая по заданному дискретному сигналу $x_n(nT)$
строит цифровой кодированный сигнал $x_d(nT)$, причем $x_n(nT)\approx x_d(nT)$. Обратная квантованию
операция называется операцией цифро--аналогового преобразования~(ЦАП).
\end{defin}
\only<1>{\img[0.7]{ADC}}
\only<2>{\img{DAC}}
\end{frame}
\section{Литература}
\begin{frame}{Основная литература}
\begin{itemize}
\item Интернет--энциклопедия: http:/\!/wikipedia.org (Википедия).
\item Гонсалес~Р., Вудс~Р. Цифровая обработка изображений.~--- М.: Техносфера, 2012.~---
1104~с.
\item Витязев~В.В. Вейвлет-анализ временных рядов: Учеб. пособие.~---
СПб.: Изд-во С.-Петерб. ун-та., 2001.~--- 58~с.
\item Гонсалес~Р., Вудс~Р., Эддинс~С. Цифровая обработка изображений
в среде MATLAB.~--- М.: Техносфера, 2006~--- 616~с.
\item Гмурман~В.\,Е. Теория вероятностей и математическая статистика.
Учеб. пособие для вузов.~--- Изд. 7-е, стер.~--- М.: Высш. шк., 2001.~--- 479~с.
\item Говорухин~В., Цибулин~В. Компьютер в математическом исследовании.
Учебный курс.~--- СПб.: Питер, 2001.~--- 624~с.
\item Сергиенко~А.\,Б. Цифровая обработка сигналов.~--- СПб.: Питер, 2005.~---
604~с.
\item Чен~К., Джиблин~П., Ирвинг~А. MATLAB в математических исследованиях:
Пер. с англ.~--- М.: Мир, 2001.~--- 346~с.
\end{itemize}
\end{frame}
\begin{frame}{Дополнительная литература}
\begin{itemize}
\item Бахвалов~Н.\,С., Жидков~Н.\,П., Кобельков~Г.\,М. Численные методы.~---
М.: Высш. шк., 1987.~--- 630~с.
\item Кнут~Д.\,Э. Все про \TeX./ Пер. с англ. М.\,В.~Лисиной.~---
Протвино: АО~RD\TeX, 1993.~--- 592~с.: ил.
\item Львовский~С.\,М. Набор и верстка в системе \LaTeX.~--- 3-е изд.,
исрп. и доп.~--- М.: МЦНМО, 2003.~--- 448~с.
\item Физическая энциклопедия/ Гл. ред. А.М.~Прохоров.~--- М.: Сов.
энциклопедия. Тт. I~--~V. 1988.
\item Цифровая обработка сигналов: Справочник/ Л.М.~Гольденберг,
Б.Д.~Матюшкин, М.Н.~Поляк.~--- М.: Радио и связь, 1985.~--- 312~с., ил.
\item \url{http://www.imageprocessingplace.com/}
\item Pan~G.\,W. Wavelets in electromagnetic and device modeling.~---
John~Wiley \& Sons, Inc., Hobocen, New Jersey, 2003.~--- 531~p.
\end{itemize}
\end{frame}
\begin{frame}{Спасибо за внимание!}
\centering
\begin{minipage}{5cm}
\begin{block}{mailto}
eddy@sao.ru\\
edward.emelianoff@gmail.com
\end{block}\end{minipage}
\end{frame}
\end{document}

BIN
Komp_obr_SFedU/01_Pract.pdf Normal file

Binary file not shown.

384
Komp_obr_SFedU/01_Pract.tex Normal file
View File

@ -0,0 +1,384 @@
\documentclass[10pt,pdf,hyperref={unicode}]{beamer}
\hypersetup{pdfpagemode=FullScreen}
\usepackage{lect}
\usepackage{listings}
\lstloadlanguages{Octave,C,bash}
\lstset{language=bash}
\title[ëÏÍÐØÀÔÅÒÎÁÑ ÏÂÒÁÂÏÔËÁ. ðÒÁËÔÉËÕÍ 1.]{ëÏÍÐØÀÔÅÒÎÁÑ ÏÂÒÁÂÏÔËÁ ÒÅÚÕÌØÔÁÔÏ× ÉÚÍÅÒÅÎÉÊ}
\subtitle{ðÒÁËÔÉËÕÍ 1. òÁÂÏÔÁ Ó ÆÁÊÌÁÍÉ × bash.}
\date{}
\begin{document}
% ôÉÔÕÌ
\begin{frame}{}
\maketitle
\end{frame}
\begin{frame}{Linux}
\begin{block}{}
ñÄÒÏ. GNU is not UNIX. <<âÒÉÔ×Á ïËËÁÍÁ>>: UNIX-way É KISS. <<ôÒÕÂÙ>>.
æÁÊÌÏ×ÙÅ ÓÉÓÔÅÍÙ: ÔÒÁÎÚÁËÃÉÉ, ÐÒÁ×Á ÄÏÓÔÕÐÁ É ÁÔÔÒÉÂÕÔÙ ÆÁÊÌÏ×, <<×ÓÅ ÅÓÔØ ÆÁÊÌ>>~--- ÐÓÅ×ÄÏÆÁÊÌÙ.
íÏÎÔÉÒÏ×ÁÎÉÅ æó. ëÏÍÁÎÄÙ \t{mount}, \t{df}, \t{du}. óÓÙÌËÉ ÎÁ ÆÁÊÌÙ: \t{ln}.
óÔÒÕËÔÕÒÁ ÆÁÊÌÏ×ÏÊ ÓÉÓÔÅÍÙ: ÂÁÚÏ×ÙÅ ÄÉÒÅËÔÏÒÉÉ.
ôÅÒÍÉÎÁÌÙ É ÐÓÅ×ÄÏÔÅÒÍÉÎÁÌÙ. ëÏÍÁÎÄÎÙÅ ÏÂÏÌÏÞËÉ. ëÏÍÁÎÄÙ \t{man} É \t{apropos}. ðÒÉÇÌÁÛÅÎÉÅ
ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ: \t{\$PS1}.
òÁÂÏÞÁÑ ÄÉÒÅËÔÏÒÉÑ: \t{pwd} É \t{\$PWD}. ëÏÍÁÎÄÁ \t{env}. ëÏÍÁÎÄÁ \t{alias}.
\end{block}
\end{frame}
\begin{frame}{âÁÚÏ×ÙÅ ÆÁÊÌÏ×ÙÅ ÏÐÅÒÁÃÉÉ}
\only<1>{
\begin{block}{}
\t{ls}~-- ÏÔÏÂÒÁÖÅÎÉÅ ÓÏÄÅÒÖÉÍÏÇÏ ËÁÔÁÌÏÇÁ.
\t{cd}~-- ÐÅÒÅÈÏÄ × ÄÒÕÇÏÊ ËÁÔÁÌÏÇ.
\t{mkdir}~-- ÓÏÚÄÁÔØ ËÁÔÁÌÏÇ, \t{rmdir}~-- ÕÄÁÌÉÔØ.
\t{rm}~-- ÕÄÁÌÉÔØ ÆÁÊÌÙ, ËÁÔÁÌÏÇÉ.
\t{find}~-- ÐÏÉÓË ÆÁÊÌÁ; \t{locate}~-- ÂÙÓÔÒÙÊ ÐÏÉÓË Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÂÁÚÙ ÄÁÎÎÙÈ.
\t{touch}~-- ÓÏÚÄÁÔØ ÆÁÊÌ ÌÉÂÏ ÉÚÍÅÎÉÔØ ÁÔÒÉÂÕÔÙ ÓÕÝÅÓÔ×ÕÀÝÅÇÏ.
\t{echo}~-- ×Ù×ÏÄ × ÔÅÒÍÉÎÁÌ ÄÁÎÎÙÈ.
\t{reset}~-- ÓÂÒÏÓ ÎÁÓÔÒÏÅË ÔÅÒÍÉÎÁÌÁ.
\end{block}
}\only<2>{
\begin{block}{óÐÅÃÉÁÌØÎÙÅ ÕÓÔÒÏÊÓÔ×Á}
\t{/dev/zero} ÐÒÉ ÞÔÅÎÉÉ ×ÏÚ×ÒÁÝÁÅÔ ÎÕÌÉ.\\
\t{/dev/null} ÕÎÉÞÔÏÖÁÅÔ ×ÓÅ ÄÁÎÎÙÅ, ËÏÔÏÒÙÅ × ÎÅÇÏ ÐÉÛÕÔ.\\
\t{/dev/random} ÓÌÕÞÁÊÎÙÅ ÞÉÓÌÁ (ÔÒÅÂÕÅÔ <<ÜÎÔÒÏÐÉÉ>>).\\
\t{/dev/urandom} ÐÓÅ×ÄÏÓÌÕÞÁÊÎÙÅ ÞÉÓÌÁ.
\end{block}
}
\end{frame}
\begin{frame}{ðÅÒÅÍÅÎÎÙÅ, ÓËÏÂËÉ, ×ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ}
\begin{block}{}
\t{x="text"; echo "\$x"; echo "\$\{x\}"}. \t{echo "{}'\$x'=\$x"}.
\t{echo "\bsl\$x=\$x"}. \t{unset x}. \t{set}. \t{env}.
\t{echo `ls`} É \t{echo \$(ls)}. \t{let a=25+3}.
\t{\$\{VAR-default\}}, \t{\$\{VAR=default\}}~-- ÚÎÁÞÅÎÉÅ ÐÏ ÕÍÏÌÞÁÎÉÀ.
\t{\$\{VAR?err message\}}~-- ×ÙÄÁÞÁ ÓÏÏÂÝÅÎÉÑ.
\t{\$\{VAR:pos[:len]\}}~-- ÐÏÄÓÔÒÏËÁ Ó \t{pos} ÄÌÉÎÙ \t{len}.
íÁÔÅÍÁÔÉËÁ: \t{var1=\$((5 + 5))}, \t{var2=\$((\$var1 * 2))}.
÷ÏÚ×ÒÁÝÁÅÍÏÅ ÚÎÁÞÅÎÉÅ: \t{\$?}. åÓÌÉ ×ÏÚ×ÒÁÝÁÅÔÓÑ ÎÅ 0, ÔÏ ÜÔÏ ÏÂÙÞÎÏ~--- ËÏÄ ÏÛÉÂËÉ.
îÁÐÒÉÍÅÒ: \t{ËÏÍÁÎÄÁ1 \&\& ËÏÍÁÎÄÁ2 || ËÏÍÁÎÄÁ3}.\\
ëÏÍÁÎÄÙ ÍÏÖÎÏ ÏÂßÅÄÉÎÑÔØ: \t{(ËÏÍÁÎÄÁ1; ËÏÍÁÎÄÁ2; ËÏÍÁÎÄÁ3)} (ÓËÏÂËÁ ×ÅÒÎÅÔ ËÏÄ ×ÏÚ×ÒÁÔÁ
ÐÏÓÌÅÄÎÅÊ ËÏÍÁÎÄÙ).
\end{block}
\end{frame}
\begin{frame}[fragile]{óËÒÉÐÔÙ}
\begin{block}{ûÅÂÁÎÇ}
\t{\#!/bin/bash} ÉÌÉ \t{\#!/bin/sh}. ûÅÂÁÎÇ ÎÅÏÂÑÚÁÔÅÌÅÎ, ÅÓÌÉ ÓËÒÉÐÔ ÍÏÖÎÏ ×ÙÚÙ×ÁÔØ × ÔÏÍ
ÖÅ ÓÅÁÎÓÅ bash (ÏÄÎÁËÏ, × ÓÌÕÞÁÅ ÐÒÏÂÌÅÍÙ ÓÅÁÎÓ ÍÏÖÅÔ <<ÕÐÁÓÔØ>>).
\end{block}
\begin{block}{áÒÇÕÍÅÎÔÙ}
\t{\$N}~-- N-Ê ÁÒÇÕÍÅÎÔ (\t{\$0}~-- ÉÍÑ ÓËÒÉÐÔÁ). \t{\$\#}~-- ËÏÌÉÞÅÓÔ×Ï ÁÒÇÕÍÅÎÔÏ×.
\t{\$*} É \t{\$@}:
\begin{lstlisting}
function chkargs(){
echo "you give $# arguments:"
for arg in "$@"; do
echo -e "\t$arg"
done
}
chkargs "$@"
chkargs "$*"
chkargs $*
\end{lstlisting}
\end{block}
\end{frame}
\begin{frame}{÷Ù×ÏÄ\slash ×Ù×ÏÄ ÆÁÊÌÏ×, ÐÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ ×Ù×ÏÄÁ}
\only<1>{
\begin{block}{ëÏÍÁÎÄÁ \t{man}}
÷Ù×ÏÄÉÔ ÓÐÒÁ×ËÕ ÐÏ ÆÌÁÇÁÍ ÒÁÚÌÉÞÎÙÈ ÕÔÉÌÉÔ. \t{man man}.
\end{block}
\begin{block}{}
÷Ù×ÏÄ ÓÏÄÅÒÖÉÍÏÇÏ ÆÁÊÌÁ: \t{cat file}. ðÅÒÅÎÁÐÒÁ×ÌÅÎÉÅ × ÄÒÕÇÏÊ ÆÁÊÌ: \t{cat file1 >
file2}.
îÏÍÅÒÁ ÓÔÁÎÄÁÒÔÎÙÈ ÄÅÓËÒÉÐÔÏÒÏ×: 0~-- stdin, 1~-- stdout, 2~-- stderr:
\t{cat \$file 2>/dev/null}.
\t{tail -n N}~-- ÏÔÏÂÒÁÖÅÎÉÅ $N$ ÓÔÒÏË Ó ËÏÎÃÁ ÆÁÊÌÁ. þÁÝÅ Ó ÆÌÁÇÏÍ \t{-f} (ÄÌÑ
ÎÅÐÒÅÒÙ×ÎÏÇÏ
ÐÅÒÅÞÉÔÙ×ÁÎÉÑ ÆÁÊÌÁ × ÐÒÏÃÅÓÓÅ ÄÏÂÁ×ÌÅÎÉÑ ÎÏ×ÙÈ ÓÔÒÏË).
\t{head -n N}~-- ÏÔÏÂÒÁÖÅÎÉÅ $N$ ÓÔÒÏË Ó ÎÁÞÁÌÁ ÆÁÊÌÁ. þÁÓÔÏ~--- × ËÏÍÂÉÎÁÃÉÉ Ó \t{tail}.
ëÏÍÁÎÄÙ \t{less} É \t{more} ÐÏÚ×ÏÌÑÀÔ ÉÎÔÅÒÁËÔÉ×ÎÏ ÐÅÒÅÍÅÝÁÔØÓÑ ÐÏ ÔÅËÓÔÕ (ÄÏÓÔÕÐÅÎ ÔÁËÖÅ
ÐÏÉÓË, ÐÅÒÅÈÏÄ ÎÁ $N$-À ÓÔÒÏËÕ É Ô.Ä.).
\end{block}
}\only<2>{
\begin{block}{}
ëÁÎÁÌÙ ÐÏÍÏÇÁÀÔ ÐÅÒÅÎÁÐÒÁ×ÉÔØ ×Ù×ÏÄ ÏÄÎÏÊ ËÏÍÁÎÄÙ ÎÁ ××ÏÄ ÄÒÕÇÏÊ. îÁÐÒÉÍÅÒ: \t{ls -l |
less}.\\
\t{read}~-- ÓÞÉÔÁÔØ ÄÁÎÎÙÅ ÓÏ ÓÔÁÎÄÁÒÔÎÏÇÏ ××ÏÄÁ\\
\t{>>} ÐÏÚ×ÏÌÑÅÔ ÄÏÐÉÓÙ×ÁÔØ ÆÁÊÌ. îÁÐÒÉÍÅÒ:\\
\t{> filelist; while read x; do ls \$x >> filelist; done}\\
\t{exec 1 > myfile}~-- ÐÅÒÅÎÁÐÒÁ×ÉÔØ stdout × ÆÁÊÌ\\
\t{exec 2 > errfile}~-- ÐÅÒÅÎÁÐÒÁ×ÉÔØ stderr\\
\t{exec 2 > \&1}~-- ÐÅÒÅÎÁÐÒÁ×ÉÔØ stderr × stdout\\
\t{exec 0 < file}~-- ÞÉÔÁÔØ ÄÁÎÎÙÅ ÎÅ Ó stdin, Á ÉÚ ÆÁÊÌÁ\\
÷ÒÅÍÅÎÎÏÅ: \t{exec 4 < \&0; exec 0 < myfile; \ldots ; exec 0 < \&4}
\end{block}
}
\end{frame}
\begin{frame}[fragile]{õÓÌÏ×ÉÑ}
\begin{block}{}
\t{if [ ÕÓÌÏ×ÉÅ ]; then true; else false; fi}
\t{[ ÕÓÌÏ×ÉÅ ] \&\& true || false}.
\end{block}
\begin{lstlisting}
echo "Enter value"
read val
if [ $val -gt 100 ]; then
echo "value $val greater than 100";
else
echo "value $val less than 100";
fi
\end{lstlisting}
\begin{lstlisting}
echo "Enter filename"
read f
[ -d $f ] && echo "$f is a directory"
[ -f $f ] && echo "$f is a file"
[ ! -e $f ] && echo "Not exists"
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{\t{case}}
\begin{lstlisting}
while [ -n "$1" ];do
case "$1" in
-a) echo "Found the -a option" ;;
-b) echo "Found the -b option" ;;
-c) echo "Found the -c option" ;;
*) echo "$1 is not an option" ;;
esac
shift
done
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{ãÉËÌ \t{for}}
\begin{lstlisting}
echo -e "\t1."
for (( a = 1; a < 11; ++a )); do
echo "a=$a"
done
echo -e "\n\t2."
for a in $(seq 1 10); do
echo "a=$a"
done
echo -e "\n\t3."
for a in one "two args" three; do
echo "a=$a"
done
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{ãÉËÌ \t{while}}
\begin{lstlisting}
#!/bin/bash
while read X; do
echo "You entered: $X"
done
echo "End"
\end{lstlisting}
\begin{lstlisting}
./w
Hello
You entered: Hello
More words
You entered: More words
^D
End
\end{lstlisting}
\end{frame}
\begin{frame}[fragile]{íÁÓÓÉ×Ù}
\small
\begin{lstlisting}
array=(1 2 3 4 [5]=next [10]=last)
echo -n "array with size ${#array[*]} and indexes"
echo " ${!array[*]}: ${array[*]}"
echo "array[4]=${array[4]}, array[10] len=${#array[10]}"
\end{lstlisting}
òÅÚÕÌØÔÁÔ:
\begin{lstlisting}
array with size 6 and indexes 0 1 2 3 5 10: 1 2 3 4 next last
array[4]=, array[10] len=4
\end{lstlisting}
+ ÓËÒÉÐÔ \t{takeexp}.
\end{frame}
\begin{frame}{ðÏÉÓË É ÒÅÄÁËÔÉÒÏ×ÁÎÉÅ × ÆÁÊÌÁÈ}
\only<1>{
\begin{block}{\t{grep}}
\t{grep take takeexp}\\
\t{echo -e "first line\bsl nsecond line\bsl nafirst line" \vl grep first}\\
\t{echo -e "first line\bsl nsecond line\bsl nafirst line" \vl grep -w first}\\
ïÔÏÂÒÁÚÉÔØ N ÌÉÎÉÊ ÄÏ, ÐÏÓÌÅ ÉÌÉ ×ÏËÒÕÇ: \t{-BN}, \t{-AN}, \t{-CN}.\\
òÅËÕÒÓÉ×ÎÙÊ ÐÏÉÓË: \t{-R}.\\
éÎ×ÅÒÓÉÑ ÐÏÉÓËÁ: \t{-v}.\\
÷Ù×ÏÄ ÎÏÍÅÒÁ ÓÔÒÏËÉ: \t{-n}, ÉÍÅÎÉ ÆÁÊÌÁ: \t{-H}.\\
ðÏÉÓË ÎÅÓËÏÌØËÉÈ ÆÒÁÚ: \t{-e ÆÒÁÚÁ}.\\
òÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ: \t{grep [0-9] file};\\
IP-ÁÄÒÅÓ: \t{grep -E "[0-9]\{,3\}\bsl.[0-9]\{,3\}\bsl.[0-9]\{,3\}\bsl.[0-9]\{,3\}".\\
ëÏÎÓÔÒÕËÃÉÑ \t{\{min,max\}}.
}
\end{block}
}\only<2>{
\begin{block}{\t{sed}}
\t{sed 's/test/another test/g' ./myfile}\\
\t{sed -e 's/This/That/' -e 's/test/another test/' ./myfile}\\
ðÒÉÍÅÎÅÎÉÅ ÒÅÚÕÌØÔÁÔÏ× Ë ÓÁÍÏÍÕ ÆÁÊÌÕ: \t{-i}\\
õÄÁÌÅÎÉÅ ÓÔÒÏË: \t{sed '2,3d' myfile} É ÐÏ ÛÁÂÌÏÎÕ: \t{sed '/test/d' file}\\
õÄÁÌÅÎÉÅ ÄÉÁÐÁÚÏÎÁ ÐÏ ÛÁÂÌÏÎÕ: \t{sed '/first/,/last/d' file}\\
äÏÂÁ×ÉÔØ ÓÔÒÏËÕ ÄÏ ÚÁÄÁÎÎÏÊ: \t{sed '5i newline' file}\\
äÏÂÁ×ÉÔØ ÐÏÓÌÅ ÚÁÄÁÎÎÏÊ: \t{sed '5a newline' file}\\
úÁÍÅÎÉÔØ ÓÔÒÏËÕ: \t{sed '2c newline' file}\\
úÁÍÅÎÁ ÏÔÄÅÌØÎÙÈ ÓÉÍ×ÏÌÏ×: \t{sed 'y/oldset/newset'}\\
÷ÓÔÁ×ËÁ ÆÁÊÌÁ: \t{sed '4r file2' file1}\\
\end{block}
}\only<3>{
\begin{block}{\t{awk}}
÷Ù×ÏÄ ÐÏÌÅÊ Ó ÎÏÍÅÒÁÍÉ: \t{awk -F: '\{print \$1 \$4\}' file} (\t{-F}~-- ÒÁÚÄÅÌÉÔÅÌØ)\\
\t{echo "My name is Tom" | awk '\{\$4="Adam"; print \$0\}'}\\
÷ÙÐÏÌÎÅÎÉÅ ËÏÍÁÎÄ × ÎÁÞÁÌÅ: \t{awk 'BEGIN \{print "Hello World!"\}'}\\
ëÏÍÁÎÄÙ × ËÏÎÃÅ: \t{awk 'END \{print "End of File"\}'}\\
éÓÐÏÌØÚÏ×ÁÎÉÅ ÓËÒÉÐÔÏ× × ÆÁÊÌÅ: \t{awk -f awkscript1 /etc/passwd}\\
õÓÌÏ×ÎÙÊ ÏÐÅÒÁÔÏÒ: \t{awk '\{if (\$1 > 20) print \$1\}' file}\\
\t{echo -e "10\bsl n20\bsl n30\bsl n40\bsl n50" | awk -f awkscript2}\\
íÁÔÅÍÁÔÉËÁ: \t{awk 'BEGIN\{x=exp(5); print x\}'}
\end{block}
}
\end{frame}
\begin{frame}[fragile]{òÅÇÕÌÑÒÎÙÅ ×ÙÒÁÖÅÎÉÑ}
óÐÅÃÓÉÍ×ÏÌÙ: \verb'.*[]^${}\+?|()' (ÎÕÖÄÁÀÔÓÑ × ÜËÒÁÎÉÒÏ×ÁÎÉÉ).\\
\verb'^'~-- ÎÁÞÁÌÏ ÓÔÒÏËÉ, \verb'$'~-- ËÏÎÃÅ ÓÔÒÏËÉ.\\
óÐÅÃËÌÁÓÓÙ: \verb'[[:alpha:]]', \verb'[[:alnum:]]', \verb'[[:blank:]]', \verb'[[:digit:]]',
\verb'[[:upper:]]', \verb'[[:lower:]]', \verb'[[:print:]]', \verb'[[:punct:]]',
\verb'[[:space:]]'.\\
óÉÍ×ÏÌ <<ÉÌÉ>>: \t{\vl}. \verb'echo -e "one\ntwo\nthree" | grep -P "one|three"'.\\
ëÏÌÉÞÅÓÔ×Ï ×ËÌÀÞÅÎÉÊ: \verb'{{min,max}}'.\\
çÒÕÐÐÉÒÏ×ËÁ × ÓËÏÂËÁÈ: \verb'echo -e "testtest\na test\ntesttesttest" | grep -P "(test){3}"'.\\
\t{grep -G} (ÂÁÚÏ×ÙÅ ÒÅÇÕÌÑÒÎÙÅ) É \t{grep -P} (ÒÁÓÛÉÒÅÎÎÙÅ ÒÅÇÕÌÑÒÎÙÅ).
ðÒÏ×ÅÒËÁ ÁÄÒÅÓÁ ÜÌÅËÔÒÏÎÎÏÊ ÐÏÞÔÙ:
\verb'^([a-zA-Z0-9_\-\.\+]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5})$'
\end{frame}
\begin{frame}[fragile]{}
\begin{block}{îÅÓÔÁÎÄÁÒÔÎÙÅ ÂÁÛ-ÓËÒÉÐÔÙ}
\lstset{language=C}
\begin{lstlisting}
//usr/bin/gcc $0 && exec ./a.out "$@"
#include <stdio.h>
int main(int argc, char **argv){
for(int x = 1; x < argc; ++x)
printf("arg %d is %s\n", x, argv[x]);
printf("Done\n");
return 0;
}
\end{lstlisting}
\lstset{language=bash}
úÁÐÕÓË:
\begin{lstlisting}
./a.c some "amount of" data
arg 1 is some
arg 2 is amount of
arg 3 is data
Done
\end{lstlisting}
\end{block}
\end{frame}
\begin{frame}{ðÒÉÍÅÒÙ}
\begin{block}{}
\begin{enumerate}
\item ðÏÌÕÞÉÔØ ÐÓÅ×ÄÏÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ ÄÌÉÎÏÊ $N$ ÓÉÍ×ÏÌÏ× ÉÚ \t{/dev/urandom}.
\item úÁÐÏÌÎÉÔØ ÔÁÂÌÉÃÕ × 100~ÓÔÒÏË Ó ÛÁÂÌÏÎÏÍ: ÓÔÏÌÂÅÃ~1~--- ÎÏÍÅÒ ÓÔÒÏËÉ, ÓÔÏÌÂÅÃ~2~---
ÐÓÅ×ÄÏÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ ÏÔ~0 ÄÏ~1000, ÓÔÏÌÂÅÃ~3~--- ÐÓÅ×ÄÏÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ ÏÔ~-20 ÄÏ~20, ÓÔÏÌÂÅÃ~4~---
ÐÓÅ×ÄÏÓÌÕÞÁÊÎÏÅ ÞÉÓÌÏ Ó ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÔÏÞËÏÊ ÏÔ~0 ÄÏ~100 Ó~3 ÚÎÁËÁÍÉ ÐÏÓÌÅ ÚÁÐÑÔÏÊ.
\item ïÔÓÏÒÔÉÒÏ×ÁÔØ ÔÁÂÌÉÃÕ ÉÚ ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÉÍÅÒÁ ÐÏ 2, 3 É 4 ÓÔÏÌÂÃÕ.
\item ÷ ÃÉËÌÅ ÓÇÅÎÅÒÉÒÏ×ÁÔØ ÉÚ \t{/dev/urandom} ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÌÁÔÉÎÓËÉÈ ÂÕË× ÄÌÉÎÏÊ ÄÏ 100.
åÓÌÉ × ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ÅÓÔØ ÉÓËÏÍÁÑ (××ÅÄÅÎÎÁÑ Ó ËÌÁ×ÉÁÔÕÒÙ), ÏÔÏÂÒÁÚÉÔØ ÅÅ ÎÁ ÜËÒÁÎÅ.
ðÒÏÄÏÌÖÁÔØ ÄÏ ÎÁÈÏÖÄÅÎÉÑ 5 ×ÈÏÖÄÅÎÉÊ ÉÌÉ ÖÅ ÄÏ ÄÏÓÔÉÖÅÎÉÑ 10000 ÐÒÏ×ÅÒÏË. ÷Ù×ÅÓÔÉ ÎÁ ÜËÒÁÎ
ËÏÌÉÞÅÓÔ×Ï <<ÐÏÐÁÄÁÎÉÊ>> É <<ÐÒÏÍÁÈÏ×>>, Á ÔÁËÖÅ ÐÒÏÃÅÎÔÎÕÀ ÄÏÌÀ <<ÐÏÐÁÄÁÎÉÊ>> ÐÏ ÏÔÎÏÛÅÎÉÀ ËÏ ×ÓÅÍ
ÉÓÐÙÔÁÎÉÑÍ.
\end{enumerate}
\end{block}
\end{frame}
\begin{frame}{úÁÄÁÎÉÑ}
\begin{block}{}
\only<1>{
\begin{enumerate}
\item ðÒÏÞÉÔÁÊÔÅ \t{man column}. ðÒÉ ÐÏÍÏÝÉ ÜÔÏÊ ÕÔÉÌÉÔÙ ÏÔÆÏÒÍÁÔÉÒÕÊÔÅ × ÞÉÔÁÂÅÌØÎÏÍ ×ÉÄÅ ×Ù×ÏÄ
ÓËÒÉÐÔÁ ÓËÒÉÐÔÁ ÉÚ ÔÒÅÔØÅÇÏ ÐÒÉÍÅÒÁ. ðÏÐÒÏÂÕÊÔÅ ÎÅÓËÏÌØËÏ ÒÁÚÎÙÈ ×ÉÄÏ× ÏÆÏÒÍÌÅÎÉÑ.
\item íÏÄÉÆÉÃÉÒÕÊÔÅ ÓËÒÉÐÔ \t{takeexp} ÔÁË, ÞÔÏÂÙ ÏÎ ÂÒÁÌ ÄÁÎÎÙÅ ÉÚ ÆÁÊÌÁ, × ËÏÔÏÒÏÍ ÏÎÉ ÈÒÁÎÑÔÓÑ ×
ÔÁÂÌÉÞÎÏÍ ×ÉÄÅ (ÐÏÓÔÒÏÞÎÏ): ÎÏÍÅÒ ÐÏÚÉÃÉÉ, ×ÒÅÍÑ ÜËÓÐÏÚÉÃÉÉ × ÍÉÌÌÉÓÅËÕÎÄÁÈ, ÆÏËÕÓÎÏÅ ÒÁÓÓÔÏÑÎÉÅ ×
ÕÓÌÏ×ÎÙÈ ÏÔÓÞÅÔÁÈ.
\item îÁÐÉÛÉÔÅ ÓËÒÉÐÔ, ÐÒÏ×ÅÒÑÀÝÉÊ, Ñ×ÌÑÀÔÓÑ ÌÉ ÄÁÎÎÙÅ × ÔÁÂÌÉÃÅ ÞÌÅÎÁÍÉ <<ÍÁÇÉÞÅÓËÏÇÏ Ë×ÁÄÒÁÔÁ>>
$4\times 4$ (ÓÕÍÍÁ ÐÏ ÓÔÒÏËÁÍ, ÓÔÏÌÂÃÁÍ É ÄÉÁÇÏÎÁÌÑÍ ÄÏÌÖÎÁ ÂÙÔØ ÏÄÉÎÁËÏ×ÏÊ).
\item óÇÅÎÅÒÉÒÕÊÔÅ 999 ÓÌÕÞÁÊÎÙÈ ÃÅÌÙÈ ÞÉÓÅÌ ÏÔ~0 ÄÏ~1000. ðÒÉ ÐÏÍÏÝÉ \t{sort}, \t{head} É \t{tail}
ÎÁÊÄÉÔÅ ÍÅÄÉÁÎÕ ÐÏÌÕÞÅÎÎÏÇÏ ÒÑÄÁ.
\savei
\end{enumerate}
}\only<2>{
\begin{enumerate}
\conti
\item óÇÅÎÅÒÉÒÕÊÔÅ 10000 ÓÌÕÞÁÊÎÙÈ ÃÅÌÙÈ ÞÉÓÅÌ ÏÔ~0 ÄÏ~99. óÏÚÄÁÊÔÅ ÆÁÊÌ, × ËÏÔÏÒÙÊ ÚÁÎÅÓÉÔÅ
ÇÉÓÔÏÇÒÁÍÍÕ ÒÁÓÐÒÅÄÅÌÅÎÉÑ ÞÉÓÅÌ (ÐÅÒ×ÁÑ ËÏÌÏÎËÁ~--- ÞÉÓÌÁ, ×ÔÏÒÁÑ~--- ËÏÌÉÞÅÓÔ×Ï ÉÈ × ÒÑÄÕ ÄÁÎÎÙÈ).
ïÔÆÏÒÍÁÔÉÒÕÊÔÅ ÔÁÂÌÉÃÕ ÐÒÉ ÐÏÍÏÝÉ ÕÔÉÌÉÔÙ \t{column}.
\item îÁÒÉÓÕÊÔÅ × \t{bash} ÇÏÒÉÚÏÎÔÁÌØÎÕÀ ÇÉÓÔÏÇÒÁÍÍÕ ÐÏ ÄÁÎÎÙÍ ÉÚ ÐÒÅÄÙÄÕÝÅÇÏ ÚÁÄÁÎÉÑ (ÚÎÁÞÅÎÉÅ
ÆÉËÓÉÒÏ×ÁÎÎÏÊ ÄÌÉÎÙ, ÚÁ ËÏÔÏÒÙÍ ÓÌÅÄÕÅÔ ÐÏÌÅ ÉÚ ÓÉÍ×ÏÌÏ× \t{*} × ÎÕÖÎÏÍ ËÏÌÉÞÅÓÔ×Å). éÓÐÏÌØÚÕÊÔÅ
ÆÏÒÍÁÔÉÒÏ×ÁÎÎÙÊ ×Ù×ÏÄ (ÎÁÐÒÉÍÅÒ, \t{printf "\%-4d\%.5s\bsl n"\, 123
"*******************************"}.
ðÏÐÒÏÂÕÊÔÅ ÄÒÕÇÏÊ ÓÐÏÓÏ ÎÁÒÉÓÏ×ÁÔØ ÔÁËÕÀ ÇÉÓÔÏÇÒÁÍÍÕ.
õÞÔÉÔÅ, ÞÔÏ ÛÉÒÉÎÁ ×Ù×ÏÄÁ ÄÏÌÖÎÁ ÄÏÌÖÎÁ ÂÙÔØ ÏÇÒÁÎÉÞÅÎÁ ÚÁÄÁÎÎÙÍ ÞÉÓÌÏÍ (80 ÉÌÉ 100 ÓÉÍ×ÏÌÏ×).
\item éÓÐÏÌØÚÕÑ ÃÉËÌÙ É ÍÁÓÓÉ×Ù, ÎÁÒÉÓÕÊÔÅ ×ÅÒÔÉËÁÌØÎÕÀ ÇÉÓÔÏÇÒÁÍÍÕ. õÞÔÉÔÅ, ÞÔÏ ÒÉÓÏ×ÁÔØ ÐÒÉÄÅÔÓÑ
Ó×ÅÒÈÕ-×ÎÉÚ.
\item ðÏÞÉÔÁÊÔÅ Ï escape-ÓÉÍ×ÏÌÁÈ. ðÏÐÒÏÂÕÊÔÅ ×Ù×ÅÓÔÉ ÇÏÒÉÚÏÎÔÁÌØÎÕÀ ÇÉÓÔÏÇÒÁÍÍÕ × ÞÅÔÙÒÅÈ
ÇÒÁÄÁÃÉÑÈ Ã×ÅÔÁ ($0\div25\%$ ÍÁËÓÉÍÕÍÁ~--- ÏÄÎÉÍ Ã×ÅÔÏÍ, $25\div50\%$~--- ÄÒÕÇÉÍ É Ô.Ä.).
\end{enumerate}
}
\end{block}
\end{frame}
\end{document}

Binary file not shown.

View File

@ -0,0 +1,589 @@
\documentclass[10pt,pdf,hyperref={unicode}]{beamer}
\hypersetup{pdfpagemode=FullScreen}
\usepackage{lect}
\title[Компьютерная обработка. Лекция 2.]{Компьютерная обработка результатов измерений}
\subtitle{Лекция 2. Статистика и вероятность. Случайные величины и распределения}
\date{}
\begin{document}
% Титул
\begin{frame}{}
\maketitle
\end{frame}
% Содержание
\begin{frame}{}
\tableofcontents[hideallsubsections]
\end{frame}
\section{Случайные величины, вероятность}
\begin{frame}{Случайные величины, вероятность}
\begin{defin}
Случайной величиной называется величина~$X$, если все ее возможные значения образуют
конечную
или бесконечную последовательность чисел~$x_1,\ldots$, $x_N$, и если принятие ею каждого из
этих
значений есть случайное событие.
\end{defin}
\begin{defin}\begin{columns}\column{0.75\textwidth}
Вероятностью наступления события называют предел относительной частоты
наступления данного события~$n_k/N$:\column{0.25\textwidth}
$$P(x_k)=\lim_{N\to\infty}\frac{n_k}{N}.$$
\end{columns}
\end{defin}
\begin{block}{}
Если событие невозможно ($\emptyset$), его вероятность равна нулю. Однако, обратное в
общем случае неверно (например, вероятность попасть в конкретную точку мишени равна нулю,
но это событие не является невозможным).
Вероятность достоверного события равна 1.
\end{block}
\end{frame}
\begin{frame}{Условная вероятность}
\begin{defin} Условной вероятностью двух событий $A$ и $B$ (вероятность появления $A$ при
условии $B$) называют отношение числа опытов, в которых $A$ и $B$ появились вместе, к полному
числу опытов, в которых появилось $B$:
$$P(A|B)=\frac{n_{AB}}{n_B}=\frac{n_{AB}/N}{n_B/N}=\frac{P(AB)}{P(B)}.$$
\end{defin}
\begin{block}{}
У независимых событий $P(A|B)=P(A)$, $P(B|A)=P(B)$.
А т.к. $P(A|B)=\frac{P(AB)}{P(B)}$, получим для независимых событий:
$$P(AB)=P(A)\cdot P(B).$$
\end{block}
\begin{block}{Умножение вероятностей}
$$P(AB)=P(B)\cdot P(A|B)=P(A)\cdot P(B|A).$$
\end{block}
\end{frame}
\begin{frame}{Сложение вероятностей}
\begin{block}{Несовместные события}
$A_iA_j=\emptyset\quad \forall i\ne j$, $P(A_i+A_j)=P(A_i)+P(A_j)$.
\end{block}
\begin{block}{Совместные события}
$P(A_i+A_j)=P(A_i)+P(A_j)-P(A_iA_j)$.
\end{block}
\begin{block}{Независимые совместные события}
$$P(\overline{A}\,\overline{B}) = P(\overline{A})\cdot P(\overline{B}) =
(1-P(A))\cdot(1-P(B))=1-P(A)-P(B)+P(A)\cdot P(B)$$
$$P(A+B)=P(A)+P(B)-P(AB)\quad\Arr$$
$$1-P(A+B)=P(\overline{A}\,\overline{B})\quad\text{или}\quad
P(A+B)=1-P(\overline{A}\,\overline{B}).$$
\end{block}
\end{frame}
\begin{frame}{Полная вероятность}
\only<1>{
\begin{block}{}
Полная вероятность (вероятность события, зависящего от условий опыта) является
следствием правил сложения и умножения вероятностей.
\end{block}
\begin{block}{}
$N$ условий опыта должны быть взаимоисключающими, т.е. несовместными: $P(H_iH_j)=0$ для
$j\ne j$. И они должны формировать полную группу, т.е. $\sum P(H_i)=1$. Тогда
$P(A)=\sum P(AH_i)$. А т.к. $P(AH_i)=P(H_i)\cdot P(A|H_i)$, получим:
$$P(A)=\sum_{i=1}^{N}P(H_i)\cdot P(A|H_i).$$
Здесь $P(H_i)$~--- априорная вероятность (известна до проведения опыта). Вероятность
$P(A|H_i)$ мы узнаем из опыта, ее называют апостериорной.
\end{block}
}\only<2>{
\begin{block}{Пример}
Среди наблюдаемых спиральных галактик 23\% имеют тип Sa, 31\%~-- тип Sb и 45\%~-- тип Sc.
Вероятность вспышки сверхновой в течение года в галактике Sa составляет $0.20\%$, в Sb~--
$0.35\%$, в Sc~-- $0.55\%$. Найти вероятность вспышки сверхновой в спиральной галактике,
тип которой не удается определить.
$P(S_a)=0.23$, $P(S_b)=0.31$, $P(S_c)=0.46$. Вероятность вспышки в галактике типа $X$ есть
$P(F|X)$. Тогда полная вероятность вспышки равна $P(F)=\sum P(X)P(F|X)$. То есть:
$$P(F)=0.23\cdot0.002+0.31\cdot0.0035+0.46\cdot0.0055=0.0041=41\%.$$
\end{block}
}
\end{frame}
\begin{frame}{Формула (теорема) Байеса}
\only<1>{
\begin{block}{}
Как и для полной вероятности, гипотезы $H_i$ считаем несовместными, образующими полную
группу.
Событие $A$ считаем уже произошедшим. В этом случае можно пересчитать априорные
вероятности~$P(H_i)$ с учетом этого. Найдем $P(H_i|A)$. Известно, что $P(H_iA)=P(H_i)\cdot
P(A|H_i)$ или $P(H_iA)=P(A)\cdot P(H_i|A)$.
$$P(A)\cdot P(H_i|A)=P(H_i)\cdot P(A|H_i),\quad\Arr$$
Формула Байеса
$$P(H_i|A)=\frac{P(H_i)P(A|H_i)}{P(A)},$$
где $P(A)=\sum P(H_i)P(A|H_i)$.
\end{block}
}\only<2>{
\begin{block}{Пример}
В течение часа наблюдений была обнаружена вспышка сверхновой в спиральной галактике
неизвестного типа. Определить вероятность того, что галактика принадлежит каждому из
подтипов Sa, Sb или Sc.
По формуле Байеса, $P(X|F)=\dfrac{P(X)P(F|X)}{P(F)}$. В предыдущем примере мы уже нашли:
$P(F)=0.0041$, следовательно
$$P(S_a|F)=\frac{0.23\cdot 0.0020}{0.0041}=0.11,$$
$$P(S_b|F)=\frac{0.31\cdot 0.0035}{0.0041}=0.27,$$
$$P(S_c|F)=\frac{0.46\cdot 0.0055}{0.0041}=0.62.$$
\end{block}
}
\end{frame}
\begin{frame}{Итог: свойства вероятности}
\begin{block}{}\def\arraystretch{1.5}
\centering\begin{tabular}{>{\centering}p{0.45\textwidth}l}
$P(\emptyset) = 0$ &\\
$\forall A\subset B \quad P(A) \le P(B)$ & $B$ включает в себя $A$\\
$0\le P(A) \le 1$ & \\
$\forall A\subset B\quad P(B \setminus A) = P(B) - P(A)$ & $B$ наступит без $A$\\
$P(\overline{A}) =1 - P(A)$ &\\
$P(A+B) = P(A) + P(B) - P(AB)$ & вероятность одного из событий\\
$P(A\vert B) = \frc{P(AB)}{P(B)}$ & условная вероятность ($A$ при $B$)
$\Longrightarrow$\\
$P(AB) = P(B)\cdot P(A\vert B)$ & или $P(AB) = P(A)\cdot P(B\vert A)$
$\Longrightarrow$\\
$P(A\vert B)=\dfrac{P(A)\cdot P(B\vert A)}{P(B)}$ & (теорема Байеса)\\[1em]
$P(AB) = P(A)\cdot P(B)$ & для независимых событий\\
\end{tabular}
\end{block}
\end{frame}
\section{Комбинаторика}
\begin{frame}{Комбинаторика}
\only<1>{
\begin{block}{Размещение}
Количество способов, которыми можно разместить $n$ элементов по $k$ ячейкам.
Без повторений: $A_n^k=n(n-1)\cdots(n-k+1)=\dfrac{n!}{(n-k)!}=\binom{n}{k}k!$.
С повторениями (каждый предмет можно взять до $k$ раз): $\overline{A}_n^k=n^k$.
Размещение без повторений встречается в задачах на составление $k$-значных чисел из
$n$~цифр, причем, каждая цифра может использоваться лишь однократно. Размещение с
повторениями показывает все возможные комбинации $n$~цифр в $k$~разрядах (например,
количество чисел до $k$-го разряда по основанию $n$).
\end{block}
}\only<2>{
\begin{block}{Перестановка}
Без повторений: $P_n=A_n^n=n!$.
С повторениями ($n$ элементов $m$ типов). $n_i$~-- количество элементов каждого типа (т.е.
$\sum n_i=n$). $P(n_1,\ldots,n_m)=\dfrac{n!}{\prod n_i!}$.
Задача на перестановки без повторений является частным случаем задачи размещения без
повторений, когда $k=n$.
Пример задачи на перестановки с повторениями~--- формирование разных слов (даже лишенных
смысла) из букв заданного слова. Например, из слова <<собака>> можно составить
$6!/(1!1!1!2!1!)=720/2=36$.
\end{block}
}\only<3>{
\begin{block}{Сочетание}
Неупорядоченный набор из $k$ элементов $n$-элементного множества. Т.о. сочетание~--- это
такое размещение $n$ по $k$, где не учитывается порядок следования членов (напр.,
размещения 123, 213, 321 и т.д. считаются одним сочетанием).
Без повторений: $C_n^k=\binom{n}{k}=\dfrac{n!}{k!(n-k)!}$.
С повторениями:
$\overline{C}_n^m=\binom{n+k-1}{n-1}=\binom{n+k-1}{k}=\dfrac{(n+k-1)!}{k!(n-1)!}$.
Схема испытаний Бернулли: $P_n^k=C_n^kp^k(1-p)^{n-k}$ (вероятность, что событие наступит
$k$~раз в $n$~испытаниях). $1=(p+[1-p])^n=\sum C_n^k p^{n-k}(1-p)^k=\sum P_n^k$.
\end{block}
}
\end{frame}
\begin{frame}{}
\begin{block}{}
Для непрерывных случайных величин, $X$, вводят понятия Функции распределения, $F(x)$ и
плотности вероятности, $\rho(x)$: $F(x)=P(X<x)$.
$$\rho(x)=\lim_{\Delta x\to 0}\frac{P(x<X<x+\Delta x)}{\Delta
x}=\frac{dF}{dx}.$$
$$P(x_1<X<x_2)=\Int_{x_1}^{x_2}\rho(x)\,dx=F(x_2)-F(x_1).$$
\end{block}
\begin{defin}
Генеральная совокупность~--- набор всех возможных значений случайной величины.
Выборка~--- конечное число значений (подвыборка генеральной совокупности).
Энтропия выборки: $$E=-\sum_{k=1}^{n}p(x_k)\lg p(x_k).$$
\end{defin}
\end{frame}
\section{Характеристики случайных величин}
\begin{frame}{Характеристики случайных величин}
\begin{block}{Среднее арифметическое и математическое ожидание}
$$\aver{X}=\frc1{N}\sum_{n=1}^N x_n,$$
$$M(X)\equiv\mean{X}=\lim_{N\to\infty}\frac1{N}\sum_{n=1}^N x_n\quad\text{и}\quad
M(X)=\Infint x\phi(x)\,dx.$$
\end{block}
\begin{block}{Свойства математического ожидания}
\begin{itemize}\setlength{\itemsep}{2pt}
\item $\mean\const=\const$;
\item $\mean{\sum\C_n\cdot X_n}=\sum\C_n\cdot \mean{X_n}$,
где $\C_n$~-- постоянная величина;
\item $\mean{\prod X_n}=\prod \mean{X_n}$ (для независимых случайных величин);
\item $\mean{f(x)}=\Infint f(x)\phi(x)\,dx$ (для непрерывных случайных величин).
\end{itemize}
\end{block}
\end{frame}
\begin{frame}{}
\begin{block}{Моменты}
Если $f(x)=(x-x_0)^n$, то $\mean{f(x)}$~--- момент порядка~$n$. Если $x_0=0$~---
начальный
момент, если $x_0=\mean{X}$--- центральный момент.
Центральный момент второго порядка называют дисперсией:
$D(X)=\mean{(x-\mean{x})^2}\equiv
\mean{x^2}-\mean{x}^2$. СКО: $\sigma=\sqrt{D}$.
\smallskip
Свойства дисперсии:
\begin{itemize}
\item $D(\C)=0$;
\item $D(\C X)=\C^2 D(X)$, где $\C$~-- постоянная величина;
\item $D(\sum X_n)=\sum D(X_n)$ (для независимых величин).
\end{itemize}
\end{block}
\begin{block}{$\mean{X}\Leftrightarrow\aver{X}$? Закон больших чисел}
Неравенство Чебыш\"ева: $P(|X-\mean{X}|\ge\epsilon)\le
\frc{D(X)}{\epsilon^2}\quad\Rightarrow$
$P(|X-\mean{X}|<\epsilon)=1-P(|X-\mean{X}|\ge\epsilon)\ge1-\frc{D(X)}{\epsilon^2}$.
$$\lim_{n\to\infty} P\Bigl(\Bigl|\frac{\sum
X_n}{n}-\frac{\sum\mean{X_n}}{n}\Bigr|<\epsilon\Bigr)=1,\;\text{ т.к. }\;
D(\frc{\sum X_n}{n})=\frc{D(X)}{n}
$$
Теорема Бернулли: $\lim\limits_{n\to\infty} P(m/n-p|<\epsilon)=1$ ($m$ событий в $n$
испытаний).
\end{block}
\end{frame}
\begin{blueframe}{}
\only<1>{
\begin{defin}
Квантиль~-- значение, которое случайная величина не превышает с фиксированной вероятностью.
$\alpha$-квантиль, $x_\alpha$: $P(X\le x_\alpha)=\alpha$, $P(X\ge x_\alpha)=1-\alpha$.
\end{defin}
\begin{block}{}
$P(X\le x_\frac{1+\alpha}{2})=\frac{1+\alpha}{2}$, $P(X\le
x_\frac{1-\alpha}{2})=\frac{1-\alpha}{2}$, следовательно, свойство:
$$P(x_\frac{1-\alpha}{2}\le X\le
x_\frac{1+\alpha}{2})=\frac{1+\alpha}{2}-\frac{1-\alpha}{2}=\alpha.$$
Процентиль (перцентиль)~-- квартиль, выраженная в процентах. Например, <<70-й перцентиль>>
(величина с вероятностью 70\% меньше этого значения). Квартиль~-- деление на четыре (первый,
второй и третий квартили). Медиана~-- второй квартиль. $IQR=x_{0.75}-x_{0.25}$~--
интерквартильный интервал.
\end{block}
}\only<2>{
\begin{columns}
\column{0.6\textwidth}
\begin{block}{Квантили нормального распределения}
$P$~-- вероятность, $x_P$~-- квантиль (в~RMS от мат. ожидания), $P_c = P(-x_P\le X-\mean{X}\le
x_P)$.
\begin{tabular}{|c||c|c|c|c|c|}
\hline
$P$ & 99.99 & 99.90 & 99.00 & 97.72 & 97.50 \\
\hline
$x_P$ & 3.719 & 3.090 & 2.326 & 1.999 & 1.960\\
\hline
$P_c$ & 99.98 & 99.80 & 98.00 & 95.44 & 95.00 \\
\hline
\end{tabular}
\begin{tabular}{|c||c|c|c|c|c|}
\hline
$P$ & 95.00 & 90.00 & 84.13 & 50.00 \\
\hline
$x_P$ & 1.645 & 1.282 & 1.000 & 0.000 \\
\hline
$P_c$ & 90.00000 & 80.00 & 68.27 & 0.00\\
\hline
\end{tabular}
\end{block}
\column{0.38\textwidth}\img{Boxplot_vs_PDF}
\end{columns}
}
\end{blueframe}
\begin{frame}[fragile]{}
Octave: пакет \t{statistics}, функция \t{norminv}. Например:
\begin{verbatim}
norminv([0.9 0.95 0.99 0.999 0.9999])
ans =
1.2816 1.6449 2.3263 3.0902 3.7190
\end{verbatim}
Можно также задать~$\mean{X}$ и $\sigma_X$ (скажем, квантиль 90\% при $\mean{X}=25$ и $\sigma_X=3$):
\begin{verbatim}
norminv(0.9, 25, 3)
ans = 28.845
\end{verbatim}
Для расчета вероятности $P(X\le x_0)$ функция \t{normcdf} (интегральное распределение). Например,
посчитаем вероятности нахождения в интервале $\mean{X}\pm k\sigma$:
\begin{verbatim}
k=[1:0.5:5];
normcdf(k)-normcdf(-k)
ans =
0.68269 0.86639 0.95450 0.98758 0.99730 0.99953
0.99994 0.99999 1.00000
\end{verbatim}
\end{frame}
\begin{frame}{Характеристические значения распределений}
\begin{block}{Медиана и мода}
{ Мода}~--- наиболее часто встречающееся значение (но вполне могут быть
мультимодальные
распределения). { Медиана} делит площадь распределения пополам.
\end{block}
\img[0.6]{mode_median}
\begin{block}{Поиск медианы}
Самый медленный~--- сортировкой ряда данных, $O(n\ln n)$. Quick Select, $O(n)$. Гистограмма (в т.ч.
дерево гистограмм), $O(n)$. Для фиксированных $n$~--- opt\_med (,,Numerical Recipes in C``), $O(n)$.
\end{block}
\end{frame}
\section{Законы распределения}
\begin{frame}{Законы распределения}
\begin{defin}
Закон распределения дискретной случайной величины~--- соответствие между
возможными значениями и их вероятностями.
\end{defin}
\begin{block}{Функция распределения}
$$F(x)\equiv P(X\le x)=\Int_{-\infty}^x\phi(x)\,dx, \qquad
\Infint\phi(x)\,dx=1.$$
$$P(a\le X\le b)=F(b)-F(a).$$
\end{block}
\end{frame}
\begin{frame}{Равномерное распределение}
\begin{columns}\column{0.45\textwidth}
\begin{block}{}
$$
\phi(x)=\begin{cases}\frac1{b-a}, & x\in [a,b] \\ 0, & x\not\in [a,b]
\end{cases}.
$$
$$F(x)= \begin{cases} 0, & x < a \\ \frac{x-a}{b-a}, & a \le x < b \\ 1, & x \ge
b \end{cases}.
$$
\end{block}\column{0.45\textwidth}
\begin{block}{}
$\mean{X}=\med(X)=(a+b)/2$, $\moda(X)=\forall x\in[a,b]$,
$\displaystyle\sigma^2_X = \frac{(b-a)^2}{12}$.
\end{block}
\end{columns}
\smimg[0.45]{Uniform_distribution_PDF}\hspace{3pt}
\smimg[0.45]{Uniform_distribution_CDF}
\end{frame}
\begin{lightframe}{Биномиальное распределение}
\vspace*{-0.8em}\begin{block}{}
Формула Бернулли:
$\displaystyle P_n(k)=C_n^k p^k q^{n-k},\quad C_n^k=\frac{n!}{k!(n-k)!},\quad
q=1-p.$
$$(p+q)^n=C_n^n p^n+\cdots+C_n^k p^k q^{n-k}+\cdots+C_n^0 q^k.$$
Описывает вероятность наступления события~$k$
раз в~$n$ независимых испытаниях
\end{block}\vspace*{-1em}
\begin{columns}
\column{0.45\textwidth}
\img{Binomial_Distribution}
\column{0.55\textwidth}
\begin{block}{}
$$
F(k;n,p)=P(X\leq k)=\sum_{i=0}^\floor{k} C_n^i p^i(1-p)^{n-i}.$$
$\mean{X}=np$, $\moda(X)=\floor{(n+1)p}$, $\floor{np}\le\med(X)\le\ceil{np}$,
$\sigma^2_X = npq$.
\end{block}
\end{columns}
\end{lightframe}
\begin{frame}{Распределение Пуассона}
\vspace*{-2em}\begin{block}{}
Распределение вероятности редких событий. При $n\to\infty$ распределение Бернулли
преобразуется в распределение Пуассона
($\lambda=np$):
$$P_n(k)=\frac{\lambda^k}{k!}\exp(-\lambda).$$
\end{block}
\begin{columns}\column{0.48\textwidth}
\begin{block}{}
$F(k, \lambda) = \displaystyle\frac{\Gamma(k+1,\lambda)}{k!}$,
$\mean{X} = \lambda$, $\moda(X) = \floor{\lambda}$,
$\med{X}\approx\floor{\lambda+1/3-0.02/\lambda}$,
$\sigma^2_X = \lambda$.
С ростом $\lambda$ распределение Пуассона стремится к распределению Гаусса.
\end{block}
\column{0.48\textwidth}
\img{poissonpdf}
\end{columns}
\end{frame}
\begin{frame}{Распределение Гаусса}
\vspace*{-2em}\begin{block}{}
$
\phi (x) = \dfrac 1 {\sigma \sqrt {2 \pi}} \exp \left( -\frac {(x -\mean{x})^2}{2
\sigma^2} \right)
$,
$F(x) = \displaystyle\frac 1{\sigma \sqrt {2 \pi}} \Int_{-\infty}^x \exp \left( -\frac{(t
-\mean{x})^2}{2 \sigma^2} \right)\, dt$,
$\moda(X) = \med{X} = \mean{X}$.
$P(\alpha < X < \beta) = \Phi\left(\frac{\beta - \mean{x}}{\sigma}\right) -
\Phi\left(\frac{\alpha - \mean{x}}{\sigma}\right) $,\\
функция Лапласа $\Phi(x)=\frac{1}{\sqrt{2\pi}}\int_0^x \exp\left(-\frc{t^2}{2}\right)$.
\end{block}
\img[0.6]{normpdf}
\end{frame}
\begin{frame}{Показательное (экспоненциальное) распределение}
\vspace*{-1em}\begin{block}{}
Время между двумя последовательными свершениями события
$$f(x)=\begin{cases}
0,& x<0,\\
\lambda\exp(-\lambda x),& x\ge0;
\end{cases}\qquad
F(x)=\begin{cases}
0,& x<0,\\
1-\exp(-\lambda x),& x\ge0,
\end{cases}
$$
\end{block}
\vspace*{-1em}\begin{block}{}
$\mean{X} = \lambda^{-1}$,
$\moda(X) = 0$, $\med{X} = \ln(2)/\lambda$,
$\sigma^2_X = \lambda^{-2}$.
\end{block}
\vspace*{-1em}\img[0.5]{exppdf}
\end{frame}
\section{Корреляция и ковариация}
\begin{frame}{Корреляция и ковариация}
\begin{defin}
{}Ковариация является мерой линейной зависимости случайных величин и определяется
формулой:
$\mathrm{cov}(X,Y)=\mean{(X-\mean{X})(Y-\mean{Y})}$ $\Longrightarrow$ $\mathrm{cov}(X,X) =
\sigma^2_X$.
Ковариация независимых случайных величин равна нулю, обратное неверно.
\end{defin}
\begin{block}{}
Если ковариация положительна, то с ростом значений одной случайной величины, значения
второй имеют
тенденцию возрастать, а если знак отрицательный~--- убывать.
Масштаб зависимости величин пропорционален их дисперсиям $\Longrightarrow$ масштаб можно
отнормировать ({}коэффициент корреляции Пирсона):
$$\rho_{X,Y}=\frac{\mathrm{cov}(X,Y)}{\sigma X\sigma Y}, \qquad \mathbf{r}\in[-1,1].$$
\end{block}
\end{frame}
\begin{frame}{}
\begin{block}{}
Коэффициент корреляции равен~$\pm1$ тогда и только тогда, когда~$X$ и~$Y$ линейно зависимы.
Если
они независимы, $\rho_{X,Y}=0$ ({}обратное неверно!). Промежуточные значения
коэффициента
корреляции не позволяют однозначно судить о зависимости случайных величин, но позволяет
предполагать
степень их зависимости.
\end{block}
\begin{block}{Корреляционная функция}
Одна из разновидностей~--- автокорреляционная функция:
$$
\Psi(\tau) = \Int f(t) f(t-\tau)\, dt\equiv
\Int f(t+\tau) f(t)\,dt.
$$
Для дискретных случайных величин автокорреляционная функция имеет вид
$$
\Psi(\tau) = \aver{X(t)X(t-\tau)}\equiv\aver{X(t+\tau)X(t)}.
$$
\end{block}
\end{frame}
\begin{blueframe}{}
\only<1>{
\begin{block}{Взаимно корреляционная функция}
Другая разновидность~--- кросс--корреляционная функция:
$$(f\star g)(t)\stackrel{\mathrm{def}}{=}\Infint f^{*}(\tau)g(t+\tau)\,d\tau$$
свертка:
$$ (f*g)(x)\stackrel{\mathrm{def}}{=}\Infint f(y)\,g(x-y)\,dy = \Infint f(x-y)\,g(y)\, dy.$$
\end{block}
\img[0.5]{convcorr}
}\only<2>{
\begin{block}{}
Если $X$ и $Y$~--- две независимых случайных величины с функциями распределения вероятностей
$f$ и $g$, то $f\star g$ соответствует распределению вероятностей выражения $-X+Y$, а
$f*g$~---
распределению вероятностей суммы $X + Y$.
ВКФ часто используется для поиска в длинной последовательности более короткой заранее
известной,
определения сдвига (см.~рис).
Связь со сверткой: $f(t)\star g(t) = f^*(-t) * g(t)$, если $f$ и $g$ четны, то
$f(t)\star g(t) = f(t) * g(t)$. Через преобразование Фурье:
$\FT{f \star g} = \FT{f}^*\cdot\FT{g}$.
\end{block}\img[0.6]{autocorr}
}
\end{blueframe}
\begin{frame}{}
\begin{block}{Применение корреляции}
\begin{itemize}
\item Расчет спектральной плотности энергии и энергетического содержимого сигнала.
$\FT{\Psi(\tau)}=G_E(f)$~-- образ Фурье автокорреляционной функции есть спектральная плотность
энергии; $\Psi(0)=E$~-- полная энергия сигнала.
\item Детектирование и оценка периодических сигналов в шуме.
\item Корреляционное детектирование.
\end{itemize}
\end{block}
\end{frame}
\section{Шум}
\begin{frame}{Шум}
\begin{defin}
Шум~--- беспорядочные колебания различной физической природы, отличающиеся сложной
временной и
спектральной структурой.
\end{defin}
\begin{block}{}
Белый шум, $\xi(t)$, имеет время корреляции много меньше всех характерных времен
физической
системы; $\mean{\xi(t)}=0$,
$\Psi(t,\tau)=\aver{\xi(t+\tau)\xi(t)}=\sigma^2(t)\delta(\tau)$.
Разновидность~--- AWGN.
Дробовой шум имеет пуассонову статистику~\so $\sigma_X\propto\sqrt{x}$ и
$\SNR(N)\propto\sqrt{N}$. Суточные и вековые корреляции.
Шум вида <<соль--перец>> обычно характерен для изображений, считываемых с ПЗС.
\end{block}
\end{frame}
\begin{frame}{SNR}
\begin{defin}
SNR~--- безразмерная величина, равная отношению мощности полезного сигнала к мощности
шума.
\end{defin}
\begin{block}{}
$$\SNR = {P_\mathrm{signal} \over P_\mathrm{noise}} = \left ({A_\mathrm{signal} \over
A_\mathrm{noise} } \right )^2, \quad
\SNR(dB) = 10 \lg \left ( {P_\mathrm{signal} \over P_\mathrm{noise}}
\right )
= 20 \lg \left ( {A_\mathrm{signal} \over A_\mathrm{noise}} \right ).
$$
\end{block}
\img[0.6]{SNR}
\centerline{\tiny (10, 0, -10~дБ.)}
\end{frame}
\begin{frame}{Спасибо за внимание!}
\centering
\begin{minipage}{5cm}
\begin{block}{mailto}
eddy@sao.ru\\
edward.emelianoff@gmail.com
\end{block}\end{minipage}
\end{frame}
\end{document}

BIN
Komp_obr_SFedU/02_Pract.pdf Normal file

Binary file not shown.

253
Komp_obr_SFedU/02_Pract.tex Normal file
View File

@ -0,0 +1,253 @@
\documentclass[a4paper,12pt]{extarticle}
\usepackage{/home/eddy/ed}
\title{Практикум \No2: статистика и вероятность}
\author{}\date{}\nocolon
\long\def\task#1{\noindent\leavevmode\refstepcounter{sect}\llap{\textbf{\thesect}\;}\indent\textit{#1}}
\def\t#1{{\upshape\ttfamily #1}}
\begin{document}
\maketitle
\section{Введение в Octave}
Справка: \verb'help команда'.
Случайные числа: \verb'rand(rows, cols)'~--- равномерное распределение,
\verb'randn(rows, cols)'~--- нормальное, \verb'rande'~--- экспоненциальное, \verb'randg'~---
гамма-распределение, \verb'randp'~--- Пуассон.
\subsection{Матрицы и векторы}
Создание векторов: \verb'A=[1 2 3]' или же \verb'A=[1,2,3]'. Вектор-столбец: \verb|A=[1 2 3]'| или
же \verb'A=[1;2;3]'. \verb'A=[начзн.:<шаг:>конзн.]'.
Создание матриц: \verb'A=[1 5 2; 4 1 0]'. Конкатенация: \verb'A=[1:3]', \verb'B=[6:8]',
\verb'C=[12:14]'; \verb'D=[A;B;C]'. Или: \verb|A=[1:3]'|, \verb|B=[6:8]'|,
\verb|C=[12:14]'|; \verb'D=[A B C]'. Конкатенация возможна и для векторов и матриц:
\verb|E=[(20:22)' (11:13)']|, \verb'[D E]'. \verb'X=[4 3 2]', \verb'Y=[9 8 7]', \verb'Z=[X Y]'.
Размер в элементах: \verb'numel(A)'. Размер в байтах: \verb'sizeof(A)'. Размерность: \verb'size(A)'.
Посмотреть значение переменной можно, указав ее имя или же команду \verb'disp(X)'.
Специальные матрицы: \verb'eye(x)', \verb'ones(x)', \verb'zeros(x)',
\verb'repmat(matrix, [ycount xcount])', \verb'magic(x)'.
\textbf{Первая координата~--- Y!}
Список переменных: \verb'whos'. Удалить переменные: \verb'clear'.
\textbf{Индексы~--- с единицы!} Индексация: \verb'X=magic(5)', \verb'X(1:2,3:5)',
\verb'X(2:end,3:end)', \verb'X(:,3)', \verb'X(3,:)', \verb'magic(4)(:,1)'.
Матрицу~--- в столбец: \verb'magic(4)(:)'.
Удаление элементов матриц и векторов: \verb'vec=[1:10]', \verb'idx=[3,7,5]', \verb'vec[idx]=[]';
\verb'X(:,[1,3])=[]'.
\subsection{Матричные и векторные операции}
Сложение, вычитание: \verb'A+B', \verb'A-B'.
Транспонирование, сопряжение: \verb|A'|. Степень (для квадратных матриц): \verb'X^n'.
\textbf{Отрицательная степень}: \verb'A^(-1)==inv(A)', но \verb'A^(-2)==inv(A)^2'!
\textbf{Поэлементные операции}: \verb'A.(op)'. Умножение матриц: \verb'A*B', например,
\begin{verbatim}
A=[1 4 7; 8 5 2];
B=[4 5; 9 6; 3 1];
X=A*B
ans =
61 36
83 72
\end{verbatim}
\verb'A=[1 2; 3 4]', \verb'B=[50 60; 70 80]'.
Матричное деление: \verb'A/B' (\verb'(A/B)*B==A'), эквивалентно $AB^{-1}$. <<Левое>> деление:
\verb'A\B' (\verb'A*(A\B)==B'), эквивалентно $A^{-1}B$.
\subsection{Графики}
\verb'x=[0:0.1:2*pi]', \verb'plot(sin(x))'.
Сохранить график: \verb'print -dpdf plot.pdf'.
Гистограмма: \verb'hist(x,N)'. Например,
\begin{verbatim}
x=rand(1,10000);
hist(x);
hist(x, 5);
x=randn(1,10000);
hist(x,20);
\end{verbatim}
Графики двумерных функций. \verb'[X,Y]=meshgrid(-5:0.1:5,-6:0.1:6);', \verb'Z=X.^2-4*Y.^2;',
\verb'surf(X,Y,Z)'. \verb'surfc(X,Y,Z)'~--- с изолиниями. \verb'mesh(X,Y,Z)'.
Закрыть график: \verb'close all' или же \verb'close(fig)'. \verb'P=figure(N);'. Выбор между текущим
графиком для отображения: \verb'figure(N)'. Например:
\begin{verbatim}
P1=figure(1); P2=figure(2);
mesh(X,Y,Z);
figure(1);
surfc(X,Y,Z);
close(P2);
\end{verbatim}
\verb'hold on/off'~--- дорисовать что-то на графике.
Но интерфейс Octave к gnuplot не сравнится с самим gnuplot (пример)!
Построим график плотности вероятности нормального распределения величины с $\mean{X}=-20$ и
$\sigma_X=20$: \verb'x=[-70:30]; y=normpdf(x,-20,20);'.
\subsection{Циклы, условия}
Цикл \verb'for'. \verb'for x=1:10; printf("x=%d\n", x); endfor'.
\begin{verbatim}
X=[]; Y=[]; for x=1:3; A=dlmread(sprintf("for%02d", x));
> X=[X; A(:,1)]; Y=[Y; A(:,2)]; endfor
plot(X, Y, 'o')
\end{verbatim}
Цикл \verb'while':
\begin{verbatim}
F=1; x=1; while F < 1e10; x+=1; F*=x; endwhile; printf("!%d=%g\n", x, F);
!14=8.71783e+10
\end{verbatim}
Условия:
\begin{verbatim}
x = input("Enter value: ");
if(x < -5) printf("Less than -5\n")
>elseif (x > 5) printf("More than 5\n")
>else printf("Between -5 and 5\n")
>endif
\end{verbatim}
\subsection{m-файлы}
Функции и скрипты. Функции: \verb'checkX.m'.
Скрипты: \verb'script.m'. Скрипт выполняется в глобальном пространстве!
Пример (закомментировать \verb'x=' в \verb'script.m'):
\begin{verbatim}
clear
x = [-2*pi:0.1:2*pi];
script
\end{verbatim}
Проверка переменной (и не только): \verb'exist(name, type)', скрипт \verb'script_chk' (запустить с
определенной \verb'x' и после \verb'clear').
\subsection{Статистика}
Среднее: \verb'mean(x)'. RMS: \verb'std(x)'. Медиана: \verb'median(x)'. Сумма: \verb'sum(x)'.
Кумулятивная сумма: \verb'cumsum(x)'. Сортировка: \verb'sort(x)'.
Минимум, максимум: \verb'min(x)', \verb'max(x)'.
\section{Примеры выполнения заданий}
\task{Сгенерировать синусоиду на участке~$[0,2\pi]$, добавить к ней гауссов белый шум с
амплитудой~10\,дБ. Построить график.}
Сгенерируем синусоидальный сигнал на участке~$[0,2\pi]$
командами
$$\verb'x=[0:pi/50:2*pi]; y=sin(x);'$$
Теперь добавим к сигналу
гауссов белый шум с амплитудой 10~дБ относительно амплитуды сигнала:
$$\verb"y1=awgn(y,10,'measured'); plot(x, [y; y1])"$$
Третий параметр (measured) обязателен, т.к. без него процесс добавления
шума будет несколько иным (мощность сигнала будет считаться равной 0~дБ), можете
проверить на синусоиде с амплитудой~10.
\task{Сгенерировать синусоиду с периодом $\pi/5$ на интервале $[0,20]$ с амплитудной модуляцией
пилообразной функцией с периодом~10.}
Для генерации синусоидального сигнала $y_0=A\sin(2\pi t/T)$ с амплитудной модуляцией
по закону $y_1=f(t)$ необходимо перемножить эти две функции: $y=y_0\cdot y_1$.
Промодулируем синусоиду с периодом $\pi/5$ пилообразным сигналом с периодом~10
на интервале $x\in[0,20]$.
Для генерирования <<пилы>> используется функция \verb'sawtooth'. Если задать
ей один аргумент (вектор $x$), период будет равен~$2\pi$, а сигнал будет
изменяться в интервале $[-1,1]$. Чтобы задать смещение максимума, равное $a\cdot2\pi$,
необходимо указать: \verb'y=sawtooth(x,a)'. Таким образом, чтобы получить
<<пилу>> с интервалом сигнала в $[0,1]$ и периодом~10, необходимо дать команду
\verb'y1=0.5+sawtooth(x*2*pi/10)/2;'. Следовательно, получить наш сигнал можно
командой
$$\verb'y=sin(x*10).*(0.5+sawtooth(x*pi/5)/2);'$$
(не забудьте про точку перед знаком умножения между функциями, иначе
получите ошибку, т.к. Octave попытается перемножить два вектора--строки).
\task{На интервале $[0,20]$ создать две синусоиды, сдвинутые друг относительно друга на 3~единицы.
При помощи взаимно-корреляционной функции определить этот сдвиг.}
\verb'x=[0:0.05:20];' \verb'y=sin(x);'
\verb'y1=sin(x+3);'
Попробуем определить, на сколько единиц сдвинут первый
сигнал относительно второго. Для этого воспользуемся корреляционной функцией.
Запишем \verb'Corr=xcorr(y,y1);'. Корреляционная функция в данном случае имеет
вдвое большую ширину, чем исходная, т.к. она получается путем последовательного
сдвига второй функции относительно первой. Поэтому построим график командой
\verb'plot([-20:0.05:20],Corr)'. Воспользовавшись функцией увеличения можно
увидеть, что ближайший к нулю максимум соответствует сдвигу одной функции
относительно другой. В нашем случае сигнал был периодическим, поэтому при
сдвигах на величины, превышающие половину периода, возникает ошибка, кратная
полупериоду. Это необходимо учитывать в расчетах.
Поменяем сдвиг на~0.2 и посмотрим, как изменится график.
\task{Найдите сумму, разность, произведение и частное матриц
$$A=\begin{pmatrix}4&12&8\\7&11&-1\\2&12&3\end{pmatrix},\qquad
B=\begin{pmatrix}11&2&0\\0&3&0\\1&-1&12\end{pmatrix}.$$
Найдите определители исходных и получившихся матриц (команда \t{det(A)})}
\begin{verbatim}
a=[4 12 8; 7 11 -1; 2 12 3];
b=[11 2 0; 0 3 0; 1 -1 12];
sum=a+b
dif=a-b
prod=a*b
div=a/b
det(a) ...
\end{verbatim}
\section{Задания для самостоятельного выполнения}
\begin{enumerate}
\item Найдите сумму, разность, произведение и частное матриц
$$A=\begin{pmatrix}1&2&3\\6&5&4\\9&8&7\end{pmatrix},\qquad
B=\begin{pmatrix}9&8&7\\5&3&1\\0&2&6\end{pmatrix}.$$
Найдите определители исходных и получившихся матриц (команда \verb'det(A)').
\item
Найдите значение почленного, матричного и скалярного произведений векторов
$a=(2,5,7)$ и $b=(11,13,17)$. Скалярное произведение найдите двумя способами:
путем перемножения векторов и при помощи функции \verb'dot(a,b)'.
Найдите векторное произведение $a\times b$ при помощи функции
\verb'cross(a,b)'.
\item
Постройте график нормального распределения на интервале $[0,100]$ с математическим
ожиданием~50 и дисперсией~100.
\item
\label{noicy_AM}
Получите сигнал с амплитудной модуляцией (из примера). Добавьте к нему гауссов
белый шум с SNR 100, 50, 10 и~1~дБ. Постройте отдельно графики всех
полученных сигналов. Можно ли сделать какой-либо вывод о виде сигнала при
SNR=1? Как вы думаете, можно ли восстановить из него исходный сигнал?
\item
Для полученного сигнала найдите следующие характеристики: математическое ожидание
(\verb'mean'), среднее квадратичное отклонение (\verb'std'), медиану (\verb'median')
и моду (\verb'mode'). Найдите аналогичные величины для разности между зашумленным
и оригинальным сигналом. Сравните полученные величины с теоретическими.
\item
Попытайтесь определить сдвиг двух синусоид (из примера) при зашумлении:
\begin{itemize}
\item только одной с уровнем сигнал/шум 1~дБ;
\item обеих с уровнем SNR=1~дБ;
\item одной с уровнем SNR=0.1~дБ;
\item обеих с уровнем SNR=0.1~дБ.
\end{itemize}
Постройте один из сигналов с SNR=0.1~дБ. Можно ли определить его период?
Можно ли определить период по автокорреляционной функции этого сигнала?
\end{enumerate}
\end{document}

Binary file not shown.

View File

@ -0,0 +1,555 @@
\documentclass[10pt,pdf,hyperref={unicode}]{beamer}
\hypersetup{pdfpagemode=FullScreen}
\usepackage{ed}
\usepackage{lect}
\title[Компьютерная обработка. Лекция 3.]{Компьютерная обработка результатов измерений}
\subtitle{Лекция 3. Систематические и случайные погрешности. Теория оценок.}
\date{22 марта 2021 года}
\begin{document}
% Титул
\begin{frame}
\maketitle
\end{frame}
% Содержание
\begin{frame}
\tableofcontents
\end{frame}
\section{Погрешность}
\begin{frame}{Погрешность}
\only<1>{
\begin{defin}
Погрешность --- отклонение измеренного значения величины от её истинного (действительного)
значения.
\end{defin}
\begin{block}{}
Абсолютная погрешность, $\Delta x$ (напр., RMS); относительная погрешность, $\delta x=\Delta
x/\mean{x}$; приведенная погрешность $\gamma x=\Delta x/N_x$ (нормировочный коэффициент).
\end{block}
\begin{block}{По причине возникновения}
\begin{description}
\item[Инструментальные] определяются погрешностями применяемых средств измерений.
\item[Методические] обусловлены несовершенством метода, а также упрощениями, положенными в основу
методики.
\item[Субъективные] обусловлены качествами экспериментатора.
\end{description}
\end{block}}
\only<2>{
\begin{block}{По характеру проявления}
\begin{description}
\item[Случайные] обусловлены совокупностью внешних факторов, влияющих на результат эксперимента.
\item[Систематические] связаны с влиянием прибора на измеряемую величину или методическими
ошибками, выявляются лишь сменой прибора\slash метода\slash экспериментатора.
\item[Промахи] наиболее сильно себя проявляют и связаны с неисправностью прибора или
экспериментатора.
\end{description}
\end{block}
\begin{block}{Средняя квадратическая погрешность среднего арифметического}
$$
\sigma_{\aver{x}}=\frac{\sigma_x}{\sqrt{n}}=
\sqrt{\frac{\sum\limits_{i=1}^n(\mean{x_i}-\aver{x})^2}{n(n-1)}}.
$$
\end{block}
}\only<3>{
\img{pogr}
Примеры погрешностей: а) случайная, б) случайная и систематическая, в) случайная и промахи.
}
\end{frame}
\begin{frame}{Правила вычисления погрешностей}
\begin{block}{}
\begin{enumerate}
\item
$$\Delta\bigl(\sum a_n\bigr)=\sum\Delta a_n.$$
\item
$$\prod(a_i\pm\Delta a_i)=\prod a_i\prod(1\pm\delta a_i)\approx
\prod a_i(1\pm\sum\delta a_i),$$
$$\bigl(a[1\pm\delta a]\bigr)^n\approx a^n(1\pm n\delta a).$$
\item В сложных функциях вида $y=f(x_1,\ldots,x_n)$ можно оценить
погрешность, воспользовавшись приближением:
$$
\delta y\approx\Bigl|\frac{dy}{y}\Bigr|=\Bigl|
\frac{d f(x_1,\ldots,x_n)}{f(x_1,\ldots,x_n)}\Bigr|,
$$
в котором следует заменить $\frc{dx_i}{x_i}=\delta x_i$~-- относительная
погрешность
измерения величины~$x_i$, $d x_i=\Delta x_i$~-- абсолютная погрешность. Все
слагаемые необходимо суммировать по абсолютной величине.
\end{enumerate}
\end{block}
\end{frame}
\section{Теория оценок}
\begin{frame}{Правило <<трех сигм>>}
\begin{block}{}
При гауссовом распределении случайной величины вероятность
$$P(|x-\mean{x}|<3\sigma)=2\Phi(3)=0.9973.$$
($\Phi$~-- нормальное интегральное распределение).
\end{block}
\begin{defin}
Правило трех сигм: если случайная величина распределена нормально, то абсолютная величина ее
отклонения от математического ожидания не превосходит утроенного среднего квадратичного отклонения.
\end{defin}
\begin{defin}
Теорема Ляпунова: случайная величина, являющаяся суммой большого числа взаимно независимых
случайных величин, имеет нормальное распределение.
\end{defin}
\end{frame}
\begin{frame}{Распределение $\chi^2$}
\only<1>{
\begin{block}{}
Распределение суммы квадратов~$n$ нормальных независимых случайных величин ($x_i$, $i=\overline{1,n}$,
$\mean{x}=0$, $\sigma_x=1$): $\chi^2=\sum_{i=1}^n x_i^2\;$ с~$k=n$ степенями свободы.
Каждое линейное соотношение уменьшает количество степеней свободы на единицу.
Плотность распределения <<хи квадрат>>:
$$
f(x)=\begin{cases}
0,& x\le0,\\
\dfrac{\e^{-x/2}x^{k/2-1}}{2^{k/2}\Gamma(k/2)},& x>0,\\
\end{cases}
$$
где $\Gamma(x)=\Int_0^\infty t^{x-1} e^{-t}dt$~-- гамма-функция, в частности,
$\Gamma(n+1)=n!$. $\mean{\chi^2}=k$, $\sigma^2_{\chi^2}=2k$.
Из закона больших чисел при $k\to\infty$ это распределение приближается к нормальному.
\end{block}
}\only<2>{
\begin{block}{}
В общем случае для любых нормальных независимых случайных величин
$$\chi^2=\sum \left(\frac{x_i-\mean{x}}{\sigma_x}\right)^2.$$
При $k=2$ распределение совпадает с экспоненциальным.
Квантили распределения $\chi^2$ вычисляются при помощи функции \t{chi2inv} пакета \t{statistics}. Например:
{\texttt chi2inv([0.990:0.001:0.999], 10) \\
ans = \\
23.209 23.514 23.853 24.235 24.673 25.188 25.813 26.611 27.722 29.588 }
Само распределение можно отобразить при помощи \t{chi2pdf(x, N)}. \t{chi2cdf}~-- интегральное распределение.
\end{block}
}
\end{frame}
\begin{frame}{Распределение Стьюдента (t-распределение)}
\only<1>{
\begin{block}{}
Строится наподобие $\chi^2$ для $n+1$ независимой нормальной величины $Y_i$:
$$t=\frac{Y_0}{\sqrt{\frac{1}{n}\sum_{i=1}^n Y_i^2}}.$$
Плотность распределения:
$$
f(x)=\frac{\Gamma(\frac{n+1}{2})}{\sqrt{n\pi}\, \Gamma(\frac{n}{2})}
\left(1+\frac{x^2}{n}\right)^{-\frac{n+1}{2}}.
$$
Распределение симметрично. $\mean{t}=0$ при $n>1$, $\sigma^2_t=\frc{n}{(n-2)}$ при $n>2$.
\end{block}
}\only<2>{
\begin{block}{}
Можно представить $T$ с $k$ степенями свободы через нормальное и $\chi^2$: если $Z$ распределено нормально, а
$V$~-- по закону $chi^2$, то
$$T=Z\sqrt{\dfrac{k}{V}}.$$
Распределение возникает из распределения выборочных среднего, $\aver{X}$ и дисперсии, $S$:
$$\frac{\aver{X}-\mean{X}}{S/\sqrt{n}}\propto t(n-1).$$
Аналогичные функции из пакета \t{statistics}: \t{tinv}, \t{tpdf}, \t{tcdf}:
{\texttt
tinv([0.990:0.001:0.999], 100) \\
ans = \\
2.3642 2.4052 2.4506 2.5012 2.5589 2.6259 2.7064 2.8077 2.9464 3.1737 }
\end{block}
}
\end{frame}
\section{Ковариационная матрица}
\def\cov#1{\ensuremath{\mathrm{cov}(#1)}}
\begin{frame}{Ковариационная матрица}
\only<1>{
\begin{block}{}
Ковариация, $\sigma_{xx}=\sigma_x^2=D(x)=\mean{(x-\mean{x})^2}$:
$$\cov{x,y}=\sigma_{xy}=\sigma_{yx}=\lim_{N\to\infty}\frac{1}{N}\sum_{k=1}^N (x-\mean{x})(y-\mean{y})=
\mean{(x-\mean{x})(y-\mean{y})}.$$
Ковариационная матрица для двух и $M$~одинаковых величин ($\cov{X}$):
$$C_{xy}=\begin{pmatrix}\sigma_x^2 & \sigma_{xy} \\ \sigma_{yx} & \sigma_y^2 \\ \end{pmatrix},\quad
C_{x_M} = \begin{pmatrix}
\sigma_1^2 & \sigma_{12} & \sigma_{13} & \dots & \sigma_{1M} \\
\sigma_{21} & \sigma_{2}^2 & \sigma_{23} & \dots & \sigma_{2M} \\
\hdotsfor{5}\\
\sigma_{M1} & \sigma_{M2} & \sigma_{M3} & \dots & \sigma_{M}^2 \\
\end{pmatrix},\quad
C=C^{T}.
$$
\end{block}}\only<2>{
\begin{block}{}
Пусть $\Delta x=\mean{x-\mean{x}}$, тогда $C$ можно определить как $C=\mean{\Delta x\cdot\Delta x^T}$,
где $\Delta x$~-- вектор-столбец. В общем случае $C_{xy}=\mean{\Delta x\Delta y^T}$ для векторов~$X$ и~$Y$ любой
длины. Свойства:
\begin{itemize}
\item для независимых $X$ и $Y$, $C_{XY}=C_X+C_Y$;
\item $\cov{AX + B}= A\cov{X}A^T$ ($A$~-- произвольная квадратная матрица);
\item $\cov{X,Y} = \cov{Y,X}^T$;
\item $\cov{\sum X_i, Y}=\sum\cov{X_i, Y}$, $\cov{X, \sum Y_i}=\sum\cov{X, Y_i}$;
\item для независимых $X$ и $Y$ $\cov{X,Y}=0$.
\end{itemize}
\end{block}
}\only<3>{
\begin{columns}
\column{0.45\textwidth}\begin{block}{}
Вектор данных: $X=\binom{x_i}{y_i}$; $\Sigma=C_{xy}$. $\sigma_x$ и~$\sigma_y$ характеризуют разброс данных по осям.
$\sigma_{xy}$ отражает линейную зависимость $y(x)$. В данном случае удобней было бы использовать
корреляционную матрицу, где $\rho_{xy}=\frc{\mean{(x-\mean{x})(y-\mean{y})}}{\sigma_x\sigma_y}$. При $\rho_{xy}=0$
эллиптичное облако точек, при $\rho_{xy}=1$ расположение точек вдоль отрезка.
\end{block}
\column{0.55\textwidth}\img{covarianceXY}
\end{columns}
}
\end{frame}
\begin{frame}[fragile]{}
\begin{block}{}
Собственные значения ковариационной матрицы характеризуют дисперсию вдоль направления, заданного ее
собственными векторами. $C_{xy}v=\lambda v$.
\begin{verbatim}
[v, lambda]=eig([3 2; 2 3], "vector")
\end{verbatim}
Получили два собственных значения:~1 и~5, которым соответствуют вектора
$v(1)=\binom{-\sqrt{2}/2}{\sqrt{2}/2}$ и
$v(5)=\binom{\sqrt{2}/2}{\sqrt{2}/2}$.
\end{block}
\img[0.8]{covarmatr}
\end{frame}
\section{Доверительные интервалы}
\begin{frame}{Доверительный интервал}
\only<1>{
\begin{block}{Доверительная вероятность}
$p = P(X_0 \le x \le X_1)$
\end{block}
\begin{block}{Математическое ожидание}
Если известен закон распределения (мат. ожидание и дисперсия: $\mu$ и $\sigma$), то
$$P\Bigl(\aver{X}-z_{1-\frac{\alpha}2}\frac{\sigma}{\sqrt{n}} \le \mu \le
\aver{X}+z_{1-\frac{\alpha}2}\frac{\sigma}{\sqrt{n}}\Bigr) = 1 - \alpha,$$
где $z_\alpha$~-- $\alpha$--квантиль нормального распределения
В Octave: \t{norminv(x)}. Например, для $1-\alpha=0.95$, $1-\frac{\alpha}{2}=0.975$.
\end{block}
}
\only<2>{
\begin{defin} $\alpha$--квантилем называется число $x_\alpha$:
$P(X\le x_\alpha)\ge\alpha$ и $P(X\ge x_\alpha)\ge1-\alpha$. Т.е. по интегральной функции распределения
$F(x_\alpha)=\alpha$. А т.к. $P(a\le X\le b)=F(b)-F(a)$, получаем:
$$P(x_{\frac{1-\alpha}2}\le X\le x_{\frac{1+\alpha}2})=\alpha.$$
\end{defin}
\begin{block}{Пример}
В 64 наблюдениях получено: $S_1=\sum x=600$, $S_2=\sum (x-\mean{x})^2=3800$. Вычислить 95\% доверительный
интервал матожидания.
Решение: $\sigma=\sqrt{S_2/(n-1)}=7.72$; $\aver{x}=S_1/n=9.375$. $F(0.975)=1.96$, отсюда найдем границы интервала
$\aver{x}\pm F(0.975)\sigma/\sqrt{n}$: $\mean{x}\in[7.484, 11.266]$ с точностью 95\%.
\end{block}
}
\only<3>{
\begin{block}{Математическое ожидание}
Если закон распределения неизвестен, то
$$P\Bigl(\aver{X}-t_{1-\frac{\alpha}2, n-1}\frac{S}{\sqrt{n}} \le \mu \le
\aver{X}+t_{1-\frac{\alpha}2,n-1}\frac{S}{\sqrt{n}}\Bigr) = 1 - \alpha,$$
где $S$~-- несмещенный RMS. Величина
$$T=\frac{\aver{X}-\mu}{S/\sqrt{n}}$$ имеет распределение Стьюдента, а $t_{\alpha, n-1}$~-- его
квантили.
Пример: $\aver{X}=10$, $S_n=2$, $n=11$ (10~степеней свободы), по таблице для двухстороннего
распределения Стьюдента с вероятностью~95\% $T_{10}^{95}=2.228$. Тогда доверительный интервал есть
$\mean{X}\pm TS_n/\sqrt{n}$, т.е. $\mu\in(8.6565, 11.3440)$.
В Octave \t{t=tinv(0.975, 10)}, т.к. $1-\alpha=0.95$ \Arr $\alpha=0.05$ \Arr $1-\frac{\alpha}{2}=0.975$.
\end{block}
}
\only<4>{
\begin{block}{Дисперсия}
Если известно среднее, можно воспользоваться распределением $\chi^2$.
$$
P\Biggl(\frac{\displaystyle\sum_{i=1}^n (X_i-\mu)^2}{\chi^2_{(1+\alpha)/2,n}}\le\sigma^2\le
\frac{\displaystyle\sum_{i=1}^n (X_i-\mu)^2}{\chi^2_{(1-\alpha)/2,n}}\Biggr)=\alpha.
$$
Если же среднее неизвестно, то
$$
P\Bigl(\frac{(n-1)S^2}{\chi^2_{(1+\alpha)/2,n-1}}\le\sigma^2\le
\frac{(n-1)S^2}{\chi^2_{(1-\alpha)/2,n-1}}\Bigr)=\alpha.
$$
\end{block}
}
\end{frame}
\begin{frame}{Алгоритм обработки результатов измерений}
\only<1>{
\begin{block}{Прямые измерения}
\begin{enumerate}
\item Заполнить таблицу с результатами $N$~измерений $x_i$.
\item Вычислить среднее арифметическое измеренной величины: $\mean{x} = \dfrac{1}{n}\sum
x_i$.
\item Определить стандартный доверительный интервал:
$S_x=\sqrt{\dfrac{1}{n(n-1)}\sum(x_i-\mean{x})^2}$.
\item Задать значение коэффициента надежности~$\alpha$, и по нему определить значение
коэффициента Стьюдента~$t_{\alpha,N}$.
По паспортным данным определить абсолютную погрешность измерительного прибора, $\Delta
x_\text{пр}$. Если $\Delta x_\text{пр}>4t_{\alpha,N}S_x$, представить результат в виде
$x=\mean{x}\pm\Delta x_\text{пр}/2$, обработка окончена.
\item Если $\Delta x_\text{пр}<t_{\alpha,N}S_x$ считаем, что $\Delta x=t_{\alpha,N}S_x$;
иначе вычисляем результирующую среднеквадратичную погрешность как
$\Delta x = \sqrt{(t_{\alpha,N}S_x)^2+(\Delta x_\text{пр}/2)^2}$.
\item Результат записываем как $x=\mean{x}\pm\Delta x,\quad \alpha=\ldots$
\end{enumerate}
\end{block}
}\only<2>{
\begin{block}{Косвенные измерения}
\begin{itemize}
\item Вычислить для всех измеряемых величин среднее значение и погрешность прямого
измерения. При этом для всех величин выбирается одно и то же значение доверительной
вероятности~$\alpha$.
\item По формуле вычислить среднее значение измеряемой величины: $\mean{w}=f(\mean{x},
\mean{y}, \cdots)$.
\item Оценить погрешность косвенно измеряемой величины:
$$(\Delta w)^2 =
\left.\Bigl(\partder{w}{x}\Bigr)^2\right|_{\tiny\begin{smallmatrix}
x=\mean{x};\\y=\mean{y};\\
\cdots\end{smallmatrix}}(\Delta x)^2 +
\left.\Bigl(\partder{w}{y}\Bigr)^2\right|_{\tiny\begin{smallmatrix}
x=\mean{x};\\y=\mean{y};\\
\cdots\end{smallmatrix}}(\Delta y)^2 +
\cdots.$$
\item Записать результат в виде $w=\mean{w}\pm\Delta w, \quad \alpha=\ldots$.
\end{itemize}
\end{block}
}
\end{frame}
\section{Метод наименьших квадратов}
\begin{frame}{Метод наименьших квадратов}
\begin{block}{}
Пусть имеется функция $f(x|a)$, зависящая от аргумента $x$ и набора параметров~$a$. Данной функции
соответствует набор пар данных $(x_n,y_n)$, причем $y_n=f(x_n|a)+\epsilon_n$, где $\epsilon_n$~--
случайная ошибка. Математическое ожидание ошибки $\mean{\epsilon}=0$, ее среднеквадратическое
отклонение равно~$\sigma_n$. Для оценки~$a$ (аппроксимации набора данных заданной функцией)
необходимо минимизировать выражение
$$\Phi=\sum_{n=1}^N\Bigl(\frac{y_n-f(x_n|a)}{\sigma^2_n}\Bigr)^2.$$
При этом подразумевается, что число измерений превышает число параметров~$a$.
\end{block}
\end{frame}
\begin{frame}{Пример: линейная зависимость}
\begin{block}{}
Пусть $y=ax+b$, $x_n$ известны с пренебрежимо малой погрешностью, $y_n$~-- результаты измерений
с нормальным распределением, $\mean{y_i}=ax_i+b$. Минимизируем величину $Y=\sum(y_i-\mean{y_i})^2$,
$\partder{Y}{a}=0$, $\partder{Y}{b}=0$:
$$
a=\frac{n\sum x_iy_i-\sum x_i\sum y_i}{n\sum x^2_i-\Bigl(\sum x_i\Bigr)^2}=
\frac{\mean{xy}-\mean{x}\,\mean{y}}{\mean{x^2}-(\mean{x})^2},
$$
$$
b=\frac{\sum x_i^2\sum y_i-\sum x_i\sum x_i y_i}{n\sum x^2_i-\Bigl(\sum
x_i\Bigr)^2}=
\frac{\mean{x^2\strut}\,\mean{\strut
y}-\mean{x}\,\mean{xy}}{\mean{x^2}-(\mean{x})^2}.
$$
$$
\sigma^2=\frac{n}{n-2}\Bigl(\mean{y^2}-(\mean{y})^2-a^2\bigl[
\mean{x^2}-(\mean{x})^2\bigr]\Bigr),\qquad
\sigma^2_a=\frac{\sigma^2}{n\bigl(\mean{x^2}-(\mean{x})^2\bigr)},\quad
\sigma_b^2=\sigma_a^2\mean{x^2}.
$$
\end{block}
\end{frame}
\begin{frame}{Аппроксимация МНК}
\only<1>{\img{lesssquare}}
\only<2>{
\begin{block}{}
Некоторые зависимости, можно свести к линейным. Например, $y=\e^{ax+b}$ \so $\ln y=ax+b$.
Возможно также сведение зависимостей к системам линейных уравнений $A\vec{x}=\vec{b}$, ранг матрицы
$A$ должен быть больше количества искомых переменных. Минимизируем
$(A\vec{x}-\vec{b})^T(A\vec{x}-\vec{b})$, что приводит к системе уравнений
$$
A^TA\vec{x}=A^T\vec{b}\quad\so\quad
\vec{x}=(A^TA)^{-1}A^T\vec{b}.
$$
Или $\vec{x}=A^{+}\vec{b}$ (псевдообратная матрица), в Octave~--- <<левое деление>> $A\backslash
b$.
\end{block}
}
\end{frame}
\begin{frame}[fragile]{}
\begin{block}{Пример}
Пусть некоторая величина изменяется по закону $y=a_0+a_1\e^{-t}+a_2te^{-t}$.
В матричном виде $Y=TA$, где $T$~-- функциональная матрица, у которой в первом столбце
размещены единицы (соответствует умножению на~$a_0$), во втором~--- функция
$\e^{-t}$, а в третьем~--- $t\e^{-t}$. Коэффициенты~$A$ найдем при помощи МНК:
$A=T\backslash Y$.
\begin{verbatim}
t = [0 0.3 0.8 1.1 1.6 2.3]';
y = [0.6 0.67 1.01 1.35 1.47 1.25]';
T = [ones(size(t)) exp(-t) t.*exp(-t)];
A = T\y
\end{verbatim}
\end{block}
\end{frame}
\section{Ошибка МНК}
\begin{frame}{Ошибка МНК}
\only<1>{
\begin{block}{МНК для линейной зависимости}
Пусть наблюдаемая $l$ имеет линейную зависимость от $a$, $b$ и~$c$:
$$l(t) = x\cdot a(t) + y\cdot b(t) + z\cdot c(t).$$
Из эксперимента получаем $N$ наборов данных $l_k$, $a_k$, $b_k$ и~$c_k$:
$$l_k = xa_k + yb_k + zc_k + \Delta l_k.$$
Найдем $x$, $y$ и $z$, минимизируя $S=\Delta l_k^2=\sum\bigl(l_k-(xa_k + yb_k + zc_k)\bigr)^2$:
$$\partder{S}{\aleph}=\frac{\partial}{\partial\aleph} \sum\bigl(l_k-(xa_k + yb_k + zc_k)\bigr)^2 = 0$$
\end{block}
}\only<2>{
\begin{block}{}
Введем обозначения: $\sum_{k=1}^N \aleph_k\beth_k = [\aleph\beth]$. Тогда после дифференцирования получим систему
из~трех уравнений для нахождения трех неизвестных:
$$
\left\{\begin{aligned}
x[aa] + y[ab] + z[ac] & = [al], \\
x[ba] + y[bb] + z[bc] & = [bl], \\
x[ca] + y[cb] + z[cc] & = [cl]. \\
\end{aligned}\right.\quad\text{или}\quad
\begin{pmatrix}
[aa] & [ab] & [ac]\\
[ba] & [bb] & [bc]\\
[ca] & [cb] & [cc]\\
\end{pmatrix}
\begin{pmatrix}
x\\ y\\ z
\end{pmatrix} =
\begin{pmatrix}
[al]\\ [bl]\\ [cl]
\end{pmatrix}.
$$
Или $MK=V$, следовательно, $K=M^{-1}V$ (\t{K=M\bsl V}).
Аналогичную систему можно составить для погрешностей:
$$
\begin{pmatrix}
[aa] & [ab] & [ac]\\
[ba] & [bb] & [bc]\\
[ca] & [cb] & [cc]\\
\end{pmatrix}
\begin{pmatrix}
\Delta x\\ \Delta y\\ \Delta z
\end{pmatrix} =
\begin{pmatrix}
[a\Delta l]\\ [b\Delta l]\\ [c\Delta l]
\end{pmatrix} \quad\text{или}\quad
M \Delta K = \Delta V.
$$
\end{block}
}\only<3>{
\begin{block}{}
Итак, для погрешностей имеем: $\Delta K=M^{-1}\Delta V$. Если наблюдения~--- равноточные и независимые,
ковариационная матрица ошибок диагональна:
$$
C_L = \begin{pmatrix}
\Delta l_1 \\ \Delta l_2 \\ \cdots \\ \Delta l_N
\end{pmatrix}
\Bigl(\Delta l_1\; \Delta l_2\; \ldots\; \Delta l_N \Bigr) = \sigma_0^2\begin{pmatrix}
1 & 0 & 0 & \cdots & 0\\
0 & 1 & 0 & \cdots & 0\\
\hdotsfor{5}\\
0 & 0 & 0 & \cdots & 1\\
\end{pmatrix} = \sigma_0^2 E_N.
$$
Аналогично построим ковариационную матрицу ошибок неизвестных:
$$
C_K = \begin{pmatrix}
\sigma^2_x & \sigma_{xy} & \sigma_{xz}\\
\sigma_{yx} & \sigma^2_y & \sigma_{yz}\\
\sigma_{zx} & \sigma_{zy} & \sigma^2_z
\end{pmatrix} = \Delta K \cdot \Delta K^T = M^{-1}\Delta V\cdot \Delta V^T (M^{-1})^T
$$
Т.к. $[\aleph\beth]=[\beth\aleph]$, матрица $M$ симметрична ($M=M^T$).
\end{block}
}\only<4>{
\begin{block}{}
Члены ковариационной матрицы $\Delta V\cdot\Delta V^T$ на примере одного:
$$
\aver{[a\Delta l][a\Delta l]}=\aver{\sum a_i\Delta l_i\sum a_j\Delta l_j}=\aver{\sum\sum a_ia_j\Delta l_i\Delta l_j},
$$
т.е. $\Delta V\cdot\Delta V^T=\sum\sum a_ia_j\aver{\Delta l_i\Delta l_j}$, а т.к. $\aver{\Delta l_i\Delta l_j}$ равны нулю при $i\ne
j$ и равны $\sigma_0^2$ при $i=j$, получим: $\sigma_0^2\sum a_k^2=\sigma_0^2[aa]$. И в итоге:
$$C_K = M^{-1}\sigma_0^2 M M^{-1}=\sigma_0^2 M^{-1}!$$
Вывод: обратная матрица нормальных уравнений является матрицей весов вектора неизвестных.
Для получения несмещенной оценки $\sigma_0^2$ воспользуемся формулой:
$$\sigma_0^2 = \frac{\sum \Bigl(l_k-(xa_k + yb_k + zc_k)\Bigr)^2}{N-M},$$
где $M$~-- число неизвестных (в нашем случае~--- три).
\end{block}
}
\end{frame}
\begin{frame}[fragile]{}
\parbox{0.4\textwidth}{По набору данных получить коэффициенты линейной зависимости и определить их погрешности.}
\leavevmode\hspace{1em}
\begin{tabular}{|c||c|c|c|c|c|c|c|c|}\hline
\bf A & 1 &0& -1& 2& 3& -2& 0& 4\\
\bf B & 0 &3& 2& -1& 2& -1& 3& 1\\
\bf C & 2& -2& 0& 1& -2& 3& -2& 0\\ \hline
\bf L & 7 &1& 3& 2& 1& 6& 1& 5\\ \hline
\end{tabular}
\small
\begin{verbatim}
A=[1 0 -1 2 3 -2 0 4]'; B=[0 3 2 -1 2 -1 3 1]'; C=[2 -2 0 1 -2 3 -2 0]';
L=[7 1 3 2 1 6 1 5]'; T=[A B C]; % T - матрица данных, T*K=L
K=T \ L % искомые коэффициенты
V=T' * L; Mr=K/V; % M*K = V, Mr->M^(-1)
v=L-T*K; sigma0 = sqrt(sum(v.^2)/(8-3));
DK = sigma0 * sqrt(diag(Mr)) % искомые погрешности
for i=1:3;
printf("K%d=%.2f+-%.2f (%.1f%%)\n", i, K(i), DK(i), 100*DK(i)/K(i));
endfor
K1=0.72+-0.06 (7.7%)
K2=2.29+-0.07 (3.3%)
K3=3.06+-0.14 (4.5%)
\end{verbatim}
\end{frame}
\begin{frame}{Спасибо за внимание!}
\centering
\begin{minipage}{5cm}
\begin{block}{mailto}
eddy@sao.ru\\
edward.emelianoff@gmail.com
\end{block}\end{minipage}
\end{frame}
\end{document}
\section{Иррегулярно распределенные данные}
\begin{frame}{}
\begin{columns}
\column{0.65\textwidth}
\begin{block}{Иррегулярно распределенные данные}
БПФ, корреляция, периодограммы и т.п.
\begin{itemize}
\item Resampling (если данные достаточно плотно расположены).
\item Определение периода как расстояния между минимумами (максимумами) из аппроксимации.
\item Auto Regressive Moving Average (ARMA).
\item Фильтрация Калмана.
\item Метод Ваничека (аппроксимация набора данных рядом синусоид).
\item Периодограмма Ломба-Скаргла (ортогонализация пар синусоид введением задержки во времени,
Scargle, 1981).
\item Irregular Autoregressive Model (IAR).
\item Complex IAR (CIAR).
\end{itemize}
\end{block}
\column{0.32\textwidth}
\vspace*{-2em}\img{irregular}
\end{columns}
\end{frame}

View File

@ -0,0 +1,10 @@
//usr/bin/gcc $0 && exec ./a.out "$@"
#include <stdio.h>
int main(int argc, char **argv){
for(int x = 1; x < argc; ++x)
printf("arg %d is %s\n", x, argv[x]);
printf("Done\n");
return 0;
}

View File

@ -0,0 +1,12 @@
#!/bin/bash
function chkargs(){
echo "you give $# arguments:"
for arg in "$@"; do
echo -e "\t$arg"
done
}
chkargs "$@"
chkargs "$*"
chkargs $*

View File

@ -0,0 +1,6 @@
#!/bin/bash
array=(1 2 3 4 [5]=next [10]=last)
echo "array with size ${#array[*]} and indexes ${!array[*]}: ${array[*]}"
echo "array[4]=${array[4]}, array[10] len=${#array[10]}"

View File

@ -0,0 +1,15 @@
BEGIN {
print "List of users and shells"
print " UserName \t HomePath"
print "-----------------------"
FS=":"
}
{
print $1 " \t " $6
}
END {
home=ENVIRON["HOME"]
name=ENVIRON["USER"]
print "-----------------------"
print "Your name is " name " and home is " home
}

View File

@ -0,0 +1,11 @@
{
if ($1 > 20)
{
x = $1 * 2
print x
} else
{
x = $1 / 2
print x
}
}

View File

@ -0,0 +1,11 @@
#!/bin/bash
while [ -n "$1" ];do
case "$1" in
-a) echo "Found the -a option" ;;
-b) echo "Found the -b option" ;;
-c) echo "Found the -c option" ;;
*) echo "$1 is not an option" ;;
esac
shift
done

View File

@ -0,0 +1,7 @@
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Usage: $0 LEN - get random number with length LEN"
exit 1
fi
cat /dev/urandom | tr -dc '0-9' | fold -w $1 | head -n 1

View File

@ -0,0 +1,10 @@
#!/bin/sh
for ((nl = 1; nl < 1001; ++nl)); do
one=$((RANDOM % 1001))
two=$((RANDOM % 41 - 20))
#three=$(echo "scale=3; $((SRANDOM % 100001)) / 1000" | bc -l)
R=$((SRANDOM % 100001))
three=$(echo "$R" | awk '{printf "%.3f", $1/1000}')
echo -e "$nl\t$one\t$two\t$three"
done

View File

@ -0,0 +1,8 @@
#!/bin/sh
OUT=1000strings
./ex2 1000 > $OUT
for ((i = 2; i < 5; ++i)); do
sort -n -k $i $OUT > ${OUT}_$i
done

View File

@ -0,0 +1,22 @@
#!/bin/sh
if [ $# -ne 1 ]; then echo "Usage: $0 word"; exit 1; fi
TOTAL=0
miss=0; hit=0;
while true; do
TOTAL=$((TOTAL+1))
ans=$(cat /dev/urandom | tr -dc 'a-zA-Z' | fold -w 100 | head -n1 | grep $1)
if [ -x$ans = -x ]; then
miss=$((miss+1))
else
echo "$ans"
hit=$((hit+1))
fi
[ $hit -ge 5 -o $TOTAL -ge 10000 ] && break
done
part=$(echo "$hit $TOTAL" | awk '{ printf "%.2f", $1*100/$2}')
echo "Miss: $miss, Hit: $hit (${part}%)"

View File

@ -0,0 +1,19 @@
#!/bin/bash
echo -e "\t1."
for (( a = 1; a < 11; ++a )); do
echo "a=$a"
done
echo -e "\n\t2."
for a in $(seq 1 10); do
echo "a=$a"
done
echo -e "\n\t3."
for a in one "two args" three; do
echo "a=$a"
done

View File

@ -0,0 +1,15 @@
#!/bin/bash
echo "Enter value"
read val
if [ $val -gt 100 ]; then
echo "value $val greater than 100";
else
echo "value $val less than 100";
fi
echo "Enter filename"
read f
[ -d $f ] && echo "$f is a directory"
[ -f $f ] && echo "$f is a file"
[ ! -e $f ] && echo "Not exists"

View File

@ -0,0 +1,43 @@
#!/bin/bash
# array with filter positions (0 - hole, 1 - B, 2 - V, 3 - R, 4 - r')
POSITIONS=( 1 2 3 )
# array with expositions (in milliseconds!!!) for each position from POSITIONS
EXPTIME=( 600000 300000 400000 )
# array with focus (mm*10000) for each position
FOCUS=( 45000 45500 45300 )
# array size
len=${#POSITIONS[*]}
__x=0
function chkweather(){
local y=$__x
__x=$((__x+1))
return $y
}
function move_focuser(){
echo "move focuser to $1"
}
function move_turret(){
echo "move turret to $1"
}
function capture_frame(){
echo "capture frame with exposition $1 to file prefix $2"
}
function take_image(){
for (( i=0; i<$len; i++ )); do
move_focuser ${FOCUS[i]}
move_turret ${POSITIONS[i]}
capture_frame ${EXPTIME[i]} filename
done
}
while chkweather; do
take_image
done
echo "stop_observations"

View File

@ -0,0 +1,7 @@
#!/bin/bash
while read X; do
echo "You entered: $X"
done
echo "End"

View File

@ -0,0 +1,6 @@
function C = checkX(x)
if(x < -5) C = sprintf("%d less than -5\n", x);
elseif (x > 5) C = sprintf("%d more than 5\n", x);
else C = sprintf("%d between -5 and 5\n", x);
endif;
endfunction

View File

@ -0,0 +1,7 @@
1 3
2 12
3 56
4 0
9 11
12 5

View File

@ -0,0 +1,5 @@
3 12
5 15
10 20
11 1
15 2

View File

@ -0,0 +1,7 @@
22 12
30 32
33 11
45 1
46 5
70 112
80 32

View File

@ -0,0 +1,53 @@
110 19 -7 4.50 1635722064
120 17 -22 4.20 1635722064
121 15 -13 4.46 1635722064
130 22 -17 4.37 1635722064
140 25 -10 4.34 1635722064
141 27 -4 4.43 1635722064
150 27 4 4.58 1635722064
151 25 10 4.73 1635722064
170 10 25 4.86 1635722064
171 17 22 4.78 1635722064
200 4 27 4.87 1635720574
210 -4 27 4.86 1635720574
211 -10 25 4.83 1635720574
220 -17 22 4.78 1635722069
221 -22 17 4.71 1635722069
230 -25 10 4.56 1635722069
240 -27 -4 4.40 1635722069
241 -27 4 4.51 1635722069
260 -22 -17 4.18 1635722069
261 -17 -22 4.25 1635722069
270 -10 -25 4.11 1635722069
271 -4 -27 4.04 1635722069
300 -3 -20 4.22 1635722075
301 -10 -17 4.29 1635722075
310 -15 -13 4.39 1635722075
320 -19 -7 4.51 1635722075
321 -20 0 4.61 1635722075
330 -19 7 4.62 1635722075
340 -15 13 4.70 1635722075
341 -10 17 4.84 1635722075
350 -3 20 4.89 1635722075
400 9 9 4.80 1635722081
410 3 13 4.88 1635722081
420 -9 9 4.78 1635722081
421 -3 13 4.92 1635722081
430 -13 3 4.71 1635722081
440 -13 -3 4.59 1635722081
450 -9 -9 4.52 1635722081
451 -3 -13 4.44 1635722081
460 3 -13 4.51 1635722081
470 3 -20 4.33 1635722081
500 4 -27 4.09 1635722083
510 10 -17 4.35 1635722083
511 10 -25 4.23 1635722083
520 9 -9 4.57 1635722083
530 3 -5 4.61 1635722083
540 -3 -5 4.59 1635722083
541 -6 0 4.69 1635722083
550 -3 5 4.72 1635722083
560 3 5 4.84 1635722083
561 6 0 4.70 1635722083
570 13 -3 4.69 1635722083
571 13 3 4.80 1635722083

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -0,0 +1,53 @@
#!/bin/bash
#
# run it like
# ./plot 19.12.25/11\:20_T0.dat
#
OUT=tmpfile.txt
awk '{print $2 "\t" $3 "\t" $4}' $1 > $OUT
DATE=$(echo $1 | sed -e 's|/| |' -e 's|_.*||')
TX=$(echo $1 | sed 's|.*_\(.*\).dat|\1|')
if [ $TX = "T0" ]; then Tname="TOP side"
else Tname="BOTTOM side"
fi
VAL=$(head -n1 $1 | awk '{print $4}')
echo -e "30\t30\t$VAL\n-30\t-30\t$VAL" >> $OUT
cat << EOF > gnutplt
#!/usr/bin/gnuplot
set contour
unset surface
set cntrparam order 4
set cntrparam bspline
#set cntrparam levels auto 6
#set cntrparam levels incremental -30,0.1,30
set view map
set size square
set xrange [-40:40]
set yrange [-40:40]
set dgrid3d 100,100,4
set table "contour.txt"
splot '$OUT' u 1:2:3
unset table
unset contour
set surface
set table "dgrid.txt"
splot '$OUT' u 1:2:3
unset table
reset
set terminal jpeg enhanced size 1024,768
set output "$TX.jpg"
set size square
set xrange [-30:30]
set yrange [-30:30]
set xlabel "X, dm"
set ylabel "Y, dm"
set title "Mirror temperature $TX for $DATE ($Tname)"
set pm3d map
unset key
circle(x,y,z) = x**2+y**2 > 900 ? NaN : z
splot 'dgrid.txt' u 1:2:(circle(\$1,\$2,\$3)) w pm3d, 'contour.txt' u 1:2:(circle(\$1,\$2,\$3)) w l lc rgb "black", '$OUT' u 1:2:(circle(\$1,\$2,\$3)):3 with labels font ",8"
EOF
chmod 755 gnutplt
./gnutplt
rm -f gnutplt $OUT contour.txt dgrid.txt

View File

@ -0,0 +1,3 @@
%x = [0:0.1:2*pi];
y = cos(x);
plot(x,y);

View File

@ -0,0 +1,5 @@
if(!exist("x", "var"))
x = [0:0.1:2*pi];
endif
y = cos(x);
plot(x,y);

140
Komp_obr_SFedU/lect.sty Normal file
View File

@ -0,0 +1,140 @@
\usepackage[T2A]{fontenc} %ÐÏÄÄÅÒÖËÁ ËÉÒÉÌÌÉÃÙ
\usepackage[koi8-r]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{array}
\usepackage{xspace}
%\usepackage[intlimits]{amsmath}
\def\No{\textnumero}
\graphicspath{{./pic/}}
\usetheme{Boadilla}
\usefonttheme{structurebold}
\usefonttheme[onlymath]{serif}
\setbeamercovered{transparent}
\newenvironment{pict}%
{\begin{figure}[!h]\begin{center}\noindent}%
{\end{center}\end{figure}}
\setbeamercolor{color1}{bg=blue!50!black,fg=white}
\setbeamercolor{light1}{bg=blue!20!white,fg=black}
\setbeamercolor{normal text}{bg=blue!20!black,fg=cyan!70!white}
\setbeamercolor{frametitle}{fg=red,bg=blue!40!black}
\setbeamercolor{title}{fg=red,bg=blue!40!black}
\setbeamercolor{block title}{fg=cyan,bg=blue!40!black}
\newenvironment{defin}{\begin{beamercolorbox}[shadow=true, rounded=true]{color1}}%
{\end{beamercolorbox}}
\newenvironment{light}{\begin{beamercolorbox}[shadow=false,rounded=false]{light1}}%
{\end{beamercolorbox}}
\newcommand{\img}[2][]{\begin{pict}\includegraphics[width=#1\columnwidth]{#2}\end{pict}}
\newcommand{\smimg}[2][]{\includegraphics[width=#1\columnwidth]{#2}}
\logo{\includegraphics[width=1cm,height=1cm,keepaspectratio]{saologo.jpg}}
\def\daterussian{ % fix for iÀÎÑ and iÀÌÑ
\def\today{\number\day~\ifcase\month\or
\cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
\cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
\cyrm\cyra\cyrr\cyrt\cyra\or
\cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
\cyrm\cyra\cyrya\or
\cyri\cyryu\cyrn\cyrya\or
\cyri\cyryu\cyrl\cyrya\or
\cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
\cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
\cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
\cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
\cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
\space \number\year~\cyrg.}}
\author[åÍÅÌØÑÎÏ× ü.÷.]{åÍÅÌØÑÎÏ× üÄÕÁÒÄ ÷ÌÁÄÉÍÉÒÏ×ÉÞ}
\institute[óáï òáî]{óÐÅÃÉÁÌØÎÁÑ ÁÓÔÒÏÆÉÚÉÞÅÓËÁÑ ÏÂÓÅÒ×ÁÔÏÒÉÑ òáî\\
{\tiny ìÁÂÏÒÁÔÏÒÉÑ ÆÉÚÉËÉ ÏÐÔÉÞÅÓËÉÈ ÔÒÁÎÚÉÅÎÔÏ×}\\
}
\def\Ö{\bf}
\def\Ô{\tt}
\def\Î{\normalfont}
\def\Ë{\it}
\def\t#1{\texttt{#1}}
\def\bi{\bfseries\itshape} % öÉÒÎÙÊ ËÕÒÓÉ×
\def\red#1{\textcolor{red}{#1}}
\def\green#1{\textcolor{green}{#1}}
\def\blue#1{\textcolor{blue}{#1}}
\newenvironment{lightframe}{\bgroup\setbeamercolor{normal text}%
{bg=blue}\begin{frame}}{\end{frame}\egroup}
\newenvironment{blueframe}{\bgroup\setbeamercolor{normal text}%
{bg=cyan!70!white}\begin{frame}}{\end{frame}\egroup}
% save & continue counters in different frames
\newcounter{saveenumi}
\newcommand{\savei}{\setcounter{saveenumi}{\value{enumi}}}
\newcommand{\conti}{\setcounter{enumi}{\value{saveenumi}}}
%\resetcounteronoverlays{saveenumi}
\newsavebox{\hght} % for ddotvec
\newlength{\lngth}
\def\arr{\ensuremath{\,\rightarrow\,}} % óÔÒÅÌËÁ ×ÐÒÁ×Ï
\def\Arr{\ensuremath{\,\Rightarrow\,}} % ÖÉÒÎÁÑ -//-
\def\aver#1{\bgroup\mathopen{<}#1\mathclose{>}\egroup}
\def\Ang{\mbox{\rm\AA}} % áÎÇÓÔÒÅÍ
\def\B#1{\ensuremath{\mathbf{#1}}}
\def\bsl{\textbackslash}
\def\ceil#1{\bgroup\lceil #1\rceil\egroup}
\def\const{\ensuremath{\mathfrak{const}}}
\def\C{\ensuremath{\mathfrak{C}}}
\def\degr{\ensuremath{^\circ}} % çÒÁÄÕÓ
\def\ddotvec#1{ % ×ÔÏÒÁÑ ÐÒÏÉÚ×ÏÄÎÁÑ ×ÅËÔÏÒÁ ÐÏ ×ÒÅÍÅÎÉ
\savebox{\hght}{$\vec{#1}$}\ddot{\raisebox{0pt}[.8\ht\hght]{$\vec{#1}$}}}
\def\dotvec#1{ % ðÒÏÉÚ×ÏÄÎÁÑ ×ÅËÔÏÒÁ ÐÏ ×ÒÅÍÅÎÉ
\savebox{\hght}{$\vec{#1}$}\dot{\raisebox{0pt}[.8\ht\hght]{$\vec{#1}$}}}
\def\dpartder#1#2{\dfrac{\partial^2 #1}{\partial #2^2}} % ×ÔÏÒÁÑ ÞÁÓÔÎÁÑ ÐÒÏÉÚ×ÏÄÎÁÑ
\def\e{\mathop{\mathrm e}\nolimits}
\renewcommand{\epsilon}{\varepsilon} % ëÒÁÓÉ×ÙÊ ÜÐÓÉÌÏÎ
\def\frc#1#2{\raisebox{2pt}{$#1$}\big/\raisebox{-3pt}{$#2$}} % a/b, a ×ÙÛÅ, b ÎÉÖÅ
\def\floor#1{\bgroup\lfloor #1\rfloor\egroup}
\def\frc#1#2{\bgroup\raisebox{2pt}{$#1$}\big/\raisebox{-3pt}{$#2$}\egroup}
\def\F{\ensuremath{\mathop{\mathfrak F}}\nolimits} % ëÒÁÓÉ×ÁÑ æ
\def\FT#1{\mathcal{F}\left(#1\right)}
\def\FWHM{\mathrm{FWHM}}
\renewcommand{\ge}{\geqslant}
\def\grad{\mathop{\mathrm{grad}}\nolimits} % çÒÁÄÉÅÎÔ
\def\ind#1{_{\text{\scriptsize #1}}} % îÉÖÎÉÊ ÉÎÄÅËÓ ÒÕÓÓ. ÂÕË×ÁÍÉ
\def\indfrac#1#2{\raisebox{2pt}{$\frac{\mbox{\small $#1$}}{\mbox{\small $#2$}}$}}
\def\I{\ensuremath{\mathfrak{I}}} % éÎÔÅÇÒÁÌ
\def\IFT#1{\mathcal{F}^{-1}\left(#1\right)} % ïÂÒÁÔÎÏÅ æð
\def\IInt{\mathop{{\int\!\!\!\int}}\limits} % ä×ÏÊÎÏÊ ÂÏÌØÛÏÊ ÉÎÔÅÇÒÁÌ
\def\ILT#1{\mathop{\mathfrak{L}}\nolimits^{-1}\left(#1\right)} % ïÂÒÁÔÎÏÅ ÐÒÅÏÂÒ. ìÁÐÌÁÓÁ
\def\Int{\int\limits}
\def\Infint{\int\limits_{-\infty}^\infty}
\def\IZT#1{\mathop{\mathcal{Z}}\nolimits^{-1}\left(#1\right)} % ïÂÒÁÔÎÏÅ Z-ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ
\renewcommand{\kappa}{\varkappa} % ëÒÁÓÉ×ÁÑ ËÁÐÐÁ
\renewcommand{\le}{\leqslant} % íÅÎØÛÅ ÉÌÉ ÒÁ×ÎÏ
\def\ltextarrow#1{\ensuremath{\stackrel{#1}\leftarrow}} % óÔÒÅÌËÁ ×ÌÅ×Ï Ó ÐÏÄÐÉÓØÀ Ó×ÅÒÈÕ
\def\lvec{\overrightarrow} % äÌÉÎÎÙÊ ×ÅËÔÏÒ
\def\LT#1{\mathop{\mathfrak{L}}\nolimits\left(#1\right)} % ðÒÅÏÂÒÁÚÏ×ÁÎÉÅ ìÁÐÌÁÓÁ
\def\mean#1{\overline{#1}}
\def\med{\mathop{\mathrm{med}}\nolimits}
\def\moda{\mathop{\mathrm{Mo}}\nolimits}
\def\Oint{\oint\limits} % âÏÌØÛÏÊ ÉÎÔÅÇÒÁÌ
\def\partder#1#2{\dfrac{\partial #1}{\partial #2}}
\renewcommand{\phi}{\varphi} % ëÒÁÓÉ×ÁÑ ÆÉ
\def\rev#1{\frac{1}{#1}} % ïÂÒÁÔÎÁÑ ×ÅÌÉÞÉÎÁ
\def\rot{\mathop{\mathrm{rot}}\nolimits} % òÏÔÏÒ
\def\rtextarrow#1{\ensuremath{\stackrel{#1}\rightarrow}} % óÔÒÅÌËÁ ×ÐÒÁ×Ï Ó ÐÏÄÐÉÓØÀ
\def\R{\ensuremath{\mathbb{R}}} % ÒÁÃÉÏÎÁÌØÎÙÅ ÞÉÓÌÁ
\def\so{\ensuremath{\Longrightarrow}\xspace} % ÓÌÅÄÏ×ÁÔÅÌØÎÏ
\def\sinc{\mathop{\mathrm{sinc}}\nolimits} % éÎÔÅÇÒÁÌØÎÙÊ ÓÉÎÕÓ
\def\SNR{\mathop{\mathrm{SNR}}\nolimits}
\def\Sum{\sum\limits}
\def\Tr{\mathop{\mathrm{Tr}}\nolimits} % óÌÅÄ ÍÁÔÒÉÃÙ
\def\veci{{\vec\imath}} % i-ÏÒÔ
\def\vecj{{\vec\jmath}} % j-ÏÒÔ
\def\veck{{\vec{k}}} % k-ÏÒÔ
\def\vl{\xspace\textbar\xspace}
\def\when#1{\ensuremath{\Bigr|_{#1}}} % ÷ÅÒÔ. ÌÉÎÉÑ Ó ÎÉÖÎÉÍ ÉÎÄÅËÓÏÍ
\def\WT#1{\ensuremath{\mathop{\mathrm{WT}\left(#1\strut\right)}}} % ×ÅÊ×ÌÅÔ-ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ
\def\ZT#1{\mathop{\mathcal{Z}}\nolimits\left(#1\right)} % Z-ÐÒÅÏÂÒÁÚÏ×ÁÎÉÅ

82
Komp_obr_SFedU/lst.sty Normal file
View File

@ -0,0 +1,82 @@
% lstlistings for bash & octave
\usepackage{listings}
\lstset{basicstyle=\small,breaklines=true,language=Octave,
extendedchars=true,aboveskip=1em,belowcaptionskip=5pt,
prebreak =
\hbox{\normalfont\small\hfill\green{\ensuremath{\hookleftarrow}}},
postbreak = \hbox to 0pt{%
\hss\normalfont\small\green{\ensuremath{\hookrightarrow}}\hspace{1ex}},
commentstyle=\color{blue},showspaces=false,
showstringspaces=false,stringstyle=\bfseries\color[rgb]{0.6,0,1},
numbers=left,numberstyle=\tiny,stepnumber=2,
keywordstyle=\bfseries\color[rgb]{0,0.1,0.5},
frameround=tttt,frame=trBL,tabsize=4,backgroundcolor=\color[rgb]{.9,.9,1}}
\lstloadlanguages{bash}
\def\lstlistingname{ìÉÓÔÉÎÇ}
\def\lstref#1{(ÓÍ.~ÌÉÓÔÉÎÇ~\ref{#1})}
%\lstinputlisting[caption={{\tt prepare\_all.m} --- ÍÏÄÅÌÉÒÏ×ÁÎÉÅ ÐÏÌÕÞÅÎÉÑ
% ÐÒÅÄ-- É ÚÁÆÏËÁÌØÎÏÊ ÇÁÒÔÍÁÎÎÏÇÒÁÍÍÙ ÎÁ
% âôá},label=prepareall]{diff/prepare_all.m}
%\lstdefinelanguage{pseudo}{
% morekeywords={ÅÓÌÉ, ÉÎÁÞÅ, ÄÌÑ, ×, ÏÔ, ÄÏ, ×ÁÒÉÁÎÔ, ×ÙÐÏÌÎÉÔØ, ÉÓÔÉÎÁ, ÌÏÖØ, ÆÕÎËÃÉÑ,
% ×ÅÒÎÕÔØ, ÐÏ, ÍÏÄÕÌÀ, ÚÎÁÞÅÎÉÅ, É, ÉÌÉ, ÎÅ},
% sensitive=true,%
% morecomment=[l]\#%
%}
%\lstset{language=pseudo}
%\lstset{literate=
% {<=} {$\le$}{2} {!=} {$\neq$}{2} {=} {$\leftarrow$}{2} {==} {=}{2} {&&} {$\cap$}{2} {||}
% {$\cup$}{2} }
%\lstset{extendedchars=true,escapechar=`,commentstyle=\footnotesize\itshape,
% stringstyle=\bfseries,numbers=left,frame=tbrL,rulesepcolor=\color{gray},
% basicstyle=\small,breaklines=true,frameround=tttt}
%\begin{document}
% \begin{lstlisting}
% ÆÕÎËÃÉÑ ÐÏÌÕÏÔËÒÙÔÁÑ_ÐÉÒÁÍÉÄÁ(v, u){
% u' = ÓÐÒÏÅËÔÉÒÏ×ÁÔØ u ÎÁ ÐÌÏÓËÏÓÔØ yz
% ÄÌÑ i ÏÔ 0 ÄÏ 3{
% v[i] = v[i] - u
% v'[i] = ÓÐÒÏÅËÔÉÒÏ×ÁÔØ v[i] ÎÁ ÐÌÏÓËÏÓÔØ yz
% }
% Nc = 0
% ÄÌÑ i ÏÔ 0 ÄÏ 3{
% v1 = v' \ v'[i] # ÆÏÒÍÉÒÕÅÍ ÏÞÅÒÅÄÎÏÊ ÔÒÅÕÇÏÌØÎÉË
% n = ÐÏÌÕÏÔËÒÙÔÙÊ_ÔÒÅÕÇÏÌØÎÉË(v1, u')
% ÅÓÌÉ n > 0{
% f0 = ÚÎÁÞÅÎÉÅ ÆÕÎËÃÉÉ × (0,0)
% f1 = ÚÎÁÞÅÎÉÅ ÆÕÎËÃÉÉ × (1,0)
% ÅÓÌÉ f0 * f1 < 0
% Nc = Nc + 1
% ÉÎÁÞÅ ÅÓÌÉ |f0| > |f1|
% Nc = Nc + 1
% }
% }
% ×ÅÒÎÕÔØ Nc ÐÏ ÍÏÄÕÌÀ 2
% }
% \end{lstlisting}
%
% \begin{lstlisting}
% ÆÕÎËÃÉÑ ÐÏÌÕÏÔËÒÙÔÙÊ_ÔÒÅÕÇÏÌØÎÉË(v, u){
% ÄÌÑ i ÏÔ 0 ÄÏ 2
% v[i] = v[i] - u
% Nc = 0
% ÄÌÑ i ÏÔ 0 ÄÏ 2{
% j = (i+1) ÐÏ ÍÏÄÕÌÀ 3
% ÅÓÌÉ v[i] É v[j] ÐÅÒÅÓÅËÁÀÔ ÏÓØ è{
% f0 = ÚÎÁÞÅÎÉÅ ÆÕÎËÃÉÉ × (0,0)
% f1 = ÚÎÁÞÅÎÉÅ ÆÕÎËÃÉÉ × (1,0)
% ÅÓÌÉ f0 * f1 < 0
% Nc = Nc + 1
% ÉÎÁÞÅ ÅÓÌÉ |f0| > |f1|
% Nc = Nc + 1
% }
% }
% ×ÅÒÎÕÔØ Nc ÐÏ ÍÏÄÕÌÀ 2
% }
% \end{lstlisting}
%
%\end{document}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

BIN
Komp_obr_SFedU/pic/ADC.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

BIN
Komp_obr_SFedU/pic/CMYK.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

BIN
Komp_obr_SFedU/pic/DAC.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 482 KiB

BIN
Komp_obr_SFedU/pic/MF3.pdf Normal file

Binary file not shown.

BIN
Komp_obr_SFedU/pic/MF5.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
Komp_obr_SFedU/pic/RGB.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

BIN
Komp_obr_SFedU/pic/SNR.pdf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

BIN
Komp_obr_SFedU/pic/chi2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Some files were not shown because too many files have changed in this diff Show More