!!, fact2

Двойная функция факториала

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразовывают Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

n !!
fact2(n)

Описание

fact2(n) представляет двойной факториал целого числа. Двойной факториал задан что касается даже положительных целых чисел и для нечетных положительных целых чисел.

Вызов стенографии n!! эквивалентен fact2(n).

0!! и (-1)!! оба возвращают 1.

Если n является целым числом, больше или равным -1 и меньшим, чем значение, данное Pref::autoExpansionLimit (), то целое число возвращено. Если n является целым числом, меньшим, чем -1 или численное значение нецелого числа затем, ошибка происходит. Если n является символьным выражением, то на символьный звонок fact2 отвечают.

Используйте expand(n!!), чтобы вычислить явный результат для больших целых чисел n, равный или больше, чем Pref::autoExpansionLimit ().

Выражения, включающие символьные вызовы fact2, могут быть переписаны с точки зрения функции gamma rewrite(expression, gamma). Cf. Пример 2.

Обратите внимание на то, что двойной факториальный n!! не равняется выполненному с помощью итераций факториальному (n!)!.

Примеры

Пример 1

Целые числа производятся, если аргумент является целым числом, больше, чем или равный - 1:

fact2(-1), fact2(0), fact2(5), fact2(16)

На символьный звонок отвечают, если аргумент является символьным выражением:

fact2(n), fact2(4.7*I*n)

Вызовы fact2(n) и n!! эквивалентны:

5!! = fact2(5), fact2(n^2 + 3)

Пример 2

Функциональный rewrite может использоваться, чтобы переписать выражения, включающие fact2 с точки зрения функции gamma. В большинстве случаев Simplify должен использоваться, чтобы получить простой результат:

rewrite(n!!, gamma)

rewrite(fact2(2*n)/fact2(2*n - 1), gamma)

assume(n, Type::Integer): Simplify(%2)

Пример 3

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

float(fact2(2^17))

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

float(subs(rewrite(fact2(n), gamma), n = 2^17))

Параметры

n

Арифметическое выражение, представляющее целое число, больше, чем или равный - 1.

Возвращаемые значения

Арифметическое выражение.

Перегруженный

n

Смотрите также

Функции MuPAD