相关疑难解决方法(0)

使用Fold计算依赖于多个先前值的线性递归结果

我有一个线性递归问题,其中下一个元素不仅仅依赖于先前的值,例如Fibonacci序列.计算第n 个元素的一种方法是通过函数调用来定义它,例如

Fibonacci[0] = 0; Fibonacci[1] = 1;
Fibonacci[n_Integer?Positive] := Fibonacci[n] + Fibonacci[n - 1]
Run Code Online (Sandbox Code Playgroud)

而对于我正在使用的序列,这正是我所做的.(定义是在一个内部,Module所以我不污染Global`.)但是,我将使用2 10 - 2 13点,所以我担心额外的开销,当我只需要最后一个术语,没有现有要素 我想用Fold它来做,但Fold只传递前一个结果,这意味着它不能直接用于一般的线性递归问题.

我想要一对函数来替换Fold并将FoldList指定数量的先前序列元素传递给函数,即

In[1] := MultiFoldList[f, {1,2}, {3,4,5}] (* for lack of a better name *)
Out[1]:= {1, 2, f[3,2,1], f[4,f[3,2,1],2], f[5,f[4,f[3,2,1],2],f[3,2,1]]}
Run Code Online (Sandbox Code Playgroud)

我有一些东西可以做到这一点,但我在保存之前关闭了笔记本.所以,如果我自己重写它,我会发布它.

编辑:至于我为什么不使用RSolve或MatrixPower解决这个问题.我的具体问题是我正在执行n点Pade近似,以分析方式继续我只知道虚轴上的一定数量的点{z i } 的函数.创建近似值的一部分是生成一组系数,a i,这是另一个递归关系,然后被输入到最终关系中

A[n+1]== A[n] + (z - z[[n]]) a[[n+1]] A[n-1]
Run Code Online (Sandbox Code Playgroud)

这是不服从任何RSolve也不 …

wolfram-mathematica

3
推荐指数
1
解决办法
657
查看次数

标签 统计

wolfram-mathematica ×1