24小时热门版块排行榜    

查看: 569  |  回复: 2

ldoop

铁杆木虫 (著名写手)


[交流] 【求助】请大家帮忙看看这个程序【已完结】 已有2人参与

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

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值是复数,应如何处理?或者避免?
谢谢

[ Last edited by nono2009 on 2010-9-30 at 08:43 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

mshwangg

至尊木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
nono2009(金币+1):鼓励应助 2010-09-30 08:42:47
最后一个语句,x和r位置互换就可以了,即L[r,x,a]而不是L[x,r,a]
2楼2010-09-29 22:16:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ldoop

铁杆木虫 (著名写手)


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