Записи с меткой «символьного»

Сглаживание данных — DataSmoothing

Сглаживание данных — DataSmoothing
В подпакете DataSmoothing определены функции для сглаживания данных, имеющих большой случайный разброс. К таким данным обычно относятся результаты ряда физических экспериментов, например по энергии элементарных частиц, или сигналы, поступающие из космоса. Для того чтобы отсеять информацию из таких данных с большим уровнем шумов и применяется процедура сглаживания. Она может быть линейной (например, усреднение по ряду точек) или нелинейной.
Определены следующие функции сглаживания:

  • MovingAverage [data, r] — сглаживание данных data методом усреднения для г точек;
  • MovingMedian [data, r] — сглаживание данных data по медиане для г точек (опция RepeatedSmoothing->True используется для повторного сглаживания);
  • LinearFilter [data, {c0, cl,…, сr-1} ] — линейная фильтрация (сj— весовые множители);
  • ExponentialSmoothing [data, a] — экспоненциальное (нелинейное) сглаживание, параметр а задает степень сглаживания.

Ниже представлены результаты сглаживания символьных данных, выявляющие соотношения, используемые при сглаживании:
ds : = {xl, х2 , хЗ , х4 , х5}
MovingAverage[ds,3]
{1/3* (xl + x2 + x3), — (х2 + хЗ + х4), — (хЗ + х4 + х5)}
MovingMedian[ds,3]
{х2, хЗ, х4}
ExponentialSmoothing[ds, 0.2]
{xl, xl + 0.2 (-xl + x2) , xl+0.2 (-xl + x2) +0.2 (-xl-0.2 (-xl + x2) + x3) , xl+0.2(-xl+x2)+0.2 (-xl-0.2 (-xl + x2) +x3) +
0.2 (-xl-0.2 (-xl+x2) — 0.2 (-xl- 0.2 (-xl + x2) + x3) + x4) , xl+0.2(-xl + x2) +0.2(-xl-0.2(-xl + x2) +x3) + 0.2 (-xl- 0.2 (-xl+x2) -0.2(-xl-0.2(-xl + x2) + x3) + x4) + 0.2 (-xl- 0.2 (-xl+x2) — 0.2 (-xl- 0.2 (-xl+x2) + x3) —
0.2 (-xl-0.2 (-xl+x2) -0.2 (-xl-0.2 (-xl + x2) + x3) + x4) + x5)}
Применение сглаживания усреднением иллюстрирует. На нем задан массив (таблица) из 500 случайных точек с равномерным распределением и создан графический объект из этих точек в виде кружков малого диаметра. далее…

Построение гистограмм

Построение гистограмм
Ряд функций служит для подготовки данных с целью построения гистограмм:

  • Frequencies [list] — готовит данные для представления частотной гистограммы;
  • QuantileForm[list] — дает отсортированные данные для представления квантилей;
  • CumulativeSums [list] — дает кумулятивное суммирование данных списка.

Пример построения гистограммы по данным списка из двойных элементов с помощью функции Frequencies дан на. Для построения графика при этом использована функция BarChart из пакета расширения Graphics.
Для подготовки гистограмм могут использоваться и следующие функции:
BinCounts[data,{min,max,dx}]
RangeCounts [data, {cl, c2,…} ]
CategoryCounts [data, {el, e2,…} ]
BinLists[data,{min,max,dx}]
RangeLists [data, {cl,c2,…} ]
CategoryLists [data, {el, e2,…} ]
С примерами их работы можно ознакомиться по справочной системе Mathenatica, содержащей полное описание данного подпакета.
 
Статистика распределений — DescriptiveStatistics
В подпакете DescriptiveStatistics сосредоточены наиболее важные функции по статистике распределений:

  • CentralMoment (data, r) — возвращает центральный момент данных data порядка r;
  • Mean [data] — возвращает среднее значение данных data;
  • MeanDeviation [data] — возвращает среднее отклонение данных;
  • Median [data] — возвращает центральное значение (медиану) данных;
  • MedianDeviation [data] — возвращает абсолютное отклонение (от медианы) данных;
  • Skewness [data] — возвращает коэффициент асимметрии данных;
  • StandardDeviation [data] — возвращает стандартное отклонение данных;
  • GeometricMean [data] — возвращает геометрическое среднее данных;
  • HarmonicMean [data] — возвращает гармоническое среднее данных;
  • RootMeanSquare [data] — возвращает среднеквадратичное значение данных;
  • Quantile [data, q] — возвращает q-й квантиль;
  • InterpolatingQuantile [data, q] — возвращает q-й квантиль, используя при вычислениях интерполяцию данных;
  • VarianceData [data] — возвращает среднеквадратичное отклонение данных.

