If Direv Then Back[I] = 2 * Weight * (Signals[I]-С);
End;
End Else Begin
If Signals[I] > -C Then Begin
B = B + Sqr(Signals[I] + C);
If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);
End
End;
Estim = Weight*B
End
{Кодирование номером канала. Оценка для максимального интерпретатора.}
Est Major1(N : Long)
Static
Real E Name "Уровень надежности";
Var
Real A, B;
Long I, J, K, Ans;
RealArray[N+1] Al,Ind;
Begin
Ans = Answer;
Ind[1] = Ans;
Al[1] = Signals[Ans] – E *Reliability;
Ind[N+1] = 0;
Al[N+1] = -1.e40;
K:=1;
For I = 1 To N Do
If I <> Ans Then Begin
Al[K] = Signals[I];
Ind[K] = I;
K = K + 1;
End; {Подготовлен массив сигналов}
For I = 2 To N-1 Do Begin
A = Al[I];
K = I;
For J = I+1 To N Do
If Al[J] > A Then Begin
K = J;
A = Al[J];
End; {Найден следующий по величине}
Al[K] = Al[I];
Al[I] = A;
J = Ind[K];
Ind[K] = Ind[I];
Ind[I] = J;
End; {Массивы отсортированы}
A = Al[1]; {Сумма первых I членов}
I = 1;
While (A / I <= Al[I+1]) Do Begin
A = A + Al[I];
I = I + 1;
End; {В конце цикла I-1 равно числу корректируемых сигналов}
B = A / I; {B – величина, к которой должны стремиться}
A = 0; {корректируемые сигналы}
For J = 1 To I Do Begin
A = A + Sqr(Al[J] – B);
If Direv Then Back[Ind[J]] = -2* Weight * (Al[J] – B);
End;
Estim = Weight * A
End;
Est BynaryCoded1: (N : Long) {Оценка для кодирования номером канала}
Static
Real E Name "Уровень надежности";
Var
Long I, J, A, K;
Real B, C;
Begin
A = Answer;
B = 0;
C = E * Reliability; {Допуск определяем произведением}
For I = N To 1 By -1 Do Begin
J = A / 2;
K = A – 2 * J;
A = J;
If A = 1 Then Begin
If Signals[I] < C Then Begin
B = B + Sqr(Signals[I] – C);
If Direv Then Back[I] = 2 * Weight * (Signals[I]-C);
End;
End Else Begin
If Signals[I] > -C Then Begin
B = B + Sqr(Signals[I] + C);
If Direv Then Back[I] = 2 * Weight * (Signals[I] + C);
End;
End;
Estim = Weight*B
End
Contents Temp : Empty1, Cloud : Binary1(2), Wind : BynaryCoded1(3), Rain : Major1(3);
Cloud Link Meteorology.Cloud {Связываем оценки с интерпретаторами}
Wind Link Meteorology.Wind
Rain Link Meteorology.Rain
Temp SetParameters 10, 273; {Устанавливаем значения параметров оценок}
Cloud SetParameters 0.1; {и интерпретаторов}
Wind SetParameters 0.2;
Rain SetParameters 0.15
Weights 1, 1, 1, 1
Signals NumberOf(Signals,Temp) +NumberOf(Signals, Cloud) + NumberOf(Signals, Wind) + NumberOf(Signals, Rain)
Connections
Temp.Signals <=> Signals[1];
Cloud.Signals[1..2] <=> Signals[2; 3];
Wind.Signals[1..3] <=> Signals[4..6];
Rain.Signals[1..3] <=> Signals[7..9]
Temp.Answer <=> Answer[1];
Cloud.Answer[1..2] <=> Answer[2];
Wind.Answer[1..3] <=> Answer[3];
Rain.Answer[1..3] <=> Answer[4]
End Estimation
Пример 2.
Estimation Meteorology