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