ANLAGE 2

\(\(\( (*\ Da\ die\ Datenbasis\ nie\ exakt\ bekannt\ ist, \ 
      weil\ die\ Messwerte\ nur\ bis\ auf\ eine\ kleine\ Fehlertoleranz\ genau\ bestimmbar
\ sind, \ 
      befassen\ wir\ uns\ in\ dieser\ Anlage\ mit\ der\ Bestimmung\ der\ Konstanten\ K1, 
\ 
      K2\ und\ K3\ \((die\ die\ Reaktionskinematik\ bestimmen\ \((siehe\ Abschnitt\ 6)\))\), \ 
      falls\ die\ Daten\ leicht\ gestört\ sind . \ 
          Um\ dies\ zu\ tun, \ 
      werden\ wir\ uns\ zunächst\ für\ die\ Beispielkonstanten\ K1 = 2, K2 = 4, 
      K3 = 3\ eine\ Datenbasis\ erzeu - 
\ 
          gen . \ Dann\ stören\ wir\ die\ Daten\ und\ bestimmen\ aus\ dieser\ gestörten\ Datenbasis\ erneut\ die\ nun\ 
\ 
            leicht\ gestörten\ Konstanten\ K1, \ 
      K2\ und\ K3 . \ Als\ letztes\ berechnen\ wir, \ 
      wie\ weit\ die\ Werte
\ 
          der\ gestörten\ Konstanten\ von\ den\ ursprünglichen\ Werten\ K1 = 2, \ K2 = 4\ , 
      K3 = 3
\ abweichen . \ Es\ sei\ darauf\ hingewiesen, \ 
      dass\ die\ gesamte\ Anlage\ so\ konstruiert
\ ist, \ 
      dass\ man\ in\ der\ beigefügten\ Mathematica - 
        Datei\ Anlage2 . nb\ die\ Anzahl\ der
\ 
          Eingabedaten\ sowie\ die\ Grösse\ des\ relativen\ Fehlers, \ 
      mit\ dem\ man\ die
\ 
        dazugehörigen\ Ausgabedaten\ stört, \ 
      selbst\ auswählen\ kann\ und\ mit\ diesen
\ 
        geänderten\ Grössen\ das\ Programm\ starten\ \(\(kann\)\(.\)\)\ *) \)\(
\)\)\)

\(\(\(	\)\( (*\ 
      Zunächt\ geben\ wir\ die\ stöchiometrische\ Matrix\ \(\(an\)\(:\)\)\ *) \)\(
\)\(\ \ \ \)\(\(S\)\(:=\)\({{\(-2\), \(-2\), \(-1\)}, {\(-1\), 0, \(-1\)}, {0, 
          1, \(-1\)}}\)\(\ \ \)\)\)\)

( *  Die  Funktion  ρ ,  
      siehe Abschnitt 6,   ist  gegeben durch :  * )

ρ[{x_, y_, z_}, K1_, K2_, K3_] := 
      S . {K1*x^2*y, K2*x^2, K3*x*y*z} + {x, y, z}

(* 
      Die Funktion ρρ ist gegeben durch: *)

ρρ[{x_, y_, z_}, K1_, K2_, 
          K3_] := ρ[ρ[{x, y, z}, K1, K2, K3], K1, K2, 
          K3];

Konstantenvektor := {1, K1, (K1^2), (K1^3), (K1^4), K2, K1 K2, (K1^2) K2, 
        (K1^3) K2, (K2^2), K1 (K2^2), (K1^2) (K2^2), (K2^3), K3, K1 K3, 
        (K1^2) K3, (K1^3) K3, K2 K3, K1 K2 K3, (K1^2) K2 K3, (K2^2) K3, 
        K1 (K2^2) K3, (K3^2), K1 (K3^2), (K1^2) (K3^2), K2 (K3^2), 
        K1 K2 (K3^2), (K2^2) (K3^2), (K3^3), K1 (K3^3), K2 (K3^3), 
        (K3^4)}

