ZBLOG

RecursionLimitrList = Range[0, 4, 4/999]; f[r_, y_] := (r^2y)/(r - 1 - Log[r]); y[r_] := 1 - E^(-ry); data = Table[{rList[[i]], f[rList[[i]], y[rList[[i]]]]}, {i, 1, 1000}]; ListPlot[data, PlotRange -> All, Frame -> True, Axes -> False, Fram

您可以通过增加递归限制来解决此问题,例如:

SetSystemOptions[“RecursionLimit” -> 10000]

或者您可以尝试优化代码,以避免出现递归错误。例如,您可以使用函数迭代而不是递归来计算y[r]。这样做可以避免递归深度的增加并提高代码效率。以下是一个可能的改进版本:

f[r, y] := (r^2*y)/(r - 1 - Log[r]); yIter[r_] := Block[{y0 = 0}, FixedPoint[(# /. y -> Function @@ {1 - Exp[-r #]}) &, y0, 50] ] rList = Range[0, 4, 4999]; data = Table[{rList[[i]], f[rList[[i]], yIter[rList[[i]]]]}, {i, 1, 1000}]; ListPlot[data, PlotRange -> All, Frame -> True, Axes -> False, FrameLabel -> {“r”, “f”}, PlotStyle -> PointSize[Tiny]]

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=262

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?