public void logSigmy() { if (mWiazka.systemProgowy) { mWiazka.wypDeb("Progi dla poszczególnych klas\n"); foreach (trClass kl in mWiazka.ListaKlasRuchu) { if (kl.progiKlasy != null) { mWiazka.wypDeb(string.Format("Klasa {0}\n{1}", kl.ToString(), kl.progiKlasy.wypiszSigmyProgow(mWiazka.V))); } } } sigmaPrzyjmZgl sigmyTemp = new sigmaPrzyjmZgl(mWiazka); if (_logSigmaStr) { mWiazka.wypDeb("Sigma Struktury systemu dla poszczególnych klas\n"); mWiazka.wypDeb(sigmyTemp.wypiszSigmaStrukturySystemu()); } if (_logSigmaStrat) { mWiazka.wypDeb("Sigma Strategii przyjmowania zgłoszeń w systemie dla poszczególnych klas\n"); mWiazka.wypDeb(sigmyTemp.wypiszSigmaPolPrzyjmowaniaZlg()); } }
public delta(Wiazka mWiazka) { aWiazka = mWiazka; sStruktury = new sigmaPrzyjmZgl(mWiazka); oszacowana = false; _Y = new liczbaY(mWiazka); }
public void ObliczWartosciBF(Rozklad R, sigmaPrzyjmZgl sigmyStruktury) { maksBladY = 0; double staryY; for (int i = 0; i < aWiazka.m; i++) { trClass tempKlasa = aWiazka.ListaKlasRuchu[i]; int tStart = (tempKlasa.progiKlasy == null) ? tempKlasa.t : tempKlasa.progiKlasy[0].t; //for (int n = aWiazka.V; n >= tStart; n--) for (int n = tStart; n <= aWiazka.V; n++) { staryY = y[i, n]; y[i, n] = 0; if (tempKlasa.progiKlasy == null) { int t = tempKlasa.t; double a = aWiazka.ListaKlasRuchu[i].a; switch (tempKlasa.typ) { case trClass.typKlasy.ERLANG: y[i, n] = R[n - t] / R[n] * a * aWiazka.ListaKlasRuchu[i].sigmaZgl(y[i, n - t]) * sigmyStruktury[i, n - t]; break; case trClass.typKlasy.ENGSET: y[i, n] = R[n - t] / R[n] * a * aWiazka.ListaKlasRuchu[i].sigmaZgl(y[i, n - t]) * sigmyStruktury[i, n - t]; break; case trClass.typKlasy.PASCAL: y[i, n] = R[n - t] / R[n] * a * aWiazka.ListaKlasRuchu[i].sigmaZgl(y[i, n - t]) * sigmyStruktury[i, n - t]; break; } } else { for (int prNr = 0; prNr < tempKlasa.progiKlasy.liczbaPrzedziałow; prNr++) { int t = tempKlasa.progiKlasy[prNr].t; int popStan = n - t; if (tempKlasa.progiKlasy.nrPrzedzialu(popStan) == prNr) { double a = tempKlasa.atProgi(popStan) / t; y[i, n] += R[popStan] / R[n] * a * aWiazka.ListaKlasRuchu[i].sigmaZgl(y[i, popStan]) * sigmyStruktury[i, popStan]; } } } double bladY = Math.Abs((y[i, n] - staryY) / y[i, n]); if (bladY > maksBladY) { maksBladY = bladY; } } } }