Maxima Manual: Вспомогательные функции и переменные

Previous: Библиотека Share, Up: Вспомогательные опции [Contents][Index]

### 33.3 Вспомогательные функции и переменные

Системная переменная: aliases

  Значение по умолчанию: `[]`

  `aliases` – список всех атомов, котрые имеют определенные пользователем алиасы (определяются функциями `alias`, `ordergreat`, `orderless` или при декларации атома `noun` при помощи `declare`).

  Категории:Факты и выводы ·Глобальные переменные ·

Декларация: alphabetic

  `alphabetic` является декларацией типа, распознаваемой функцией `declare`. Декларация `declare(s, alphabetic)` говорит Maxima рассматривать все символы, входящие в s (должен быть строкой), как буквенные.

  См. также Идентификаторы.

  Пример:

      (%i1) xx\~yy\`\@ : 1729;
      (%o1)                         1729
      (%i2) declare ("~`@", alphabetic);
      (%o2)                         done
      (%i3) xx~yy`@ + @yy`xx + `xx@@yy~;
      (%o3)               `xx@@yy~ + @yy`xx + 1729
      (%i4) listofvars (%);
      (%o4)                  [@yy`xx, `xx@@yy~]

  Категории:Факты и выводы ·

Функция: apropos (string)

  Ищет имена объектов Maxima, содержащие string в качестве подстроки. Например, вызов `apropos (exp)` возвращает список всех переменных и функций, имеющих `exp` в качестве части своего имени, такие как `expand`, `exp` и `exponentialize`. Таким образом, если вы помните только часть имени какого-либо объекта, то можете использовать эту команду для поиска полного наименования. Аналогично, можно использовать `apropos (tr_)`, для того, чтобы вывести список переключателей, влияющих на работу транслятора, т.к. имена большинства из них начинаются с `tr_`.

  Категории:Справка ·

Функция: args (expr)

  Возвращает список аргументов параметра `expr`, который может быть любым отличным от атома выражением. Возвращаются только аргументы оператора самого верхнего уровня. Подвыражения `expr` появляются, как элементы подвыражений элементов списка аргументов.

  Порядок выражений в возвращаемом списке может зависеть от глобального флага `inflag`.

  Вызов `args (expr)` эквивалентен `substpart ("[", expr, 0)`. См. также `substpart` и `op`.

  Категории:Выражения ·

Управляющая переменная: genindex

  Значение по умолчанию: `i`

  `genindex` – буквенный префикс, используемый для создания новой переменной суммирования.

  Категории:Суммы и произведения ·

Управляющая переменная: gensumnum

  Значение по умолчанию: 0

  `gensumnum` – числовой суффикс, используемый для создания новой переменной суммирования. Если равна `false`, то индекс будет состоять только из `genindex` без числового суффикса.

  Категории:Суммы и произведения ·

Системная переменная: infolists

  Значение по умолчанию: `[]`

  `infolists` – есть список имен всех информационных списков Maxima. А именно:

  `labels`

    Все имеющие значение `%i`, `%o` и `%t` метки.

  `values`

    Все имеющие значение атомы, определенные пользователем (не встроенные в Maxima управляющие переменные и переключатели), созданные при помощи операторов `:`, `::` или функциональным присваиванием.

  `functions`

    Все определенные пользователем функции, созданные при помощи `:=` или `define`.

  `arrays`

    Все объявленные и необъявленные массивы, созданные при помощи `:`, `::` или `:=`.

  `macros`

    Все определенные пользователем макро-функции.

  `myoptions`

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

  `rules`

    Все определенные пользователем правила подстановок и правила упрощения, созданные при помощи `tellsimp`, `tellsimpafter`, `defmatch` или `defrule`.

  `aliases`

    Все атомы, имеющие определенные пользователем алиасы, созданные при помощи функций `alias`, `ordergreat`, `orderless` или при декларации атома `noun` с помощью `declare`.

  `dependencies`

    Все атомы, имеющие функциональные зависимости, созданные с помощью функций `depends` или `gradef`.

  `gradefs`

    Все функции, имеющие определенные пользователем производные, определенные при помощи функции `gradef`.

  `props`

    Все атомы, имеющие свойства, отличные от упомянутых выше, такие как свойства задаваемые `atvalue`, `matchdeclare` и т.п., а также, свойства, установленные функцией `declare`.

  `let_rule_packages`

    Все определенные пользователем пакеты правил `let` плюс специальный пакет `default_let_rule_package`. (`default_let_rule_package` – имя пакета правил, который используется по умолчанию, если иной не объявлен пользователем явно.)

  Категории:Факты и выводы ·Глобальные переменные ·

Функция: integerp (expr)

  Возвращает `true`, если expr является буквальным целым числом, и `false` в противном случае.

  Функция `integerp` возвращает `false`, если аргумент является символом, даже если этот символ объявлен целочисленным.

  Примеры:

      (%i1) integerp (0);
      (%o1)                         true
      (%i2) integerp (1);
      (%o2)                         true
      (%i3) integerp (-17);
      (%o3)                         true
      (%i4) integerp (0.0);
      (%o4)                         false
      (%i5) integerp (1.0);
      (%o5)                         false
      (%i6) integerp (%pi);
      (%o6)                         false
      (%i7) integerp (n);
      (%o7)                         false
      (%i8) declare (n, integer);
      (%o8)                         done
      (%i9) integerp (n);
      (%o9)                         false

  Категории:Функции предикаты ·

Управляющая переменная: m1pbranch

  Значение по умолчанию: `false`

  `m1pbranch` определяет главную ветвь для отрицательной степени `-1`. Величины, подобные `(-1)^(1/3)` (т.е. "нечетные" рациональные степени) и `(-1)^(1/4)` (т.е. "четные" рациональные степени) определяются следующим образом:

                    domain:real

      (-1)^(1/3):      -1
      (-1)^(1/4):   (-1)^(1/4)

                   domain:complex
      m1pbranch:false          m1pbranch:true
      (-1)^(1/3)               1/2+%i*sqrt(3)/2
      (-1)^(1/4)              sqrt(2)/2+%i*sqrt(2)/2

  Категории:Выражения ·Глобальные флаги ·

Функция: numberp (expr)

  Возвращает `true`, если expr есть буквальное целое число, рациональное число, число с плавающей точкой или число с плавающей точкой высокой точности, иначе возвращается `false`.

  Функция `numberp` возвращает `false`, если параметр является символом, даже если он является символическим числом, таким как `%pi` или `%i`, или объявлен `even`, `odd`, `integer`, `rational`, `irrational`, `real`, `imaginary` или `complex`.

  Примеры:

      (%i1) numberp (42);
      (%o1)                         true
      (%i2) numberp (-13/19);
      (%o2)                         true
      (%i3) numberp (3.14159);
      (%o3)                         true
      (%i4) numberp (-1729b-4);
      (%o4)                         true
      (%i5) map (numberp, [%e, %pi, %i, %phi, inf, minf]);
      (%o5)      [false, false, false, false, false, false]
      (%i6) declare (a, even, b, odd, c, integer, d, rational,
           e, irrational, f, real, g, imaginary, h, complex);
      (%o6)                         done
      (%i7) map (numberp, [a, b, c, d, e, f, g, h]);
      (%o7) [false, false, false, false, false, false, false, false]

  Категории:Функции предикаты ·

Функция: properties (a)

  Возвращает список имен всех свойств, ассоциированных с атомом a.

  Категории:Факты и выводы ·

Специальный символ: props

  `props` – список атомов, имеющих свойства отличные от тех, что явно перечислены в `infolists`, такие как, свойства, задаваемые `atvalue`, `matchdeclare` и т.п., а также свойства, задаваемые функцией `declare`.

  Категории:Факты и выводы ·Глобальные переменные ·

Функция: propvars (prop)

  Возвращает список атомов из списка `props`, которые имеют свойство, обозначаемое prop. Т.е. `propvars (atvalue)` возвращает список атомов, имеющих свойство `atvalue`.

  Категории:Факты и выводы ·

Функция: put (atom, value, indicator)

  Присваивает атому atom значение свойства indicator, равное value. indicator может быть не только системным свойством, но любым другим именем свойства.

  Функция `put` вычисляет свои аргументы. `put` возвращает value.

  Примеры:

      (%i1) put (foo, (a+b)^5, expr);
                                         5
      (%o1)                       (b + a)
      (%i2) put (foo, "Hello", str);
      (%o2)                         Hello
      (%i3) properties (foo);
      (%o3)            [[user properties, str, expr]]
      (%i4) get (foo, expr);
                                         5
      (%o4)                       (b + a)
      (%i5) get (foo, str);
      (%o5)                         Hello

  Категории:Факты и выводы ·

Функция: qput (atom, value, indicator)

  Присваивает атому atom значение свойства indicator, равное value. Аналогично `put`, но не вычисляет свои аргументы.

  Примеры:

      (%i1) foo: aa$
      (%i2) bar: bb$
      (%i3) baz: cc$
      (%i4) put (foo, bar, baz);
      (%o4)                          bb
      (%i5) properties (aa);
      (%o5)                [[user properties, cc]]
      (%i6) get (aa, cc);
      (%o6)                          bb
      (%i7) qput (foo, bar, baz);
      (%o7)                          bar
      (%i8) properties (foo);
      (%o8)            [value, [user properties, baz]]
      (%i9) get ('foo, 'baz);
      (%o9)                          bar

  Категории:Факты и выводы ·

Функция: rem (atom, indicator)

  Удаляет свойство indicator у атома atom.

  Категории:Факты и выводы ·

Функция: remove (a_1, p_1, ..., a_n, p_n)
Функция: remove ([a_1, ..., a_m], [p_1, ..., p_n], ...)
Функция: remove ("a", operator)
Функция: remove (a, transfun)
Функция: remove (all, p)

  Удаляет свойства, ассоциированные с атомами.

  Вызов `remove (a_1, p_1, ..., a_n, p_n)` удаляет свойство `p_k` у атома `a_k`.

  Вызов `remove ([a_1, ..., a_m], [p_1, ..., p_n], ...)` удаляет свойства `p_1, ..., p_n` у атомов a_1, ..., a_m. Может быть более чем одна пара списков.

  Вызов `remove (all, p)` удаляет все свойства p у всех имеющих его атомов.

  Удаляемые свойства могут быть как системными, такими как `function`, `macro` или `mode_declare`, так и пользовательскими.

  Удаление свойства `transfun` удаляет транслированный Lisp вариант функции. После удаления этого свойства, вместо транслированной Lisp версии функции будет выполняться Maxima версия.

  Вызов `remove ("a", operator)` или, эквивалентно, `remove ("a", op)`, удаляет у a операторные свойства, декларированные функциями `prefix`, `infix`, `nary`, `postfix`, `matchfix` или `nofix`. Отметим, что имя оператора должно быть записано в виде строки с двойными кавычками.

  `remove` всегда возвращает `done`, независимо от того, имел ли атом требуемое свойство или нет. Такое поведение отличается от более специфичных функций, удаляющих свойства, таких как `remvalue`, `remarray`, `remfunction` и `remrule`.

  Категории:Факты и выводы ·

Функция: remvalue (name_1, ..., name_n)
Функция: remvalue (all)

  Удаляет из системы значения пользовательских переменных name_1, ..., name_n (могут быть переменными с индексом).

  Вызов `remvalue (all)` удаляет все значения всех переменных из списка определенных пользователем переменных `values` (в отличии от переменных, автоматически определенных Maxima).

  См. также `values`.

  Категории:Вычисление ·

Функция: rncombine (expr)

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

  Устанавливая `pfeformat: true` и используя `combine`, можно получить результат более компактный, чем дает `rncombine`, но `rncombine` выполняет дополнительный шаг, перемножая численные множители знаменателей. Это приводит к более ясной форме и возможности распознать сокращения.

  Команда `load("rncomb")` загружает эту функцию.

  Категории:Выражения ·

Функция: scalarp (expr)

  Возвращает `true` если expr является числом, константой или переменной, объявленной `scalar` при помощи `declare`, или выражением, полностью состоящим из чисел, констант и скалярных переменных, но не содержащим матрицы или списки.

  Категории:Функции предикаты ·Векторы ·Матрицы ·

Функция: setup_autoload (filename, function_1, ..., function_n)

  Определяет то, что если любая из функций function_1, ..., function_n вызывается, но еще не определена в момент вызова, то файл filename загружается при помощи `load`. Файл filename обычно содержит определения указанных функций, хотя это и не обязательно.

  `setup_autoload` не работает для функций-массивов.

  `setup_autoload` не вычисляет свои аргументы.

  Примеры:

      (%i1) legendre_p (1, %pi);
      (%o1)                  legendre_p(1, %pi)
      (%i2) setup_autoload ("specfun.mac", legendre_p, ultraspherical);
      (%o2)                         done
      (%i3) ultraspherical (2, 1/2, %pi);
      Warning - you are redefining the Macsyma function ultraspherical
      Warning - you are redefining the Macsyma function legendre_p
                                  2
                       3 (%pi - 1)
      (%o3)            ------------ + 3 (%pi - 1) + 1
                            2
      (%i4) legendre_p (1, %pi);
      (%o4)                          %pi
      (%i5) legendre_q (1, %pi);
                                    %pi + 1
                            %pi log(-------)
                                    1 - %pi
      (%o5)                 ---------------- - 1
                                   2

  Категории:Определение функций ·Ввод файлов ·

Previous: Библиотека Share, Up: Вспомогательные опции [Contents][Index]