updated
This commit is contained in:
		
							parent
							
								
									2b1469f55e
								
							
						
					
					
						commit
						98bbb4776e
					
				| 
						 | 
				
			
			@ -161,7 +161,7 @@ void direkterVorgaenger()
 | 
			
		|||
		// Funktion fürs berechnen der Vorhersagezahl
 | 
			
		||||
		for (int i = 1; i < x_count; i++)
 | 
			
		||||
		{
 | 
			
		||||
			x_pred += (w[i, x_count] * (_x[x_count - i] - _x[x_count - i - 1]));
 | 
			
		||||
			x_pred += (w[i, x_count] * (_x[x_count - 1] - _x[x_count - i - 1]));
 | 
			
		||||
		}
 | 
			
		||||
		x_pred += _x[x_count - 1];
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -194,7 +194,7 @@ void direkterVorgaenger()
 | 
			
		|||
		double x_square = 0;
 | 
			
		||||
		for (int i = 1; i < x_count; i++)
 | 
			
		||||
		{
 | 
			
		||||
			x_square += Math.Pow(_x[x_count - i] - _x[x_count - i - 1], 2);
 | 
			
		||||
			x_square += Math.Pow(_x[x_count - 1] - _x[x_count - i - 1], 2);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Console.WriteLine(String.Format("X_square: {0}", x_square));
 | 
			
		||||
| 
						 | 
				
			
			@ -207,7 +207,7 @@ void direkterVorgaenger()
 | 
			
		|||
		// Funktion zum updaten der Gewichte
 | 
			
		||||
		for (int i = 1; i < x_count; i++)
 | 
			
		||||
		{
 | 
			
		||||
			w[i, x_count + 1] = w[i, x_count] + learnrate * x_error[x_count] * ((_x[x_count - i] - _x[x_count - i - 1]) / x_square);
 | 
			
		||||
			w[i, x_count + 1] = w[i, x_count] + learnrate * x_error[x_count] * ((_x[x_count - 1] - _x[x_count - i - 1]) / x_square);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		// Laufzeitvariable hochzählen
 | 
			
		||||
| 
						 | 
				
			
			@ -230,3 +230,97 @@ void direkterVorgaenger()
 | 
			
		|||
			String.Format("Quadratische Varianz(x_error): {0}\n Mittelwert(x_error): {1}\n\n", varianz, mittel),
 | 
			
		||||
			Encoding.UTF8);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**************************************************************
 | 
			
		||||
Errechnet die 3. Variante, mit abziehen des differenziellen Vorgängers
 | 
			
		||||
***************************************************************/
 | 
			
		||||
 | 
			
		||||
void differenziellerVorgaenger()
 | 
			
		||||
{
 | 
			
		||||
    //Array in dem e(n) gespeichert wird
 | 
			
		||||
    double[] x_error = new double[M];
 | 
			
		||||
 | 
			
		||||
    //Laufzeitvariable
 | 
			
		||||
    int x_count = 0;
 | 
			
		||||
 | 
			
		||||
    // x_count + 1 da x_count > 0 sein muss
 | 
			
		||||
    while (x_count + 1 < M)
 | 
			
		||||
    {
 | 
			
		||||
        // Variable für die errechnete Zahl
 | 
			
		||||
        double x_pred = 0.0;
 | 
			
		||||
 | 
			
		||||
        // Variable mit der eigentlichen Zahl
 | 
			
		||||
        double x_actual = _x[x_count + 1];
 | 
			
		||||
 | 
			
		||||
        // Funktion fürs berechnen der Vorhersagezahl
 | 
			
		||||
        for (int i = 1; i < x_count; i++)
 | 
			
		||||
        {
 | 
			
		||||
            x_pred += (w[i, x_count] * (_x[x_count - i] - _x[x_count - i - 1]));
 | 
			
		||||
        }
 | 
			
		||||
        x_pred += _x[x_count - 1];
 | 
			
		||||
 | 
			
		||||
        //Console.WriteLine(String.Format("X_pred: {0}", x_pred));
 | 
			
		||||
 | 
			
		||||
        // Hängt dem Angegebenen File den Vorgegebenen String an
 | 
			
		||||
        File.AppendAllText("differenziellerVorgaenger.txt",
 | 
			
		||||
           String.Format("{0}. X_pred {1}\n", x_count, x_pred),
 | 
			
		||||
           Encoding.UTF8);
 | 
			
		||||
 | 
			
		||||
        //Console.WriteLine(String.Format("X_actual: {0}", x_actual));
 | 
			
		||||
 | 
			
		||||
        // Hängt dem Angegebenen File den Vorgegebenen String an
 | 
			
		||||
        File.AppendAllText("differenziellerVorgaenger.txt",
 | 
			
		||||
            String.Format("{0}. X_actual {1}\n", x_count, x_actual),
 | 
			
		||||
            Encoding.UTF8);
 | 
			
		||||
 | 
			
		||||
        // Berechnung des Fehlers
 | 
			
		||||
        x_error[x_count] = x_actual - x_pred;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        //Console.WriteLine(String.Format("X_error: {0}", x_error));
 | 
			
		||||
 | 
			
		||||
        // Hängt dem Angegebenen File den Vorgegebenen String an
 | 
			
		||||
        File.AppendAllText("differenziellerVorgaenger.txt",
 | 
			
		||||
        String.Format("{0}. X_error {1}\n\n", x_count, x_error),
 | 
			
		||||
        Encoding.UTF8);
 | 
			
		||||
 | 
			
		||||
        // Funktion zum berechnen des Quadrates
 | 
			
		||||
        double x_square = 0;
 | 
			
		||||
        for (int i = 1; i < x_count; i++)
 | 
			
		||||
        {
 | 
			
		||||
            x_square += Math.Pow(_x[x_count - i] - _x[x_count - i - 1], 2);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Console.WriteLine(String.Format("X_square: {0}", x_square));
 | 
			
		||||
 | 
			
		||||
        // Hängt dem Angegebenen File den Vorgegebenen String an
 | 
			
		||||
        //File.AppendAllText("direkterVorgaenger.txt",
 | 
			
		||||
        //    String.Format("{0}. X_square {1}\n", x_count, x_square),
 | 
			
		||||
        //    Encoding.UTF8);
 | 
			
		||||
 | 
			
		||||
        // Funktion zum updaten der Gewichte
 | 
			
		||||
        for (int i = 1; i < x_count; i++)
 | 
			
		||||
        {
 | 
			
		||||
            w[i, x_count + 1] = w[i, x_count] + learnrate * x_error[x_count] * ((_x[x_count - i] - _x[x_count - i - 1]) / x_square);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Laufzeitvariable hochzählen
 | 
			
		||||
        x_count += 1;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Berechenen des mittleren Fehlers
 | 
			
		||||
    double mittel = x_error.Sum() / x_error.Length;
 | 
			
		||||
 | 
			
		||||
    // Berechenen der varianz des Fehlers
 | 
			
		||||
    double varianz = 0.0;
 | 
			
		||||
    foreach (double x_e in x_error)
 | 
			
		||||
    {
 | 
			
		||||
        varianz += Math.Pow(x_e - mittel, 2);
 | 
			
		||||
    }
 | 
			
		||||
    varianz /= x_error.Length;
 | 
			
		||||
 | 
			
		||||
    // Hängt dem Angegebenen File den Vorgegebenen String an
 | 
			
		||||
    File.AppendAllText("ergebnisse.txt",
 | 
			
		||||
            String.Format("Quadratische Varianz(x_error): {0}\n Mittelwert(x_error): {1}\n\n", varianz, mittel),
 | 
			
		||||
            Encoding.UTF8);
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue