Habe folgenden Code geschrieben:
Ausgabe sieht dann so aus:
Das programm soll eig nur die Matrix q mit dem vektor "pi" multiplizieren.
Scheint bis "Pi2" (siehe ausgabe) zu klappen
Aber dann um den Vektor Pi3 zu berechnen kommt dann die Zeile:
>0.3055555555555556 * 0.5833333333333334 = 0.17824074074074076
Meine Frage laute jetzt:
Warum steht da jetz 0.305555 hab doch an der Adresse 0 in Vektor pi 0.3333333333333333...
was ist da jetzt passiert?
Code:
public class Main { public static void main(String[] args) { double temp = 0; double[] finalpi = {0, 0, 0, 0}; double[] pi = {1, 0, 0, 0}; double[][] q = { {1.0/3.0, 7.0/12.0, 1.0/12.0, 0}, {1.0/3.0, 0, 0, 2.0/3.0}, {0, 11.0/12.0, 1.0/12.0, 0}, {0, 1.0/4.0, 0, 3.0/4.0} }; System.out.print("->Vektor Pi 1 ("+pi[0]+","+pi[1]+","+pi[2]+","+pi[3]+")"); //Start t2-t100 for(int t=1;t<100;t++) { for(int s=0;s<pi.length;s++) { for(int z=0;z<pi.length;z++) { temp+=pi[z]*q[z][s]; System.out.print("\n\n->"+pi[z]+" * "+q[z][s]+" = "+pi[z]*q[z][s]+"\n"); } finalpi[s]=temp; temp=0; } pi=finalpi; //Ausgabe: System.out.print("\n\n->Vektor Pi "+(t+1)+" ("); for(int x=0;x<pi.length;x++) { System.out.print(finalpi[x]); System.out.print(","); } System.out.print(")"); } } }
Ausgabe sieht dann so aus:
Code:
->Vektor Pi 1 (1.0,0.0,0.0,0.0) ->1.0 * 0.3333333333333333 = 0.3333333333333333 ->0.0 * 0.3333333333333333 = 0.0 ->0.0 * 0.0 = 0.0 ->0.0 * 0.0 = 0.0 ->1.0 * 0.5833333333333334 = 0.5833333333333334 ->0.0 * 0.0 = 0.0 ->0.0 * 0.9166666666666666 = 0.0 ->0.0 * 0.25 = 0.0 ->1.0 * 0.08333333333333333 = 0.08333333333333333 ->0.0 * 0.0 = 0.0 ->0.0 * 0.08333333333333333 = 0.0 ->0.0 * 0.0 = 0.0 ->1.0 * 0.0 = 0.0 ->0.0 * 0.6666666666666666 = 0.0 ->0.0 * 0.0 = 0.0 ->0.0 * 0.75 = 0.0 ->Vektor Pi 2 (0.3333333333333333,0.5833333333333334,0.08333333333333333,0.0,) ->0.3333333333333333 * 0.3333333333333333 = 0.1111111111111111 ->0.5833333333333334 * 0.3333333333333333 = 0.19444444444444445 ->0.08333333333333333 * 0.0 = 0.0 ->0.0 * 0.0 = 0.0 ->0.3055555555555556 * 0.5833333333333334 = 0.17824074074074076 <----??? ->0.5833333333333334 * 0.0 = 0.0 ->0.08333333333333333 * 0.9166666666666666 = 0.07638888888888888 ->0.0 * 0.25 = 0.0 ->0.3055555555555556 * 0.08333333333333333 = 0.025462962962962965 ->0.25462962962962965 * 0.0 = 0.0 ->0.08333333333333333 * 0.08333333333333333 = 0.006944444444444444 ->0.0 * 0.0 = 0.0 ->0.3055555555555556 * 0.0 = 0.0 ->0.25462962962962965 * 0.6666666666666666 = 0.1697530864197531 ->0.03240740740740741 * 0.0 = 0.0 ->0.0 * 0.75 = 0.0
Das programm soll eig nur die Matrix q mit dem vektor "pi" multiplizieren.
Scheint bis "Pi2" (siehe ausgabe) zu klappen
Aber dann um den Vektor Pi3 zu berechnen kommt dann die Zeile:
>0.3055555555555556 * 0.5833333333333334 = 0.17824074074074076
Meine Frage laute jetzt:
Warum steht da jetz 0.305555 hab doch an der Adresse 0 in Vektor pi 0.3333333333333333...
was ist da jetzt passiert?
Comment