Element Adaptiv_Sum_Plus ( N : Long)
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 – äëèííîå öåëîå – èíäåêñ }
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 âõîäîâ}
Parameters (Sqr(N) + N) Div 2 {N(N+1)/2 ïàðàìåòðîâ – âåñîâ ñâÿçåé}
Long I,J,K; {I,J,K – ïåðåìåííûå òèïà äëèííîå öåëîå }
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
{Âûõîäíîé ñèãíàë ðàâåí ñóììå âñåõ ïîïàðíûõ ïðîèçâåäåíèé âõîäíûõ ñèãíàëîâ, óìíîæåííûõ íà ñîîòâåòñòâóþùèå ïàðàìåòðû}
Long I, J, K; {I,J,K – ïåðåìåííûå òèïà äëèííîå öåëîå }
Real R; {R – äåéñòâèòåëüíîå}
Vector W; {Ìàññèâ äëÿ íàêîïëåíèÿ ïðîìåæóòî÷íûõ âåëè÷èí}
For I = 1 To N Do
W[I] = 0;
{Ïîïðàâêà ê ïàðàìåòðó ðàâíà ñóììå ðàíåå âû÷èñëåííîé ïîïðàâêè è ïðîèçâåäåíèÿ ïîïðàâêè ê âõîäíîìó ñèãíàëó íà ïðîèçâåäåíèå ñèãíàëîâ, ïðîøåäøèõ ÷åðåç ýòîò ïàðàìåòð ïðè ïðÿìîì ôóíêöèîíèðîâàíèè}
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];
{Ïîïðàâêà ê âõîäíîìó ñèãíàëó ðàâíà ïðîèçâåäåíèþ ïîïðàâêè ê âûõîäíîìó ñèãíàëó íà ñóììó âñåõ ïàðàìåòðîâ, ÷åðåç êîòîðûå ýòîò ñèãíàë ïðîõîäèë ïðè ïðÿìîì ôóíêöèîíèðîâàíèè, óìíîæåííûõ íà äðóãèå âõîäíûå ñèãíàëû, òàê æå ïðîøåäøèå ÷åðåç ýòè ïàðàìåòðû ïðè ïðÿìîì ôóíêöèîíèðîâàíèè}
Back.InSignals[1] = W[I]
End Square_Sum {Êîíåö îïèñàíèÿ êâàäðàòè÷íîãî ñóììàòîðà}
{Íåîäíîðîäíûé êâàäðàòè÷íûé ñóììàòîð íà N âõîäîâ}
Element Square_Sum_Plus( N : Long)
Parameters (Sqr(N) + 3 * N) Div 2 + 1 {N(N+3)/2+1 âåñîâ ñâÿçåé}
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
End
{Âûõîäíîé ñèãíàë ðàâåí ñóììå âñåõ ïîïàðíûõ ïðîèçâåäåíèé âõîäíûõ ñèãíàëîâ, óìíîæåííûõ íà ñîîòâåòñòâóþùèå ïàðàìåòðû, ïëþñ ñóììå âñåõ âõîäíûõ ñèãíàëîâ óìíîæåííûõ íà ñîîòâåòñòâóþùèå ïàðàìåòðû, ïëþñ ïîñëåäíèé ïàðàìåòð}
K = 2 * N + 1; {K – íîìåð îáðàáàòûâàåìîãî ïàðàìåòðà}
Back.Parameters[I] = Back.Parameters[I] +
Back.OutSignals[1] * InSignals[I];
Ñòðàíèöû: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76