Monomvektor = {{x, -4 (x^2) y, 
            2 (x^4) y + 8 (x^3) (y^2), -8 (x^5) (y^2) - 8 (x^4) (y^3), 
            8 (x^6) (y^3), -4 (x^2), 
            16 (x^3) y, -8 (x^5) y - 24 (x^4) (y^2), 16 (x^6) (y^2), 
            8 (x^3), -24 (x^4) y, 
            8 (x^6) y, -8 (x^4), -2 x y z, 
            3 (x^3) y z + 6 (x^2) (y^2) z, -14 (x^4) (y^2) z - 
              8 (x^3) (y^3) z, 
            16 (x^5) (y^3) z, -(x^3) y + 6 (x^2) y z, 
            (x^5) y + 2 (x^4) (y^2) - 10 (x^4) y z - 
              16 (x^3) (y^2) z, -2 (x^6) (y^2) + 24 (x^5) (y^2) z, 
            2 (x^4) y - 8 (x^3) y z, -2 (x^6) y + 8 (x^5) y z, 
            (x^2) (y^2) z + (x^2) y (z^2) + 
              x (y^2) (z^2), -(x^4) (y^2) z - 2 (x^3) (y^3) z - 
              7 (x^3) (y^2) (z^2) - 2 (x^2) (y^3) (z^2), 
            2 (x^5) (y^3) z + 10 (x^4) (y^3) (z^2), 
            (x^4) y z - (x^3) (y^2) z - 2 (x^3) y (z^2) - 
              2 (x^2) (y^2) (z^2), -(x^5) (y^2) z + 
              8 (x^4) (y^2) (z^2), -2 (x^5) y z, -(x^3) (y^2) (z^2) - (x^2) (y^3) (z^2) - (x^2) (y^2) (z^3), 
            3 (x^4) (y^3) (z^2) + 2 (x^3) (y^3) (z^3), (x^4) (y^2) (z^2), 
            (x^3) (y^3) (z^3)}, {y, -2 (x^2) y, 
            (x^4) y + 4 (x^3) (y^2), -4 (x^5) (y^2) - 4 (x^4) (y^3), 
            4 (x^6) (y^3), 0, 4 (x^3) y, -4 (x^5) y - 8 (x^4) (y^2), 
            8 (x^6) (y^2), 0, -4 (x^4) y, 4 (x^6) y, 
            0, -2 x y z, 
            2 (x^3) y z + 4 (x^2) (y^2) z, -8 (x^4) (y^2) z - 
              4 (x^3) (y^3) z, 
            8 (x^5) (y^3) z, -(x^3) y + 2 (x^2) y z, 
            (x^5) y + 2 (x^4) (y^2) - 6 (x^4) y z - 
              4 (x^3) (y^2) z, -2 (x^6) (y^2) + 12 (x^5) (y^2) z, 
            2 (x^4) y, -2 (x^6) y + 4 (x^5) y z, 
            (x^2) (y^2) z + (x^2) y (z^2) + 
              x (y^2) (z^2), -(x^4) (y^2) z - 2 (x^3) (y^3) z - 
              5 (x^3) (y^2) (z^2) - (x^2) (y^3) (z^2), 
            2 (x^5) (y^3) z + 5 (x^4) (y^3) (z^2), 
            (x^4) y z - (x^3) (y^2) z - 
              2 (x^3) y (z^2), -(x^5) (y^2) z + 
              4 (x^4) (y^2) (z^2), -2 (x^5) y z, -(x^3) (y^2) (z^2) - (x^2) (y^3) (z^2) - (x^2) (y^2) (z^3), 
            3 (x^4) (y^3) (z^2) + (x^3) (y^3) (z^3), (x^4) (y^2) (z^2), 
            (x^3) (y^3) (z^3)}, {z, 0, 0, 0, 0, 2 (x^2), -4 (x^3) y, 
            4 (x^4) (y^2), 0, -4 (x^3), 8 (x^4) y, 0, 
            4 (x^4), -2 x y z, 
            (x^3) y z + 2 (x^2) (y^2) z, -2 (x^4) (y^2) z, 
            0, -(x^3) y, 
            (x^5) y + 2 (x^4) (y^2) - 2 (x^4) y z + 
              4 (x^3) (y^2) z, -2 (x^6) (y^2), 
            2 (x^4) y + 4 (x^3) y z, -2 (x^6) y, 
            (x^2) (y^2) z + (x^2) y (z^2) + 
              x (y^2) (z^2), -(x^4) (y^2) z - 2 (x^3) (y^3) z - 
              3 (x^3) (y^2) (z^2), 2 (x^5) (y^3) z, 
            (x^4) y z - (x^3) (y^2) z - 2 (x^3) y (z^2) + 
              (x^2) (y^2) (z^2), -(x^5) (y^2) z, -2 (x^5) y z, -(x^3) (y^2) (z^2) - (x^2) (y^3) (z^2) - (x^2) (y^2) (z^3), 
            3 (x^4) (y^3) (z^2), (x^4) (y^2) (z^2), 
            (x^3) (y^3) (z^3)}};

