在maple中实现递归方程求解器

问题描述 投票:0回答:1

我想实现一个类似于 rsolve 的求解线性递推关系的过程。对于我的方法,我需要将函数替换为递归关系并在某些点评估它们。但是,我的代码似乎不起作用。 当我写下:

rec := (a, n) -> a(n) - n*a(n - 1);
rec(n -> n^2, 2);

它正确返回 2。但是,当我写入时

repertoire:=proc(func_guess,recursive_relation)
print(recursive_relation(n -> func_guess[1], 3));
end proc:
repertoire([3^n,n!],rec);

打印出来了

 -2*3^n 

而不是

  (3^3-3*3^2=)0 

我也尝试过命令“subs”,但是,

subs(a(n)=n^2,a(n)=n*a(n-1))

返回 n^2=n*a(n-1)。我不在乎递归是否作为函数或方程传递,我似乎无法使任何一个工作。我对 Maple 很陌生,欢迎任何帮助。

PS:一个完美的解决方案将允许 func_guess 包含递归定义的服装函数。

recurrence maple
1个回答
0
投票

改变

n -> func_guess[1]

unapply(func_guess[1], n)

正如您所见,过程参数

n
与传递的表达式
n
中的全局名称
3^n
无关。

还有其他方法可以完成这种常见的任务。但

unapply
很容易(这就是它存在的原因)。

© www.soinside.com 2019 - 2024. All rights reserved.