Мы не приводим определений этих функций, поскольку при символьных данных data их легко получить именно в том виде, который реализован в системе Mathematica:
ds={xl,x2,x3} {xl, x2, хЗ}
Mean[ds]
1/3 *(xl + x2 + x3)
MeanDeviation[ds]
1/3 (Abs[xl + — (-xl-x2-x3)] +
Abs[x2+ 1/3 (-xl-x2-x3) + Abs 1/3[-xl-x2-x3) +хЗ])
Median[ds]
x2
Variancefds]
1/2((x1+1/3(-xl + x2 — x3))2 + (x2 + 1/3 (-xl-x2-x3))2 + (— (-xl-x2-x3) + x3)2)
Skewness[ds]
(SQRT(3) ( (xl 4- -1 (-xl — x2 — x3))3 +
(x2+1/3 (-xl-x2-x3))3 + (1/3 (-xl -x2- x3) + x3))2 /
(x2+ 1/3 (-xl-x2-x3))2 +(1/3 (-xl-x2-x3) +х3)2 )^(3/2)
Следующие примеры поясняют действие этих функций при обработке численных данных:
<<Statistics’DescriptiveStatis tics’
data:={10.1,9.6,11,8.2,7.5,12,8.6,9}
CentralMoment[data,2]
1.9525
Mean[data]
9.5
MeanDeviation[data]
1.175
Median[data]
9.3
MedianDeviation[data]
0.95
Skewness[data]
0.374139
StandardDeviation[data]
1.4938
GeometricMean[data]
9.39935
HarmonicMean[data]
9.30131
RootMeanSquare[data]
9.60221
Quantile[data,1]
12
InterpolatingQuantile[data,1]
InterpolatingQuantile[
{10.1, 9.6, 11, 8.2, 7.5, 12, 8.6, 9), 1]
Variance[data]
2.23143

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

Графика и звук

Графика и звук

  • Двумерные и трехмерные графики
  • Опции графических функций
  • Графические директивы
  • Построение графиков лоточкам
  • Получение информации о графических объектах
  • Перестройка и комбинирование графиков
  • Примитивы двумерной и трехмерной графики
  • Импорт графических изображений
  • Вставка объектов
  • Синтез звуков

Графика, как важнейшее средство визуализации вычислений, всегда была козырной картой системы Mathematica и во многом способствовала ее высокой репутации как мирового лидера среди систем компьютерной математики. Обширные графические возможности достигаются при небольшом числе встроенных функций графики за счет их модификации с помощью опций и директив. Благодаря этому Mathematica позволяет строить практически любые виды графиков. Для просмотра и изменения опций графика можно (выделив ячейку с графиком) воспользоваться описанным ранее инспектором опций, в котором есть соответствующий раздел. Однако в этом уроке мы инспектором опций пользоваться не будем — все необходимые опции будут вводиться в соответствующие функции так, как это принято делать при программировании задач графики.
Двумерная графика
 
Графическая функция Plot
Концептуально графики в системе Mathematica являются графическими объектами, которые создаются (возвращаются) соответствующими графическими функциями. Их немного, около десятка, и они охватывают построение практически всех типов математических графиков. Как уже отмечалось, достигается это за счет применения опций и директив.
Поскольку графики являются объектами, то они могут быть значениями переменных. далее…

Функции времени и даты

Функции времени и даты
Для управления системой в процессе вычислений служат системные директивы и функции. Некоторые из них широко используются при программировании решения прикладных задач, другие служат в основном для контроля над системой.
Имена многих, вспомогательных с точки зрения конечного пользователя, системных функций начинаются с символа $. Ниже описаны основные системные функции.
Ряд системных функций служит для получения информации о времени и текущей дате:

  • AbsoluteTime[ ] — возвращает полное количество секунд, прошедших с момента 1 января 1900 г.;
  • $CreationDate — возвращает дату и время создания используемой версии системного ядра Mathematical
  • Date [ ] — возвращает текущее значение даты и времени в виде {год, месяц, день, час, минута, секунда};
  • FromDate [date] — превращает дату date вида {год, месяц, день, час, минута, секунда} в число секунд, прошедших с 1 января 1900 г.;
  • TimeUsedt ] — возвращает полное количество секунд процессорного времени, использованного на данный момент в текущем сеансе Mathematical
  • $TimeUnit — возвращает минимальный временной интервал в секундах, который можно зарегистрировать в вашей компьютерной системе;
  • TimeZone [ ] — возвращает часовой пояс, установленный для вашей компьютерной системы;
  • Timing [ехрг] — вычисляет ехрг и возвращает список, состоящий из значения затраченного времени и результата вычислений;
  • ToDate [time] — преобразует абсолютное время в секундах, прошедшее с 1 января 1900 г., в дату вида {год, месяц, день, час, минута, секунда}.

Следующие примеры иллюстрируют применение некоторых из этих функций.

Ввод (In)

Вывод (Out)

AbsoluteTime [ ]

2967708137

Date[]

{2000, 7, 16,11, 23, 8}

FromDate [ {2000 ,7,15,4,51,30}]

3172625490

SessionTime[]

8171.1

TimeUsedf]

69.57

Их действие вполне очевидно и не требует комментариев.
Общесистемные функции
 
