怎样定义一个自定义的阶乘函数,并调用它,大家看看错在哪
mathematica吧
全部回复
仅看楼主
level 5
Input["r=", r];
Input["q=", q];
multi = 1;
For[i = 1, i <= r, i++,
If[q == 0, f[multi_] :=multlti*i, f[multi_]:=multi*(1 - q^i)/(1 - q)]]
2018年01月09日 10点01分 1
level 5
我用multi代表r的新阶乘结果,另外还要调用计算n-r,n的阶乘
2018年01月09日 11点01分 2
level 5
两天了,都没能弄出来[不高兴]
2018年01月09日 11点01分 3
level 12
阶乘?
fac=If[
#==0,1,#

#0[#
-1]]&
2018年01月09日 13点01分 6
自定义的阶乘,图片在下方
2018年01月09日 14点01分
level 5
2018年01月09日 14点01分 7
阶乘没变,参与阶乘运算的数变了。这里的 [r] 叫什么?
2018年01月10日 06点01分
@Alexander0620 问题已经解决了,本来一直写自定义函数multi的,现在改用了product,谢谢你,[r]就是一种写法
2018年01月13日 01点01分
2018年01月13日 07点01分
@浩对等沼焊 昨天发现一个自带函数,似对你的问题有所助益。FactorialPower
2018年01月16日 04点01分
level 5
Input["n=", n];
n = %
Input["q=", q];
q = %
B = IdentityMatrix[n + 1]
X = Array[x, n + 1];
X[[1]] = 35/1000
For[j = 2, j <= n + 1, j++, X[[j]] = X[[1]] + j*10^-5]
f[r_, q_] := If[q == 1, r, (1 - q^r)/(1 - q)]
h[r_, q_] := Product[f[i, q], {i, 1, r}]
g[r_, q_] := If[r == 0, 1, h[r, q]]
k[n_, i_, q_] :=
If[q == 1, Binomial[n, i - 1], h[n, q]/(h[i, q] h[n - i, q])];
z[q_, x_, n_, i_] :=
k[n, i, q]*x^i*Product[(1 - q^s*x), {s, 0, n - i - 1}]
For[j = 1, j <= n + 1, j++, B[[1]][[j]] = -z[q, X[[2]], n, j - 1]]
For[i = 2, i <= n + 1, i++,
For[j = 1, j <= n + 1, j++,
B[[i]][[j]] =
z[q, X[[i]], n,
j - 1] - (z[q, X[[2]], n, j - 1] +
z[q, X[[1]], n, j - 1])*(z[q, X[[i]], n, 0]/
z[q, X[[2]], n, 0])]]
NumberForm[B, 16]
MatrixForm[B, 16]
NumberForm[SingularValueList[B], 32]
2018年01月19日 14点01分 8
暂时没时间处理
2018年01月20日 01点01分
1