суббота, 9 февраля 2013 г.

снимок отдельного окна

Функция вычисления всегоА сейчас я расскажу о том, что было обещано в прошлый раз: о возможностях управлять процессом вычислений вводимых вами выражений. В прошлый раз, о чем я уже вспоминал, было упомянуто только одно такое средствоP блокировка вычислений. Здесь все достаточно просто и дополнительно стоит остановиться только на одном моменте. Если апострофом предварен вызов функции (встроенной ли, пользовательскойP несущественно), то блокируется вычисление самой функции, но не ее аргументов. Если же поставить апостроф перед выражением, заключенным в скобки, то невычисленными останется все это выражение целиком, т.Pе. и все входящие в него функции, и все аргументы этих функций. Например:В противовес блокировке вычислений, можно также принудительно вычислить любое выражениеP для этого тоже существует оператор, состоящий из двух апострофов:В терминологии Maxima невычисленная форма выражения называется «noun form», вычисленнаяP «verb form». Сохраняя лингвистические параллели, на русский я бы это перевел как «несовершённая форма» и «совершённая форма».Если говорить о ячейках ввода-вывода, то значение ячейки ввода в Maxima закономерно сохраняется до его вычисления (т.Pе. в несовершённой форме), а значение ячейки выводаP после (т.Pе. в совершённой); другими словами, тут сохраняется естественный порядок «вводP вычислениеP вывод».Как видите, операторы вычисления и блокировки вычислений имеют

То же самое можно сказать и про кавычку, к которой уже глобально в TeXmacs привязан по умолчанию ввод «фигурных» кавычек. Здесь есть два варианта: либо предварить ввод кавычки нажатием той же самой комбинации Shift+F5; либо поменять умолчательное поведение редактора с помощью пункта меню РедактироватьP ПредпочтенияP КлавиатураP Автоматические кавычкиP НикакихP правда, тогда перед вводом кавычки придется, так же как и для апострофа, переходить внутри математического режима в текстовый.

И второе словоP насчет ввода различных символов, к которым в математическом режиме либо в самом TeXmacs привязаны некоторые клавиатурные сокращения, т.Pе. при простом нажатии на клавишу обычные символы не вводятся, а вместо этого происходит некое другое привязанное к этой клавише действие. Среди таких переназначенных символов, к примеру, $ и \. Для того, чтобы отменить специальное действие и вместо него просто ввести обозначенный на клавише символ, нужно непосредственно перед этой клавишей нажать Shift+F5.

Первое словоP про апостроф, который используется в Maxima для блокировки вычислений. В математическом режиме привычной клавишей вводится несколько другой «апостроф», обозначающий производную. Поэтому для ввода апострофа, блокирующего вычисления, нужно внутри математического режима ввода создать поле текстового вводаP и уже в нем ввести обычный текстовый апостроф. По умолчанию это делается комбинацией клавиш A-$, что в зависимости от настроек TeXmacs может расшифровываться как Alt+Shift+4 или Win+Shift+4. После ввода апострофа можно с помощью стрелки влево выйти из поля текстового ввода и продолжать пользоваться всеми прелестями ввода математического.

О работе в математическом режиме ввода редактора TeXmacs

