Ваша постановка задачи мне очень непонятна. Я приведу реализацию моего понимания задачи, а Вы уже поправьте код, или приведите более точную формулировку в теме, — возможно, откликнутся знатоки.
Элементы последовательности
реализуем массивом x[1, k], элементы последовательности
— массивом x[1, k]. Эти массивы будем считать глобальными переменными. Правые части рекуррентных соотношений обозначим через f_1 и f_2, т.е.
,
.
Определим три функции:
Код:
> d:= k-> `if`(k=0, 1, 0);
> f_1:= k ->`if`(k=0, x[1,0], factor(H*x[2, k-1]/k));
> f_2:= k ->`if`(k=0, x[2,0], factor(H*(a*d(k-1)-b*sum(x[2, k-1-L]*x[2, L], L=0..k-1))/k));
Пусть необходимо вывести первые N элементов последовательностей.
Для вычисления
требуются значения
,…
, но не требуются значения
. Можно сначала вычислить и вывести значения
,…
:
Код:
> for k from 1 to N do x[2, k]:=f_2(k); end do;
,
а затем вычислить и вывести значения
,…
:
Код:
> for k from 1 to N do x[1, k]:=f_1(k); end do;
-- Пт 08.01.2010 20:04:48 --К слову. У Вас опечатка в выражении
sooleva в [url=http://dxdy.ru/post278177.html#p278177] писал(а):