iterate

语法

iterate(init, coeffs, input)

参数

init 是初始值。

coeffs 是迭代系数。initcoeffs 的长度必须相同。

input 是整型标量,或者是向量。如果 input 是整型标量,表示迭代的次数;如果 input 是向量,其长度表示迭代的次数,每个元素在每次迭代后都添加到结果中。

详情

  • initcoeffsinput 均为标量,返回等比数列[ init * coeffs , init * coeffs 2, init * coeffs 3, ...],其长度为 input

  • initcoeffs 为标量,input 为向量,返回数列x,满足以下条件:x[0]= init * coeffs + input [0],x[n]=x[n-1]* coeffs + input [n]。数列x的长度为 input 的长度。

  • initcoeffs 为向量,input 为标量,返回数列x,满足以下条件:x[n]=y(n)** coeffs , y(n)=y(n-1)[1:].append!(x[n-1]), y(0)= init, x的长度为 input 。其中**表示点乘,返回两个向量的内积。

  • initcoeffsinput 均为向量,返回数列x,满足以下条件:x[n]=y(n)** coeffs + input [n], y(n)=y(n-1)[1:].append!(x[n-1]), y(0)= init。其中**表示点乘,返回两个向量的内积。

例子

iterate(1, 0.8, 3);
# output
[0.8,0.64,0.512]
// 1*0.8=0.8, 0.8*0.8=0.64, 0.64*0.8=0.512

iterate(1, 0.8, 0.1 0.2 0.3);
# output
[0.9,0.92,1.036]
// 1*0.8+0.1=0.9, 0.9*0.8+0.2=0.92, 0.92*0.8+0.3=1.036

iterate(1 1, 1 1, 10);
# output
[2,3,5,8,13,21,34,55,89,144]
// 斐波那契数列: 1*1+1*1=2; 1*1+2*1=3; 2*1+3*1=5; 3*1+5*1=8; ... ; 55*1+89*1=144.

iterate(1 1, 1 1, 1 2 3 4 5);
# output
[3,6,12,22,39]
// 1*1+1*1+1=3; 1*1+3*1+2=6; 3*1+6*1+3=12; 6*1+12*1+4=22; 12*1+22*1+5=39.