Миркес Е. М.
Шрифт:
Back {Начало описания обратного функционирования }
Var {Описание локальных переменных}
Long I, J, K; {I,J,K – переменные типа длинное целое }
Real R; {R – действительное}
Vector W; {Массив для накопления промежуточных величин}
Begin
For I = 1 To N Do W[I] = 0;
K = 1; {K – номер обрабатываемого параметра}
For I = 1 To N Do
For J = I To N Do Begin
{Поправка к параметру равна сумме ранее вычисленной поправки и произведения поправки к входному сигналу на произведение сигналов, прошедших через этот параметр при прямом функционировании}
Back.Parameters[K] = Back.Parameters[K] + Back.OutSignals[1] * InSignals[I] *InSignals[J];
R = Back.OutSignals[1] * Parameters[K];
W[I] = W[I] + R * InSignals[J];
W[J] = W[J] + R * InSignals[I];
K = K + 1
End;
For I = 1 To N Do
{Поправка к входному сигналу равна произведению поправки к выходному сигналу на сумму всех параметров, через которые этот сигнал проходил при прямом функционировании, умноженных на другие входные сигналы, так же прошедшие через эти параметры при прямом функционировании}
Back.InSignals[1] = W[I]
End {Конец описания прямого функционирования}
End Square_Sum {Конец описания квадратичного сумматора}
Element Square_Sum_Plus(N: Long) {Неоднородный квадратичный сумматор на N входов}
InSignals N {N входных сигналов}
OutSignals 1 {Один выходной сигнал}
Parameters (Sqr(N) + 3 * N) Div 2 + 1 {N(N+3)/2+1 весов связей}
Forw {Начало описания прямого функционирования}
Var {Описание локальных переменных}
Long I, J, K; {I,J,K – переменные типа длинное целое }
Real R; {R – действительное – для накопления суммы}
Begin
K = 2 * N+1; {K – номер обрабатываемого параметра}
R = Parameters[Sqr(N) + 3 * N) Div 2 + 1];
For I = 1 To N Do Begin
R = R + InSignals[I] * Parameters[I] + Sqr(InSignals[I]) * Parameters[N + I];
For J = I + 1 To N Do Begin
R = R + InSignals[I] * InSignals[J] * Parameters[K];
K = K + 1
End
End
{Выходной сигнал равен сумме всех попарных произведений входных сигналов, умноженных на соответствующие параметры, плюс сумме всех входных сигналов умноженных на соответствующие параметры, плюс последний параметр}
OutSignals[1] = R
End {Конец описания прямого функционирования}
Back {Начало описания обратного функционирования}
Var {Описание локальных переменных}
Long I, J, K; {I,J,K – переменные типа длинное целое}
Real R; {R – действительное – для накопления суммы}
Vector W; {Массив для накопления промежуточных величин}