How to find the factorial of fractional numbers using matlab code?
95 次查看(过去 30 天)
显示 更早的评论
I have an array s1. I want to evaluate the factorial of s1.
M=3;
m1 = 0:M;
s1 = m1./2
factorial(s1)
0 个评论
采纳的回答
John D'Errico
2022-7-16
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 个评论
Rik
2022-7-18
It would be nice if Matlab would already suggest using the gamma function in the error message.
Steven Lord
2022-7-18
This sounds like a reasonable suggestion. I've added it to the enhancement database.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Special Functions 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!