Eingabedaten = 
        Flatten[Table[{x, y, z}, {x, 0, 2.1, 0.1}, {y, 0, 2.1, 0.1}, {z, 0, 
              2.1, 0.1}], 2];

\(\(\( (*\ 
      In\ den\ folgenden\ Zeilen\ werden\ diejenigen\ Eingabedaten\ entfernt, \ auf\ denen\ die\ Funktion\ ρρ\ negative\ Werte\ für\ K1 = 2, \ K2 = 4, \ 
      K3 = 3\ annimmt . 
	
              Wir\ erzeugen\ also\ zunächst\ die\ Funktionswerte\ von\ ρρ\ auf\ den\ \ Eingabe - 
	\(\(daten\)\(:\)\)\ *) \)\(\ \)\)\)

Xi0 = 
        Table[ρρ[Part[Eingabedaten, n], 2, 4, 3], {n, 1, 
            Length[Eingabedaten], 1}];

Hilf0 = x*Xi0;

Hilf2  = b *Eingabedaten;

\(\(\( (*\ 
      Die\ Liste\ mit\ Eigabedaten\ und\ dazugehörigen\ Werten\ von\ \ ρρ\ ist\ \(\(also\)\(\ \)\(:\)\)\ *) \)\(
\)\(
\)\(Hilf0\  + \ Hilf2;\)\)\)

\(\((\ \(\(*\)\(\ \)\(Im\)\(\ \)\(nächsten\)\(\ \)\(Schritt\)\(\ \)\(sortieren\)\(\ \)\(wir\)\(\ \)\(diejenigen\)\(\ \)\(Eingabe\)\) - \ 
        und\ Ausgabewerte
	\((sie\ von\ ρρ)\)\ aus, \ 
      deren\ Ausgabewerte\ für\ die\ dazugehörigen\ Eingabewerte\ 
	negativ\ sind\ *\ )\)\)

\(\(\(Hilf3 = 
        Cases[Hilf0 + Hilf2, {x*\((g_ /; g > 0)\) + b*h_, 
            x*\((k_ /; k > 0)\) + b*l_, x*\((j_ /; j > 0)\) + b*m_}];\)\(
\)
    \)\)

Hilf4 = 
        Cases[Hilf3, {x*(g_ /; g > 100) + b*h_, 
            x*(k_ /; k > 100) + b*l_, 
            x*(j_ /; j > 100) + b*m_}];

Hilf5 = 
        Cases[Hilf4, {x*(g_ /; g < 1000) + b*h_, 
            x*(k_ /; k < 1000) + b*l_, 
            x*(j_ /; j < 1000) + b*m_}];

Length[Hilf5]

EingabeNeu = Hilf5 /. {b -> 1, x -> 0};

AusgabeNeu = Hilf5 /. {b -> 0, x -> 1}

\(\(matA1 = 
        Flatten[Table[
            Monomvektor /. \ {x -> \(EingabeNeu[\([l]\)]\)[\([1]\)], 
                y -> \(EingabeNeu[\([l]\)]\)[\([2]\)], 
                z -> \(EingabeNeu[\([l]\)]\)[\([3]\)]}, {l, 1, 
              Length[EingabeNeu], 1}], 1];\)

 (*\ 
      Auch\ unsere\ neuen\ Ausgabedaten\ speichern\ wir\ in\ einer\ Liste, \ 
      die
			wir\ mit\ "AusNeu"\ \(\(bezeichnen\)\(.\)\)\ *) 
\)
\(\(AusNeu = Flatten[AusgabeNeu];\)
\)

