Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
Задание данных только вещественного типа — RealOnly | Учебники

Главная > Mathematica 8 > Задание данных только вещественного типа — RealOnly


Задание данных только вещественного типа — RealOnly

Задание данных только вещественного типа — RealOnly
В ряде случаев (как при вычислениях, так и при построении графиков) Mathematica сообщает о наличии у функций особых значений. Это хорошо иллюстрирует, на котором предпринята попытка построения графика, казалось бы, простой функции х^ (1/3). Нетрудно заметить, что график в отрицательной области значений х не построен и перед построением неполного графика выдан целый букет предупреждающих сообщений.
Причина этой частичной неудачи в том, что в некоторых точках данная функция дает комплексные значения. Например:
(-8.0) ^ (1/3)
1. + 1.732051
 Подпакет ReaLOnly не вводит никаких новых функций. Он просто превращает данные последующих вычислений в чисто вещественные. Так что после его загрузки построение графика указанной функции проходит без каких-либо проблем.
Разумеется, подобное свойство нужно далеко не всегда и при неумелом его применении способно привести к ошибочным результатам. Тем не менее, есть случаи (см. приведенный пример), когда оно полезно.
Пакет расширения с утилитами— Utilities
 
Утилитами принято называть небольшие программы, в основном вспомогательного назначения. Они предназначены чаще всего для работы с файлами и памятью компьютера. Ряд таких утилит включен в пакет расширения Utilities, знакомству с которым и посвящен данный небольшой раздел.
Работа с бинарными файлами — BinaryFiles
В подпакете BinaryFiles имеются типовые функции для работы с бинарными файлами:

  • OpenReadBinary [ "filename" ] — открытие файла для считывания бинарных данных;
  • OpenWriteBinary["filename"] — открытие файла для записи бинарных данных;
  • OpenAppendBinary ["filename"] — открытие файла для добавления данных в конец;
  • ReadBinary [stream, type] — считывает бинарные данные из потока;
  • ReadBinary [ stream, expr ] — считывает из потока бинарные данные, типы которых определяются выражением ехрг.

Функции
ReadListBinary[filename,type]
ReadListBinary[stream,type, n]
ReadListBinary[stream,type]
 оперируют с данными в виде списков, а функция WriteBinary [stream, data] записывает данные в поток в бинарной форме. Примеры применения этих функций представлены ниже:
<< Utilities`BinaryFiles`
data = N[Table[10^n, {n, -10, 10}]]
{l.x l10-10, 1.x 10-9, 1.x 10-8, 1.x 10-7, 1.x 10-6, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1., 10., 100.-, 1000., 10000., 100000., 1.x 106, 1.x 107, 1.x 108, 1.x 109, 1.x 1010}
stream = OpenWriteBinary["binarytest"]
OutputStream["binarytest" , 4]
WriteBinary[stream, data]
Close[stream]
binarytest
ReadListBinary["binarytest", Double]
{1.х10-10, 1. xlO-9, 1. x10-8, 1.x 10-7, 1.x 10-6, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1., 10., 100., 1000., 10000., 100000., 1.x 106, 1.x 107, l.xl08, 1.x 109, 1.x 1010}
ReadListBinary["binarytest", Signedlntl6, 5]
{15835, 31967,-9769, -16965, 15889}
Для конвертирования выражений ехрг в байтовый формат служат функции ТоBytes[expr] и ToBytes[expr, type].
Например:
ToBytes[-34.3421435]
{192, 65, 43, 203, 91, 128, 0, 0}
ToBytes[-34.3421435, CString]
{45, 51, 52, 46, 51, 52, 50, 49, 52, 51, 53, 0}
 
Запись графических объектов в файл формата DXF
В широко распространенных графических системах AutoCAD используется формат файлов DXF. Подпакет DXF позволяет записывать графические объекты Mathematica в этом формате с помощью функции WriteDXF["filename", graphics].
Здесь filename — имя файла, a graphics — имя предварительно созданного графического объекта. Применение данной функции вполне очевидно.
Фильтрация опций — FilterOptions
В ряде случаев возникает необходимость в передаче опций из одной функции в другую. При этом передавать нужно не- все опции, а только те из них, которые имеют смысл для вызываемой функции. В подпакете FilterOptions имеется функция, позволяющая фильтровать опции:

  • FilterOptions [symbol, optl, opt2,…] — возвращает набор опций, применимых к объекту symbol.

Рисунок поясняет применение опции фильтрации для создания графической функции Plotlntegrate, строящей график интеграла от заданной функции. Показан также пример построения графика интеграла от функции Cos [x] в интервале от 0 до 2п. Как и следовало ожидать, график функции очень близок к синусоиде.
Вы можете опробовать действие этой графической функции и на других примерах (желательно, чтобы интегрируемая функция не имела особенностей в пределах области построения графика).
Уплотнение памяти — MemoryConserve
Подпакет MemoryConserve в дополнение к имеющейся в ядре функции освобождения памяти Share [ ] содержит две директивы управления памятью:

  • On [MemoryConserve] — включает автоматическое сжатие занимаемой системой памяти;
  • Off [MemoryConserve] — отключает автоматическое сжатие памяти. Ниже демонстрируется применение этого подпакета:

<<Utilities ‘MemoryConserve’ $MemoryIncrement
100000
ТаЫе[ ToString[0], {2^15} ] ;
Length[ % ]
MemoryConserve::start : Running Share[] to conserve memory. MemoryConserve::end : Finished running Share[];
929200 bytes of memory freed.
32768
Off[ MemoryConserve ]
On[ MemoryConserve ]
 

Данная утилита полезна лишь при использовании системы Mathematica на компьютерах с малым объемом оперативной памяти.

Статьи по теме

Комментарии запрещены.