mathematica问题
gg=Expand[Expand[Product[Sum[f[jj]/(-2\[Epsilon][jj]+x[ii]),{jj,n}],{ii,k}]](Product[...
gg = Expand[ Expand[Product[Sum[f[jj]/(-2 \[Epsilon][jj] + x[ii]), {jj, n}], {ii, k}]]
(Product[c[i], {i, k}])] //. f[jj_]^(w_: 1) -> Product[Sqrt[(q + j[jj] - m[jj]) (1 - q + j[jj] + m[jj])], {q, 1, w}] {c[jj] - w} //. (c[jj_] + w_) c[jj_] :> c[jj] + w
这是我对想要得到的展开式的一个编程,但是在n=3,k=10的时候,电脑就算不动了,在mathematica里有没有什么办法,通过改变程序,使得n,k值大些的时候也能计算? 展开
(Product[c[i], {i, k}])] //. f[jj_]^(w_: 1) -> Product[Sqrt[(q + j[jj] - m[jj]) (1 - q + j[jj] + m[jj])], {q, 1, w}] {c[jj] - w} //. (c[jj_] + w_) c[jj_] :> c[jj] + w
这是我对想要得到的展开式的一个编程,但是在n=3,k=10的时候,电脑就算不动了,在mathematica里有没有什么办法,通过改变程序,使得n,k值大些的时候也能计算? 展开
1个回答
展开全部
最简单的方法就是换台内存大点的电脑。顺便你这里面的//.是没必要的,用/.就可以,当然这大概省不了多少内存。然后,仅就这段程序来说我是提不出更多的建议了,内存占用的优化我也不太会,但是,从你至今为止问的这几个问题来看,我的感觉是,你已经走了不少弯路了,比如说这个c[jj],应该就是你其他问题里面的d[i]吧?如果是这样,那你就完全没有给所有项都补上一个三项连乘的标识符的必要,这都不知道浪费了多少内存。通盘考虑的话多半会有更加简单的保留必要项的方法。还有你的程序中使用的内置函数非常少,这也不正常,你在编写程序前仔细查找过帮助文档了吗?我并不知道你程序的全貌,也难以给出进一步的建议。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询