matlab 编写一个实现n阶乘的函数?明确不能用现成的阶乘函数

 问题补充在matlab中使用for循环求1到10阶乘的值,matlab与控制系统仿真实验中n的阶乘 怎么打

  当N为向量时,计算从1到N这N个数的乘积,即相当于prod(1:N);
  当N是N维数组时,计算N中每个元素的阶乘。
  注意:由于在matlab中双精浮点数的整数位数大约是15位,只有对不大于21的整数计算结果是精确的,对大于21的整数,factorial的计算结果只有前15位是准确的。回
  (1)计算6的阶乘。
  运算结果为:720
  (2)同时计算 5,6,7,10的阶乘。
  运算结果为:120 720 ,是数组中每个元素的阶乘。

要计算的函数可以用一下公式表示。

MATLAB自带的factorial函数用于计算阶乘,也可以用prod函数直接计算数组累乘。

% 以下两种写法等价,都是计算100!
 

关于题主的问题,可以用一下两种写法,第二种效率会更高。

如果考虑到计算精度,事实上当n足够大时,继续增大n计算结果不会有变化。

% 当n>18时,继续增大n的值,由于计算精度不够,函数的值无变化
 

所以,计算效率最高的是

我要回帖

更多关于 matlab n的阶乘 的文章

 

随机推荐