24小时热门版块排行榜    

查看: 561  |  回复: 0

ldoop

铁杆木虫 (著名写手)


[交流] 【求助】mathematica 求助

大家好,请帮忙看看我的这个小程序:

n = Table[{140, 80, 57, 41, 31, 24, 20, 16, 13, 11, 10, 8, 7, 6, 5, 4,
     4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1}];
f[j_, r_, x_, a_] :=
  n[[j]] Log[r x] + LogGamma[a + 1] + LogGamma[n[[j]]] +
   Log[Hypergeometric2F1[n[[j]], n[[j]], n[[j]] + a, x - r x]] -
   Log[x] - Log[n[[j]]] - LogGamma[n[[j]] + a] -
   Log[HypergeometricPFQ[{1, 1, 1}, {2, 1 + a},
      x] - (1 - r) HypergeometricPFQ[{1, 1, 1}, {2, 1 + a}, x - r x]];
L[r_, x_, a_] := Sum[N[f[j, r, x, a]], {j, 1, Length[n]}];
NMaximize[{L[x, r, a], 0 < x, x < 1, 0 < r, r < 0.2, a > 0}, {x, r, a}]

为什么计算不出来值呢?
如果限制条件是r<1,可以得到值,再改成其他的就得到SystemException["MemoryAllocationFailure", 请大家帮忙看看原因?

另外 为什么当n中含有29,30,会产生复数,也就是n=29 or 30 计算的L值是复数,应如何处理?或者避免?
谢谢
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ldoop 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见