system1 = Transpose[matA1] . matA1;

absolute1 = Transpose[matA1] . AusNeu;

ErgebUngest = LinearSolve[system1, absolute1];

(* Wir stören nun die Daten ein wenig und versuchen dann erneut den Vektor der Konstanten, insbesondere also auch K1, K2 und K3 zu bestimmen.
Die Störung ist so gewählt, dass der relative Fehler jedes einzelnen Wertes 1 Promille ist. Wir nehmen an, dass die Eingabedaten exakt bekannt sind und nur die Ausgabedaten gestört sind. Die gestörten Ausgabedaten sind also: *)

AusDatengest = 
      AusNeu  +  AusNeu*Table[0.001*Random[], {Length[AusNeu]}]

EinDatengest  = 
        EingabeNeu  +  
          EingabeNeu*
            Table[0.0000*{Random[], Random[], Random[]}, {Length[
                  EingabeNeu]}];

\(\(matA2 = 
        Flatten[Table[
            Monomvektor /. \ {x -> \(EinDatengest[\([l]\)]\)[\([1]\)], 
                y -> \(EinDatengest[\([l]\)]\)[\([2]\)], 
                z -> \(EinDatengest[\([l]\)]\)[\([3]\)]}, {l, 1, 
              Length[EinDatengest], 1}], 1];\)
\)
system2 = Transpose[matA2] . matA2;

absolute2 = Transpose[matA2] . AusDatengest;

Ergebnis = LinearSolve[system2, absolute2]

\(\(\( (*\ 
      Also\ ist\ im\ Fall\ gestörter\ Daten\ \(\(K1\)\(:\)\)\ *) \)\(
\)\(
\)\(Ergebnis[\([2]\)]\)\)\)

(* K2 beträgt nun: *)

Ergebnis[[6]]

\(\(\( (*\ 
      Und\ schliesslich\ ist\ K3\ im\ Fall\ dieser\ gestörten\ \(\(Daten\)\(:\)\)\ *) \)\(
\)\(
\)\(Ergebnis[\([14]\)]\)\)\)

Datenfehler = 
      Sqrt[(Ergebnis[[2]] - 
                ErgebUngest[[2]])^2 + (Ergebnis[[6]] - 
                ErgebUngest[[6]])^2 + (Ergebnis[[14]] - 
                ErgebUngest[[14]])^2]

\(\(\( (*\ Stört\ man\ also\ die\ Ausgabedaten, \ 
      so\ dass\ in\ unserem\ Fall\ der\ 
\ \ \ relative\ Fehler\ ungefähr\ 1\ Promille\ beträgt, \ 
      so\ ist\ der\ relative\ Fehler
\ \ \ zwischen\ den\ gestörten\ und\ den\ ungestörten\ \(\(Konstanten\)\(:\)\)\ *) \)\(
\)\(
\)\(\(Datenfehler/
      Sqrt[\((ErgebUngest[\([2]\)])\)^2 + \((ErgebUngest[\([6]\)])\)^2 + \((ErgebUngest[\([14]\)])\)^2]\)\(
\)
    \)\)\)

f[K1_, K2_, K3_] = {1, K1, (K1^2), (K1^3), (K1^4), K2, K1 K2, 
          (K1^2) K2, (K1^3) K2, (K2^2), K1 (K2^2), (K1^2) (K2^2), (K2^3), K3, 
          K1 K3, (K1^2) K3, (K1^3) K3, K2 K3, K1 K2 K3, (K1^2) K2 K3, 
          (K2^2) K3, K1 (K2^2) K3, (K3^2), K1 (K3^2), (K1^2) (K3^2), 
          K2 (K3^2), K1 K2 (K3^2), (K2^2) (K3^2), (K3^3), K1 (K3^3), 
          K2 (K3^3), 
          (K3^4)};

  

