метод действительно хорош.

я есть проблема линейного повторения, когда следующий элемент опирается не только на предыдущее значение, например последовательность Фибоначчи. Один метод расчета nго Элемент должен определить его с помощью вызова функции, например,

Fibonacci[0] = 0; Fibonacci[1] = 1;
Fibonacci[n_Integer?Positive] := Fibonacci[n] + Fibonacci[n - 1]

и для последовательности, с которой я работаю, это именно то, что я делаю. (Определение находится внутриModule так что я не загрязняюGlobal`.) Тем не менее, я собираюсь использовать это с 210 - 213 баллы, так что я обеспокоен дополнительными накладными расходами, когда мне просто нужен последний срок и ни один из предыдущих элементов. Я хотел бы использовать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]]}

У меня было кое-что, что сделало это, но я закрыл тетрадь перед сохранением. Так что, если я переписываю это самостоятельно, я выложу это.

редактировать: почему я не пользуюсьRSolve или жеMatrixPower чтобы решить это. Моя конкретная проблема - я выполняюN-точка Паде приближенная аналитически продолжить функцию, которую я знаю только в заданном количестве точек на мнимой оси, {zi}. Частью создания аппроксиманта является генерация набора коэффициентов,i, который является другим рекуррентным отношением, которое затем подается в окончательное отношение

A[n+1]== A[n] + (z - z[[n]]) a[[n+1]] A[n-1]

который не поддается ниRSolve ниMatrixPowerПо крайней мере, это я вижу.

Ответы на вопрос(4)

Ваш ответ на вопрос