How to find the factorial of fractional numbers using matlab code?
54 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Athira T Das
el 16 de Jul. de 2022
Comentada: Steven Lord
el 18 de Jul. de 2022
I have an array s1. I want to evaluate the factorial of s1.
M=3;
m1 = 0:M;
s1 = m1./2
factorial(s1)
0 comentarios
Respuesta aceptada
John D'Errico
el 16 de Jul. de 2022
You CANNOT compute the factorial of a fractional number. Factorials are defined only for integers.
HOWEVER...
It is true that
factorial(N) == gammma(N+1)
for integer N. You might think of the gamma function as an extension of the factorial function onto the real line. For example:
N = 0:10;
factorial(N)
gamma(N + 1)
And the gamma function is defined on the real line. So...
gamma(1.5)
is thus what you might think of when you write (0.5)!.
fplot(@gamma,[.1,5])
In fact, the gamma function follows the smiple rules that work for factorial. Thus we would see that if
factorial(N) == N*factorial(N-1)
then we might hope it would be true that
gamma(N+1) = N*gamma(N)
For example, we can test that as:
format long g
[gamma(3.25)*3.25,gamma(4.25)]
So the gamma function follows a similar recursive rule like the factorial function. The only differnce is you don't have any easy way to start the recursion.
2 comentarios
Rik
el 18 de Jul. de 2022
It would be nice if Matlab would already suggest using the gamma function in the error message.
Steven Lord
el 18 de Jul. de 2022
This sounds like a reasonable suggestion. I've added it to the enhancement database.
Más respuestas (0)
Ver también
Categorías
Más información sobre String Parsing en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!