How to find the factorial of fractional numbers using matlab code?
62 ビュー (過去 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 で String Parsing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!