解递推方程报错
mathematica吧
全部回复
仅看楼主
level 6
sgylvqº 楼主
e[n_] := e[n] /.
RSolve[{e[n] == 0.6 (e[n + 1] + 1) + 0.4 (e[n - 1] + 1), e[0] == 0,
e[7] == 0}, e[n], n][[1]]; e[3]
这样无法算出e[3],肯定是因为无法这样定义,为什么?因为不能将n当做常数代入吗?
e=.;RSolve[{e[n] == 0.6 (e[n + 1] + 1) + 0.4 (e[n - 1] + 1), e[0] == 0,
e[7] == 0}, e[n], n][[1]]
清除之后,再解递推方程就报错了,目前我发现的方法只能重启,请问是否有别的方法
2021年04月11日 12点04分 1
level 6
sgylvqº 楼主
报错信息:$RecursionLimit::reclim2: Recursion depth of 1024 exceeded during evaluation of e[3].
2021年04月11日 12点04分 2
吧务
level 10
因为你循环定义
2021年04月11日 13点04分 3
请问误操作后怎么如何再次正常解方程而不是报错
2021年04月12日 01点04分
@sgylvqº clear清楚定义?
2021年04月12日 03点04分
@asdasd1dsadsa 试过了没有用耶
2021年04月12日 14点04分
@sgylvqº 那说明你代码还没有改对
2021年04月12日 15点04分
level 6
sgylvqº 楼主
e[n_] := Evaluate@(e[n] /.
RSolve[{e[n] == 0.6 (e[n + 1] + 1) + 0.4 (e[n - 1] + 1),
e[0] == 0, e[7] == 0}, e[n], n][[1]])
正确定义方法
2021年04月12日 15点04分 4
1