Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов
Шрифт:
Интервал:
Закладка:
Для присваивания переменным конкретных значений используется комбинированный символ присваивания «:=», например:
n:=1 — переменной n присваивается целочисленное значение 1;
х:=123.456 — переменной х присваивается вещественное значение 123.456;
у:=17/19 — переменной у присваивается рациональное значение 17/18;
name:=`Piter` — переменной name присваивается строковое значение `Piter`;
expr:=2*Pi/3 — переменной expr присваивается значение выражения 2л??!!/3;
V:=[1,2,3] — переменной V присваивается значение списка чисел [1,2,3];
М:=[[1,2,3],[4,5,6]] — переменной М присваивается значение двумерного массива;
f:=x->x^2 — переменной f присваивается значение функции пользователя f(x)=x^2.
Правая часть выражения присваивания определяет тип переменной. Например, она может быть целочисленной, действительной, строковой, индексированной (элемент массива) и т.д.
2.6.4. Отмена операции присваивания и команда restart
Переменная, имеющая какое либо значение, занимает в памяти намного больше места, чем неопределенная переменная. У последней место в памяти занимают только символы идентификатора. Поэтому нередко целесообразно отменить присваивание у тех переменных, которые в дальнейшем можно не использовать. Это может понадобиться и в том случае, когда какую-либо переменную с численным или иным значением нужно использовать просто как неопределенную переменную. Рассмотрим следующий пример:
> х:=10;
х:= 10> х;
10> int(х^2,x);
Error, (in int) wrong number (or type) of arguments
Здесь не удалось вычислить интеграл с подынтегральной функцией х^2 из-за того, что переменная х уже определена ранее как целочисленная переменная со значением 10, тогда как для вычисления интеграла она должна быть необъявленной или строковой (убедитесь в этом сами).
Для отмены присваивания надо использовать следующее выражение:
> х: =`х`;
х: = хИтак, заключение имени переменной в прямые апострофы ликвидирует присваивание. Так что запись х:=`х` означает, что переменной х возвращается статус неопределенной переменной. Теперь можно вычислить интеграл:
> int(х^2,х);
⅓x³Можно сделать переменную х неопределенной и с помощью выражения вида x:=evaln(x). Это поясняет следующий пример:
> х:=123;
x:= 123> x:=evaln(x);
х:=х> int(х^n,х);
Для отмены присваивания значений разом всем переменным (и введенным функциям пользователя) можно использовать команду restart. Следующий пример поясняет ее применение:
> х:=5;
x: = 5> х^2;
25> restart;
> х;
x> х^2;
х²Следует отметить, что команда restart отменяет все предшествующие определения, что иногда чревато осложнениями. Применяйте ее только тогда, когда вы уверены, что предшествующая заданной часть документа (или даже ряда документов) действительно не важна.
Важно отметить, что Maple сохраняет в памяти все определения и присваивания, которые были сделаны во всех загруженных в систему документах. Поэтому результаты вычислений в текущем документе могут зависеть от определений в других документах. Команда restart позволяет исключить эту зависимость.
2.6.5. Придание переменным статуса предполагаемых
В большинстве расчетов пользователей Maple вполне удовлетворяет статус переменных, соответствующий присвоенным им значениям. Однако серьезные расчеты предполагают, что переменные могут иметь определенные ограничения — например, они не должны принимать отрицательных значений при обычном вычислении квадратного корня или логарифма числа.
Для придания переменным статуса предполагаемых используется функция assume:
assume(x,prop)
где х — переменная, имя или выражение, prop — свойство. Следующие примеры (файл assume) показывают применение функции assume:
> restart;
> assume(х,positive);
> х;
х~> s:=x->sqrt(х);
s:= х →√x> s(2);
√2> s(2.);
1.414213562> s(-2);
I√2> is(x,positive);
true> is(x,negative);
false>> about(x);
Originally x, renamed x~: is assumed to be: RealRange(Open(0), infinity)
Обратите внимание, что в этом примере переменная х помечена как положительная и при выводе сопровождается знаком тильды ~, как бы предупреждающем нас о ее особом статусе. Это не означает, что она не может принять отрицательное значение. Однако с помощью функции is можно убедиться в ее особом статусе и при необходимости программным путем исключить вычисления для х<0. Кроме того, о свойствах переменной можно узнать с помощью функции about(name).
Иногда к уже имеющимся признакам надо добавить новые. Для этого используется функция additionally:
> assume(a,nonnegative);
> additionally(а<=0);
> about(а);
Originally a, renamed а~: is assumed to be: 0
В этом примере переменной а вначале задан признак положительности, а затем а<=0. Оба признака удовлетворяются только при a=0, что и подтверждает вывод информации о статусе этой переменной функцией about(a).
Предполагаемую переменную можно также изменить путем присваивания ей нового значения, противоречащего ее статусу:
> а:=123;
a:=123> about(а);
123:
All numeric values are properties as well as objects. Their location in the property lattice is obvious, in this case integer.
Для отмены переменным статуса предполагаемых используются те же приемы, что и при отмене присвоенного значения. Например, запись х:='х' отменяет статус предполагаемой для переменной х.
2.7. Работа с файлами и документами
2.7.1. Типы файлов
К числу широко распространенных данных относятся файловые данные, которые представлены файлами. Файлом называют имеющую имя упорядоченную совокупность данных, размещенную на том или ином носителе — обычно на жестком, гибком или компакт-диске.
В Maple используются файлы различных форматов, который указывается расширением файла (знак * означает произвольное имя файла):
*.ms — файлы документов для систем с графическим интерфейсом (Windows/Macintosh);
*.msw — файлы документов (Worksheets);
*.txt — текстовые файлы (включая формат Maple-текст);
*.tex — файлы в формате LaTeX;
*.ind и *.lib — файлы библиотек.
*.m — файлы внутреннего Maple-языка.
Работа с файлами документов удобна с применением команд меню и панели инструментов (см. Главу 1). Предусмотрена возможность записи документов и в особом формате LaTeX, предназначенном для создания книг и статей по математике. Текстовые файлы (с расширением .txt) можно просматривать и редактировать текстовыми редакторами, работающими с ASCII-кодировкой.
Важно отметить, что даже при записи документов со сложными рисунками используется не прямая запись их растровой или векторной копии, а сохранение данных для построения графиков. Поэтому размеры файлов Maple невелики и их легко передавать по современным средствам телекоммуникаций, например, по сети Интернет. Они требуют небольшого свободного пространства на дисках для записи. Тем не менее, чем сложнее график, содержащийся в документе, тем больше объем памяти, необходимой для хранения файла. Помимо обычных операций по работе с файлами (запись на диск и загрузка с диска) предусмотрены возможности распечатки документов принтерами различного типа.
2.7.2. Запись данных в файлы
Обширные возможности Maple делают привлекательным применение этой программы для автоматической обработки данных, поступающих от каких-либо экспериментальных установок. Для этого установки снабжаются интерфейсными платами (например, аналого-цифровыми преобразователями) и необходимым программным обеспечением. Возможна и передача данных, полученных с помощью Maple 9.5, в экспериментальные установки.
Обмен информацией между Maple и внешней средой (к ней, кстати, относятся и другие программы) чаще всего осуществляется через файлы текстового формата, поскольку именно с такими файлами могут работают практически все программы. Для записи данных в файл служит оператор writedata:
writedata[APPEND](fileID, data)
writedata[APPEND](fileID, data, format)
writedata[APPEND](fileID, data, format, default)
Здесь fileID — имя или дескриптор файла данных, data — список, вектор или матрица данных, format — спецификация формата данных (integer, float или string), default — процедура, задающая запись нечисловых данных, например: