问题补充: 在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的值,由于计算精度不够,函数的值无变化
所以,计算效率最高的是