Тихон Тарнавский. Maxima. Функции и операторы // Maxima CAS Pg Тихон Тарнавский. Maxima. Функции и операторыВпервые было опубликовано в « » .Операторы МаксимыПродолжаю знакомить вас с возможностями свободной программы символьных вычислений Maxima. Начну в этот раз с краткого рассказа об основных операторах Maxima и некоторых их свойствах.На самом деле в Максиме нет четкого разграничения между операторами и функциями. Более того, каждый операторP это на самом деле функция:Здесь имена функций-операторов берутся в кавычки лишь потому, что содержат символы, нестандартные для имен функций. Это похоже на работу в командной оболочке UNIX, где, если в имя файла входят управляющие символы, вы можете либо взять это имя в кавычки, либо экранировать каждый такой символ обратным слэшем. В Maxima допустимы те же два варианта: например, вместо "+" можно было бы написать \+.Итак, все встроенные операторы максимы являются функциями; более того, вы можете наделить любую (в том числе свою собственную) функцию определенными свойствами, которые фактически превратят ее в оператор. Подробнее об этом я расскажу в следующих выпусках.Таким образом, разделение на функции и операторы в Maxima достаточно условно. Посему в этом разделе речь пойдет не только о некоторых операторах, но и о нескольких функциях, которые по природе своих действий сходны с операторами. Наиболее привычные операторы уже упоминались в предыдущей статье: +, , *, /, ^ или ** (возведение в степень) и функцию sqrt(x) (квадратный корень). Сегодня мы поговорим еще о нескольких достаточно распространенных.Точкой обозначается матричное произведение. В документации утверждается, что сама точка при этом должна быть отделена пробелами от обоих своих операндовP дабы не спутать ее с точкой десятичной. На самом деле мне не удалось добиться от Максимы неадекватной реакции и в «беспробельном» варианте; что и логично, так как все равно эти две разные ипостаси точки можно различить по контексту: ведь цифры именами матриц быть не могут. Так что, думаю, можете смело писать и без пробелов.В случае, если заданные матрицы не могут быть перемножены из-за несовпадающих размерностей, Maxima выдаст сообщение об ошибке: Восклицательный знак, стоящий после своего аргумента (т.Pе. постфиксный оператор), традиционно обозначает факториал. Не менее традиционно, двумя восклицательными знаками обозначен полуфакториал [произведение всех четных (для четного операнда) или нечетных чисел, меньших либо равных данному,P прим. ред.]. Функции abs(x) и signum(x) возвращают, как опять же нетрудно догадаться, модуль и знак числа. А функции max(x1,...,xn) и min(x1,...,xn)P соответственно максимальное и минимальное из заданных чисел.Тут стоит остановиться на нескольких моментах. Во-первых, все функции и операторы Maxima работают не только с действительными, но и комплексными числами. Сами комплексные числа записываются в Максиме в алгебраической форме, с мнимой единицей, обозначенной через %i; то есть в виде a+b*%i, где a и bP соответственно действительная и мнимая части числа.Так, факториал задан в наиболее общем виде и представляет собой, по сути, гамма-функцию (точнее, x! = gamma(x+1)), то есть определен на множестве всех комплексных чисел, кроме отрицательных целых. При этом факториал от натурального числа (и нуля) автоматически упрощается до натурального же числа:Точно так же и модуль определен для всех комплексных чисел (напомню, что |a+b*i|=sqrt(a2+b2)). Минимум, максимум и знак определены, естественным образом, только для действительных чисел, так как комплексные числа общего вида, как известно, между собой несравнимы.Второй важный момент: когда некоторая встроенная функция или оператор Maxima не может получить для переданного выражения однозначный результат (ввиду недостаточности данных)P она пытается максимально упростить это выражение. (Для некоторых функций такое автоупрощение регулируется специальными параметрами.) Например, если x не задан:Подобные упрощения, равно как и «раскрытие» факториалов и арифметических операторов, не считаются вычислениями, а следовательно оператор блокировки вычислений их не предотвращает:Как вы, вероятно, помните, в прошлый раз кроме упомянутого только что оператора блокировки вычислений мы познакомились с оператором присвоения значений, или, иначе, именования выражений, : . В Maxima существуют и другие операторы именования, из которых нам на данный момент интересен одинP оператор задания функции. Обозначается он через :=, и аналогии здесь прослеживаются не с языками Pascal или Algol, как может показаться на первый взгляд, а с другими обозначениями самой Максимы: с одной стороны определение функции можно воспринимать как уравнение (которое обозначается знаком =), а с другойP оно родственно назначению имени некоторому выражению (то есть :). То есть определение функции можно в какой-то мере считать симбиозом этих двух выраженийP и оттого вполне логично, что оно обозначается обоими их символами. (В продолжение этой аналогии могу добавить, что в Maxima есть и расширенные варианты операторов присвоения и назначения функции, обозначаемые соответственно через :: и ::=.)Думаю, основы работы с функциями самоочевидны по аналогии с приведенным примером, а подробнее об этом мы поговорим в следующих выпусках.

Комментариев нет:

Отправить комментарий