2010-06-21 1471 views
6

¿Hay alguna manera de calcular los factoriales inversos de los números reales?¿Cómo se calcula el factorial inverso de un número real?

Por ejemplo - 1.5 ! = 1.32934039

¿Hay alguna manera de obtener 1.5 volver si tengo el valor 1.32934039?

Estoy tratando

http://www.wolframalpha.com/input/?i=Gamma^(-1)[1.32934039]

pero eso es una falla.

+3

año fiscal Esto tampoco funciona con números naturales. Es decir. la función has no tiene inversa en general. –

+3

@Konrad Rudolph: no tiene inversa? No entendí. Debería haber * algo * inverso. – Lazer

+0

Creo que es posible que desee hacer su pregunta en http://mathoverflow.net/ –

Respuesta

5

Usando wolframalpha.com, puede solicitar

Solve[Gamma[x+1]==1.32934039,x] 

Como se mencionó en los comentarios, Gamma no tiene un inverso único. Es cierto incluso cuando está resolviendo para un factorial convencional, p.

Solve[Gamma[x+1]==6,x] 

produce varias respuestas, de las cuales una es 3.

En lugar de utilizar Gamma [] en WolframAlpha, también se puede utilizar factorial []:

Solve[Factorial[x]==6,x] 
Solve[Factorial[x]==1.32934039,x] 
+2

"El factorial convential" solo se define en los números naturales {0, 1, 2, ...}, y para este el único problema aquí es que 0! = 1 !. (Por ejemplo, x! = 6 tiene solo una raíz en los números naturales, concretamente 3.) –

+1

@Andreas, OP pregunta por una generalización de factoriales convencionales conocida como función gamma. Esto se implementa en Mathematica/WolphramAlpha como Gamma [x + 1] o Factorial [x]. Darle una oportunidad. – brainjam

+0

Por supuesto que lo sé. Estoy muy familiarizado con la función Gamma. Pero brainjam dice que "Gamma no tiene una inversa única. Es cierto incluso cuando se está resolviendo para un factorial convencional, por ejemplo, Solve [Gamma [x + 1] == 6, x] produce varias respuestas, de las cuales una es 3. " Esto se puede interpretar como si x! = 6 tiene varias soluciones en los números naturales, que es falso. La única solución es 3. Tal vez solo sea una mala redacción. –

3

Para enteros que puede hacer:

i = 2 
n = someNum 
while (n != 1): 
    n /= i 
    i += 1 
return (i==1 ? i : None) 

El factorial de los números reales no tiene inversa. Usted dice que "cada función debe tener un inverso". Eso es incorrecto. Considere la función constante f(x)=0. ¿Cuál es f^-1(42)? Para que una función sea inversa, debe ser una inyección y supresión.

+0

Debe ser 'i = 1', la división y el incremento deben intercambiarse, y usted puede simplemente devolver' i'. –

+0

Él no dice "cada función" (¿pero quizás lo editó?). Pero 'Γ (x)' en '[2, ∞)' es (a diferencia de 'f (x) = 0') injective. Debería haber un inverso en al menos ese subdominio. – Ken

+0

A: gracias, entiendo los conceptos inversos sin embargo. Lo que dije estaba en el contexto de la función gamma, porque parece que es una función no decreciente de uno a uno, al menos para los números reales positivos. – Lazer

5

David Cantrell da una buena aproximación de Γ -1 (n) en this page:

 
k = the positive zero of the digamma function, approximately 1.461632 
c = Sqrt(2*pi)/e - Γ(k), approximately 0.036534 
L(x) = ln((x+c)/Sqrt(2*pi)) 
W(x) = Lambert W function 
ApproxInvGamma(x) = L(x)/W(L(x)/e) + 1/2 
Cuestiones relacionadas