Ниже представлены функции общесистемного характера:

  • $Aborted — возвращает сообщение о прекращении вычислений при их прерывании функцией Abort [ ];
  • AbortProtect [ехрг] — вычисляет ехрг, запоминая все попытки прерывания, но не выполняя их до тех пор, пока не будет завершено вычисление либо пока не будет вызвана процедура CheckAbort;
  • Accuracy [x] — указывает число цифр в числе х после десятичной точки, которое используется при вычислениях;
  • ByteCount [expr] — возвращает число байт, которое используется для представления выражения ехрг;
  • Environment [ "var" ] — возвращает значение переменной окружения операционной системы с именем "var";
  • $ Line — глобальная переменная, указывающая номер текущей строки ввода;
  • $MachineEpsilon — возвращает машинную точность представления — наименьшее число, которое, будучи прибавленным к 1.0, даст результат, отличный от 1.0;
  • $MachineID — строка, которая возвращает, если возможно, уникальный код идентификации применяемого компьютера;
  • $MachineName — строка, возвращающая имя, которое присвоено используемому компьютеру, если такое имя определено;
  • $MachinePrecision — возвращает количество десятичных знаков точности представления чисел;
  • $MachineType — строка, возвращающая общий тип компьютера, на котором запущена система Mathematical
  • $MinMachineNumber — наибольшее машинно-представимое число, которое может применять данная компьютерная система;
  • $MaxNumber — возвращает наибольшее из представимых в системе Mathe-matica чисел;
  • $MinMachineNumber — наименьшее положительное машинно-представимое число, которое может применять данная компьютерная система;
  • $MinNumber — возвращает наименьшее (положительное) представимое в системе Mathematica число;
  • $OperatingSystem — строка, дающая тип операционной системы, под управлением которой работает Mathematica;
  • Pause [n] — выдерживает паузу не менее п секунд;
  • $ReleaseNumber — целое число, которое дает младший номер версии ядра данной системы Mathematica;
  • $Remote — имеет значение True, если Mathematica применяется в дистанционном режиме или с программным препроцессором, иначе — значение False;
  • $SessionID — уникальный номер, который присвоен данному сеансу системы Mathematica;
  • SessionTime[ ] — возвращает полное число секунд реального времени, прошедшего с момента начала вашего сеанса работы в системе Mathematica; —
  • $System — представляет собой строку с указанием типа используемой компьютерной системы;
  • $Version — символьная строка, которая представляет используемую версию системы Mathematica;
  • $VersionNumber — вещественное число, которое дает полный номер текущей версии системного ядра Mathematica.

Ниже приведены примеры использования ряда общесистемных функций.

Ввод (In)

Вывод (Out)

Accuracy [12. 34]

15

ByteCount [Exp [x] A 2/a]

120

$Version

4.0 for Microsoft Windows (April 21, 1999)

$ System

Microsoft Windows

$Path

{C:\Program FilesXCommon Files\Mathematica\ 4.0\Kernel, C:\Program FilesXCommon Files\ Mathematical . 0\AddOns\Autoload, … }

$OperatingSystem

Windows 9 5

$MachineEpsilon

2.22045xl0 -16

$MaxMachineNumber

1.79769xl0 308

$MinMachineNumber

2.22507×10 -308

$MachinePrecision

16

$Packages

{Global 4 , System 4 }

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

Удаление введенных в ходе сессии определений

Удаление введенных в ходе сессии определений
Мы уже не раз отмечали возможность уничтожения введенных в ходе сессии определений. Приведем в систематизированной форме функции, используемые для этого:

  • Clear [symbol1, symbol2,…] — стирает значения и определения для указанных символов (идентификаторов);
  • Clear ["pattern1", "pattern2",…] — стирает значения и определения для всех символов, чьи имена подходят под любой из указанных строковых шаблонов;
  • ClearAll [symboll, symbo!2,…] — стирает все значения, определения, атрибуты, сообщения и значения, принятые по умолчанию, связанные с указанными символами;
  • ClearAll ["patternl", "pattern2",…] — стирает все символы, чьи имена буквально подходят к одному из указанных строковых образцов;
  • ClearAttributes [s, attr] — удаляет attr из списка атрибутов символа s.

Применение большинства этих функций полезно разработчику серьезных приложений для систем Mathematica, например новых пакетов расширений и применений системы. В то же врем-я, для большинства пользователей вполне достаточно возможностей, предоставляемых системой по умолчанию — средств диалога с ее оболочкой и функций Input и Print.
Работа со строками
Хотя Mathematica ориентирована на математические приложения, в ней достаточно полно представлены функции для работы со строками (strings). Они могут потребоваться как для организации вывода текстовых сообщений (например надписей на графиках), так и для организации текстового диалога при разработке пакетов расширений и приложений системы. далее…

Работа с периферийными устройствами

Работа с периферийными устройствами

  • Функции ввода/вывода
  • Работа со строками
  • Потоки и файлы
  • Запись определений
  • Системные функции

Если пользователь использует систему Mathematica для выполнения чисто математических расчетов, то он может ничего не знать о подавляющем большинстве описанных в этом уроке функций. Их основное назначение — незаметная поддержка работы с периферийными устройствами ввода/вывода. Однако все функции этого урока открыты для опытных пользователей, стремящихся использовать систему в составе программных комплексов. Здесь рассматривается только часть функций для работы с периферийными устройствами — даны те из них, которые используются достаточно часто. далее…