Записи с меткой «возможностями»

Директивы двумерной графики

Директивы двумерной графики
Еще одним важным средством настройки графиков являются графические директивы. Синтаксис их подобен синтаксису функций. Однако директивы не возвращают объектов, а лишь влияют на их характеристики. Используются следующие основные директивы двумерной графики:

  • AbsoluteDashing [ {dl, d2,…}]— задает построение последующих линией пунктиром со смежными (последовательными) сегментами, имеющими абсолютные длины dl, d2, … (повторяемые циклически). Значения длины di задаются в пикселях;
  • AbsolutePointSize [d] — задает построение последующих точек графика в виде кружков с диаметром d (в пикселях);
  • AbsoluteThickness [d] — задает абсолютное значение толщины (в пикселях) для последующих рисуемых линий;
  • Dashing [{rl, r2,…}] — задает построение последующих линий пунктиром с последовательными сегментами длиной rl, г2, …, повторяемыми циклически, причем ri задается как доля полной ширины графика;
  • PointSize [d] — задает вывод последующих точек графика в виде кружков с относительным диаметром d, заданным как доля общей ширины графика;
  • Thickness [r] — устанавливает для всех последующих линий толщину г, заданную как доля полной ширины графика.

Рисунок показывает построение графика функции Бесселя в виде пунктирной линии. Она задается с помощью графической директивы Dashing.
Применение графических директив совместно с опциями позволяет создавать графики самого различного вида, вполне удовлетворяющие как строгим требованиям, так и различным «извращениям» в их оформлении. далее…

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

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

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

Графика, как важнейшее средство визуализации вычислений, всегда была козырной картой системы 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 }

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

Использование файлов других языков программирования

Использование файлов других языков программирования
 
Из функций для работы с файлами особо надо отметить следующую функцию-директиву:

  • Splice [ "file .mx" ] — вставляет в файлы на других языках программирования вычисленные выражения системы Mathematica, которые должны быть записаны в скобках вида <* и *>;
  • Splice ["infile", "outfile"] — читает файл infile, интерпретирует фрагменты, содержащиеся между скобками <* и *>, и записывает результат в файл outfile.

Эта возможность особенно существенна при использовании программ на языках программирования С (расширение .me), Fortran (расширение .mf) и ТеХ (расширение .mtex), для форматов которых Mathematica имеет средства конвертирования выражений (CForm, FortranForm и TexForm соответственно). Таким образом, имеется возможность экспорта выражений системы Mathematica в программы, составленные на этих языках.
Поясним применение функции-директивы Splice. Пусть имеется экспортированная программа на языке С, которая должна рассчитывать численное значение некоторого интеграла, и мы хотим получить формулу для этого интеграла средствами системы Mathematica. Допустим, она представлена файлом demo.me. Его можно просмотреть следующим образом:
!!demo.me
#include "mdefs.h"
double f(x)
double x;
{
double y;
у = <* Integrate[Sin[x]^5, x] *> ;
return (2*y- 1) ;
}
После исполнения функции Splice ["demo.me"] программа будет записана в файл demo.с, в котором выражение в скобках <*…*> заменено вычисленным значением интеграла (в форме CForm). Файл при этом будет выглядеть так:
!!demo.с
#include "mdefs.h" double f(x) double x;
{
double y;
у = -5*Cos(x)/8 + 5*Cos(3*x)/48- Cos(5*x)/80 ;
return (2*y- 1) ;
}
Запись определений
Из простых функций, обеспечивающих создание файлов с заданными определениями, надо отметить также функцию Save:
Save ["filename", symb1, symb2,…]
Она добавляет определения символов symbi к файлу filename (возможны упрощенные формы Save).
Приведем пример ее использования:
f[x_] = Sin[x] + y
у+ Sin[x]
у=а
а
Save["demol",f]
!!demol
f[x_] = у + Sin[x]
у = а
 
Другие функции для работы с файлами
 
В целом средства системы Mathematica обеспечивают возможности работы с различными файлами, присущие MS-DOS, без выхода из среды системы. Относящиеся к этой группе функции даны в приложении. Для этих функций характерно, что в момент выполнения они не дают видимого эффекта. далее…

Потоки и файлы

Потоки и файлы
 
Система Mathematica имеет развитые средства для работы с потоками (streams) и файлами (files). Под потоком подразумевается непрерывная последовательность данных, циркулирующих внутри компьютера. Обмен потоками происходит практически непрерывно, например, при вводе поток ввода поступает от клавиатуры в компьютер, при печати поток данных поступает от компьютера в принтер через порт принтера и т. д.
Файлом является упорядоченная структура данных, имеющая имя и хранящаяся на каком-либо носителе, чаще всего на магнитном диске. Файлы могут иметь различные форматы и различный тип доступа к хранимой на них информации. Наиболее распространенные в системе Mathematica файлы документов являются файлами с последовательным доступом и имеют текстовый формат.
Последовательный доступ означает, что информация из открытого файла может быть считана строго последовательно от его начала до конца, отмеченного специальной меткой. Это напоминает считывание с магнитофонной кассеты. Текстовый формат означает, что все данные записаны в виде ASCII-кодов. далее…

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

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

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

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