L = 
        Sqrt[Ergebnis[[2]]^2/3 + Ergebnis[[6]]^2/3 + 
            Ergebnis[[14]]^2/
              3];

Ergebskal = {x1, x2/L, x3/L^2, x4/L^3, x5/L^4, x6/L, x7/L^2, x8/L^3, 
          x9/L^4, x10/L^2, x11/L^3, x12/L^4, x13/L^3, x14/L, x15/L^2, 
          x16/L^3, x17/L^4, x18/L^2, x19/L^3, x20/L^4, x21/L^3, x22/L^4, 
          x23/L^2, x24/L^3, x25/L^4, x26/L^3, x27/L^4, x28/L^4, x29/L^3, 
          x30/L^4, x31/L^4, 
          x32/L^4};

\(\(\(\(DifferenzListe = 
          f[K1, K2, K3] - \ Ergebskal /. {x1 -> Ergebnis[\([1]\)], 
              x2 -> Ergebnis[\([2]\)], x3 -> Ergebnis[\([3]\)], 
              x4 -> Ergebnis[\([4]\)], x5 -> Ergebnis[\([5]\)], 
              x6 -> Ergebnis[\([6]\)], x7 -> Ergebnis[\([7]\)], 
              x8 -> Ergebnis[\([8]\)], x9 -> Ergebnis[\([9]\)], 
              x10 -> Ergebnis[\([10]\)], x11 -> Ergebnis[\([11]\)], 
              x12 -> Ergebnis[\([12]\)], x13 -> Ergebnis[\([13]\)], 
              x14 -> Ergebnis[\([14]\)], x15 -> Ergebnis[\([15]\)], 
              x16 -> Ergebnis[\([16]\)], x17 -> Ergebnis[\([17]\)], 
              x18 -> Ergebnis[\([18]\)], x19 -> Ergebnis[\([19]\)], 
              x20 -> Ergebnis[\([20]\)], x21 -> Ergebnis[\([21]\)], 
              x22 -> Ergebnis[\([22]\)], x23 -> Ergebnis[\([23]\)], 
              x24 -> Ergebnis[\([24]\)], x25 -> Ergebnis[\([25]\)], 
              x26 -> Ergebnis[\([26]\)], x27 -> Ergebnis[\([27]\)], 
              x28 -> Ergebnis[\([28]\)], x29 -> Ergebnis[\([29]\)], 
              x30 -> Ergebnis[\([30]\)], x31 -> Ergebnis[\([31]\)], 
              x32 -> 
                Ergebnis[\([32]\)]};\);\)\(
\)\(
\)\( (*\ 
      Als\ nächstes\ bstimmen\ wir\ den\ Abstand\ in\ der\ euklidischen\ Norm\ als\ Funktion
	\ \ von\ K1, \ K2\ K3, \ 
      den\ unser\ Konstantenvektor\ "Ergebskal"\ zu\ f \((K1, K2, 
          K3)\)\ \(\(hat\)\(.\)\)\ *) \)\(\ \)\(
\)\(
\)
    \)\)

Abstand[K1_, K2_, K3_] = 
        Sqrt[Sum[(DifferenzListe[[i]])^2, {i, 1, 
              Length[DifferenzListe]}]];

\(\(\( (*\ 
      Als\ nächstes\ berechnen\ wir\ den\ kleinsten\ Abstand
		\ des\ Vektors\ "Ergebskal"\ zu\ dem\ Graphen\ von\ \((K1, K2, 
            K3)\)\  -> 
	\ \ f \((K1, K2, K3)\), \ 
      indem\ wir\ das\ Minimum\ von\ der\ Funktion\ Abstand\ be - 
		\ stimmen . \ 
            Wir\ teilen\ anschliessend\ das\ Minimum\ noch\ durch\ die\ Wurzel\ der\ Länge\ des
\ \ \ \ \ \ Vektors\ "Ergebskal"\ \((\ hier : 32\ )\) . \ 
            Wir\ erhalten\ also\ als\ \(\(Modellfehler\)\(:\)\)\ *) \)\(\ \)\)\)

Modellfehler = 
      FindMinimum[
          Abstand[K1, K2, K3], {K1, 0.619}, {K2, 1.306}, {K3, 0.4155}]/
        Sqrt[32]

\(\(\( (*\ 
      Der\ erste\ Eintrag\ dieser\ Liste\ gibt\ den\ gesuchten\ Abstand\ \(\(wieder\)\(.\)\)\ *) \)\(
\)\(
\)\( (*\ 
      Es\ ist\ uns\ also\ gelungen\ eine\ Datenbasis\ zu\ konstruieren, \ 
      indem\ wir\ uns
	\ \ zunächst\ Konstanten\ K1, K2, 
      K3\ gewählt\ haben\ und\ dann\ die\ Daten\ explizit\ aus - 
		\ gerechnet\ haben . \ Durch\ die\ Annahme, \ 
      dass\ die\ Funktion\ ρ\ tatsählich\ die\ im
	\ \ gesamten\ Abschnitt\ angenommene\ Form\ hat, \ 
      und\ durch\ die\ Wahl\ unserer\ Konstanten
	\ \ und\ Eingabedaten\ \((die\ wir\ durch\ Rasterung\ eines\ Würfels\ erhalten\ haben)\), \ kann
	\ \ es\ jedoch\ passieren, \ 
      dass\ manche\ Ausgabedaten\ negativ\ sind . \ 
            Wir\ haben\ dieses
	\ \ Problem\ in\ diesem\ Anhang\ bedacht\ und\ alle\ Eingabedaten\ mit\ dazugehörigen\ Aus - 
		\ gabedaten\ eliminiert, \ 
      deren\ Ausgabedaten\ negativ\ sind . \ 
            Wir\ haben\ dann\ unsere
	\ \ konstruierten\ Ein - \ 
        und\ Ausgabedaten\ leicht\ gestört\ und\ konnten\ mit\ Hilfe\ dieser
	\ \ gestörten\ Datenbasis\ die\ dazugehörigen\ Konstanten\ K1, K2, 
      K3\ bestimmen\ und\ diese
	\ \ mit\ den\ ungestörten\ Werten\ \((hier : \ 2, 4, 3)\)\ vergleichen . \ 
          Wir\ haben\ festgestellt, 
	\ \ dass\ der\ relative\ Fehler\ der\ Konstanten\ K1, K2, 
      K3\ ungefähr\ einen\ Faktor\ 24\ grö - 
		\ sser\ ist\ als\ der\ relative\ Fehler, \ 
      mit\ dem\ wir\ jeden\ Eintrag\ der\ exakten\ Datenbasis
	\ \ gestört\ haben . \ Weiterhin\ ist\ es\ uns\ gelungen, \ 
      den\ Modellfehler\ zu\ bestimmen . 
\ \ \ \ \ \ Dieser\ relative\ Fehler\ gibt\ an, \ 
      wie\ weit\ der\ gestörte\ Konstantenvektor\ von
\ \ \ \ \ \ \ der\ Form\ des\ ursprünglichen\ Konstantenvektors\ abweicht . \ 
          Wir\ haben\ zur\ Bestimmung
\ \ \ \ \ \ \ dieses\ Fehlers\ den\ gestörten\ Konstantenvektor\ zunächst\ normiert, \ 
      und\ dann\ den
\ \ \ \ \ \ \ Abstand\ dieses\ normierten\ Vektors\ zu\ der\ Menge\ ALLER\ Konstantenvektoren\ \((wo
\ \ \ \ \ also\ K1, 
          K2\ und\ K3\ beliebig\ sind\ und\ die\ übrigen\ Einträge\ durch\ die\ Einträge\ im\ Konstantenvektor\ \ \ \ \ \ \ \ \ \ \ \ \((s . 
                o . )\)\ \ festgelegt\ sind\ und\ durch\ die\ Konstanten\ K1, 
          K2\ und\ K3\ bestimmt\ werden\ können)\)\ bestimmt . \ 
          Der\ Modellfehler\ war\ in\ unserem\ Beispiel\ etwa\ 1\ \(\(Prozent\)\(.\)\)\ *) \)\)\)