[LA] Blatt 6

[AfI] Analysis für Informatiker
[Diskrete] Diskrete Strukturen
[LA] Lineare Algebra
[Stocha] Einführung in die angewandte Stochastik
[NumRech] Numerisches Rechnen

Beitragvon Alexander Urban » 22.05.07 13:52

Quinie hat geschrieben:grml habe ich richtig verstanden wenn man sagt die basis vektoren multipliziert mit der kontrollmatrix ergeben eine nullmatrix?
Da die Basisvektoren Vektoren des Codes sind, ja.
Aber nicht nur die Basisvektoren, sondern alle Elemente des Codes ("Codewörter"), und vor allem: nur genau diese.

Deswegen heißt die Prüfmatrix Prüfmatrix: Multiplizierst du ein empfangenes Wort mit der Prüfmatrix, kommt ne Nullmatrix heraus, wenn das empfangene Wort im Code enthalten ist - man kann mit der Matrix also sehr schnell prüfen, ob ein empfangenes Wort im Code enthalten (also richtig) ist, und braucht nicht umständlich zu versuchen, das empfangene Wort als Linearkombination aus den Basisvektoren zu schreiben.

Außerdem lässt sich bei manchen Codes schon aus dem Ergebnis der Multiplikation ablesen, wo der Übertragungsfehler aller Wahrscheinlichkeit nach steckt und wie das gesendete Wort gelautet haben mag. ("Wahrscheinlich" deshalb, weil man sich nie sicher sein kann, ob nicht mehr Bits umgekippt sind als man erkennen kann - dann klappts mit dem Decodieren nicht mehr)
Nicht der Staat gewährt den Bürgern Freiheit, sondern die Bürger dem Staat Einschränkungen ihrer Rechte.

Kontrollierende und inhaltlich wertende Eingriffe in eine technologisch neutrale Infrastruktur sind eine Gefahr für den freiheitlichen Rechtsstaat.
Alexander Urban
 
Beiträge: 699
Registriert: 19.04.06 20:25
Wohnort: KaWo2
Studiengang: Informatik (Dipl.)
Studiert seit: SS 07
Anwendungsfach: Medizin

Beitragvon Quinie » 22.05.07 13:54

Ich hätte dann ne Prüfmatrix 1Zeile und 5 Spalten mit 4 einsen und 1ner null, kann das stimmen?

Achja und dAnke^^
Benutzeravatar
Quinie
 
Beiträge: 358
Registriert: 25.10.06 10:55
Wohnort: Simmerath / Lammersdorf

Beitragvon lebowski » 22.05.07 14:18

Quinie hat geschrieben:Ich hätte dann ne Prüfmatrix 1Zeile und 5 Spalten mit 4 einsen und 1ner null, kann das stimmen?
negativ. meine matrix ist zwei zeilen tief. gib deine lösung an, dann sag ich dir ein wort das nicht im code ist aber multipliziert mit deiner kontrollmatrix 0 ergibt.

wenn ich richtiög rate, wie deine kontollmatrix aussieht, müsste bei (1,0,1,0,0) 0 rauskommen. dieser vektor ist aber nicht element des codes.
herr, du hast mir das können genommen
nimm mir auch das müssen
Benutzeravatar
lebowski
 
Beiträge: 403
Registriert: 09.04.06 16:48

Beitragvon Quinie » 22.05.07 14:28

grml stimmt
Benutzeravatar
Quinie
 
Beiträge: 358
Registriert: 25.10.06 10:55
Wohnort: Simmerath / Lammersdorf

Beitragvon Quinie » 22.05.07 14:37

k jetzt habe ichs die 2te hat dann 3 nullen und 2 einsen

mit dem 1fachen fehler ist z.B (10010) gemeint weil man dort bei der 2ten zeile den fehler nicht erkennen würde da es ja auch ein wort wäre?
Benutzeravatar
Quinie
 
Beiträge: 358
Registriert: 25.10.06 10:55
Wohnort: Simmerath / Lammersdorf

Beitragvon Alexander Urban » 22.05.07 14:45

Es ist der zweite Eintrag allgemein gemeint. Bei jedem Codewort kann das zwote "Bit" "umkippen" ohne dass man den Code verlässt.
Nicht der Staat gewährt den Bürgern Freiheit, sondern die Bürger dem Staat Einschränkungen ihrer Rechte.

Kontrollierende und inhaltlich wertende Eingriffe in eine technologisch neutrale Infrastruktur sind eine Gefahr für den freiheitlichen Rechtsstaat.
Alexander Urban
 
Beiträge: 699
Registriert: 19.04.06 20:25
Wohnort: KaWo2
Studiengang: Informatik (Dipl.)
Studiert seit: SS 07
Anwendungsfach: Medizin

Beitragvon Quinie » 22.05.07 14:47

KK danke
Benutzeravatar
Quinie
 
Beiträge: 358
Registriert: 25.10.06 10:55
Wohnort: Simmerath / Lammersdorf

Beitragvon lebowski » 22.05.07 18:49

hier für leute die keinen nerv haben was für die erste von 42 zu programmieren.
Code: Alles auswählen
package LA1;

public class Vektorräume{ // von K^3 wobei K=Z_5
   
   public static void main(String[] args){
      VektorRaumKlasse[] klassen=new VektorRaumKlasse[0];
      VektorRaum[][][] vr=new VektorRaum[5][5][5];
      for(int ia=0;ia<5;ia++){
         for(int ib=0;ib<5;ib++){
            for(int ic=0;ic<5;ic++){
               vr[ia][ib][ic]=new VektorRaum(new Vektor(ia,ib,ic));
               boolean passt=false;
            for1:for(int ivrk=0;ivrk<klassen.length;ivrk++){
                  if(klassen[ivrk].addVektorRaum(vr[ia][ib][ic])){
                     passt=true;
                     break for1;
                  }
               }
               if(!passt){
                  VektorRaumKlasse[] temp=new VektorRaumKlasse[klassen.length+1];
                  for(int i=0;i<klassen.length;i++){
                     temp[i]=klassen[i];
                  }
                  temp[klassen.length]=new VektorRaumKlasse(vr[ia][ib][ic]);
                  klassen=temp;
               }
            }
         }
      }
      System.out.println(" "+klassen.length+" klassen gefunden");
      for(int ik=0;ik<klassen.length;ik++){
         System.out.println();
         for(int ir=0;ir<klassen[ik].raum.length;ir++){
            System.out.print(" /"+klassen[ik].raum[ir].v[1].a+"\\");
         }
         System.out.println();
         for(int ir=0;ir<klassen[ik].raum.length;ir++){
            System.out.print(" |"+klassen[ik].raum[ir].v[1].b+"|");
         }
         System.out.println();
         for(int ir=0;ir<klassen[ik].raum.length;ir++){
            System.out.print(" \\"+klassen[ik].raum[ir].v[1].c+"/");
         }
         System.out.println();
      }
   }
   
   public static class VektorRaumKlasse{
      VektorRaum[] raum;
      public VektorRaumKlasse(VektorRaum erster){
         raum=new VektorRaum[1];
         raum[0]=erster;
      }
      public boolean addVektorRaum(VektorRaum v){
         if(raum[0].gleich(v)){
            VektorRaum[] temp=new VektorRaum[raum.length+1];
            for(int i=0;i<raum.length;i++){
               temp[i]=raum[i];
            }
            temp[raum.length]=v;
            raum=temp;
            return true;
         }
         return false;
      }
   }
   
   public static class VektorRaum{
      Vektor[] v;
      public VektorRaum(Vektor basis){
         v=new Vektor[5];
         for(int i=0;i<5;i++){
            v[i]=new Vektor((i*basis.a)%5,(i*basis.b)%5,(i*basis.c)%5);
         }
      }
      public boolean gleich(VektorRaum raum2){
         for(int i1=0;i1<5;i1++){
            boolean esgibtgleichen=false;
            for(int i2=0;i2<5;i2++){
               if(v[i1].a==raum2.v[i2].a && v[i1].b==raum2.v[i2].b && v[i1].c==raum2.v[i2].c)esgibtgleichen=true;
            }
            if(!esgibtgleichen)return false;
            boolean esgibtgleichen2=false;
            for(int i2=0;i2<5;i2++){
               if(v[i2].a==raum2.v[i1].a && v[i2].b==raum2.v[i1].b && v[i2].c==raum2.v[i1].c)esgibtgleichen2=true;
            }
            if(!esgibtgleichen2)return false;
         }
         return true;
      }
   }
   
   public static class Vektor{
      int a,b,c;
      public Vektor(int a,int b, int c){
         this.a=a;this.b=b;this.c=c;
      }
   }
}

btw gibts dafür auch ne formel?
herr, du hast mir das können genommen
nimm mir auch das müssen
Benutzeravatar
lebowski
 
Beiträge: 403
Registriert: 09.04.06 16:48

Beitragvon $veno » 22.05.07 23:57

Hmm, hab meine Kontrollmatrix einfach so gewählt, indem ich ne allgemeine 2x5 Matrix aufgestellt habe mit Komponenten a bis j. Dadurch, dass man 3 Basisvektoren hat, kann man weil die Matrix 2 Zeilen hat davon insgesamt 6 Gleichungen davob ableiten, durch welche sich die 10 Koeffizienten der Matrix ziemlich gut wählen lassen.

Müsste so gehen oder?


Gruss Sven
Benutzeravatar
$veno
 
Beiträge: 324
Registriert: 24.12.06 19:46
Wohnort: Aachen

Beitragvon Alexander Urban » 23.05.07 01:30

Ich hab die 3 Vektoren in ne Matrix geschrieben, diese transponiert, in ne vollständige ZSF gebracht und den Nullraum ausgerechnet. Dieser transponiert ist H, denn: \mathbb{L}_0(H) = C \leftrightarrow \mathbb{L}_0(C^t) = H^t
Zuletzt geändert von Alexander Urban am 23.05.07 11:38, insgesamt 1-mal geändert.
Nicht der Staat gewährt den Bürgern Freiheit, sondern die Bürger dem Staat Einschränkungen ihrer Rechte.

Kontrollierende und inhaltlich wertende Eingriffe in eine technologisch neutrale Infrastruktur sind eine Gefahr für den freiheitlichen Rechtsstaat.
Alexander Urban
 
Beiträge: 699
Registriert: 19.04.06 20:25
Wohnort: KaWo2
Studiengang: Informatik (Dipl.)
Studiert seit: SS 07
Anwendungsfach: Medizin

Beitragvon Max » 23.05.07 02:28

Alexander Urban hat geschrieben:(btw: wie schreibt man das L für Lösungsmengen in Tex?)


Sollte mit \mathbb{L} = \mathbb{L} funktionieren.
Max
 
Beiträge: 36
Registriert: 31.10.06 13:34

Beitragvon fw » 23.05.07 11:46

Alexander Urban hat geschrieben:\mathbb{L}_0(H) = C \leftrightarrow \mathbb{L}_0(C^t) = H^t


Woher hast du das?

Was soll das überhaupt heißen? Wie soll ein Lösungsraum (\mathbb{L}_0(C^t)) gleich einer Matrix (H^t) sein? Das eine ist eine Menge, das andere eine Matrix..
Benutzeravatar
fw
 
Beiträge: 1356
Registriert: 17.05.06 19:37
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Mathe

Beitragvon paganlord » 23.05.07 15:52

zu Codes findet ihr auch hier etwas: http://schattenwelten.tvk.rwth-aachen.d ... skrete.pdf

btw: kann mir mal jemand erklären, wie man am besten erkennt, ob/wann
ker (phi o psi) Teilmenge von psi ist? Tausche auch rechte mit linker Seite und phi mit psi und ker mit Im und permutiere das alles durcheinander :-)
Also es geht mir hier um den Aufgabentyp insgesamt, nicht um diese Lösung im speziellen. Diese Dinger kommen auch immer in den Klausuren.
09F911029D74E35BD84156C5635688C0
paganlord
 
Beiträge: 162
Registriert: 16.09.06 12:42
Wohnort: TvK

Beitragvon Stasik » 23.05.07 16:31

fw hat geschrieben:
Alexander Urban hat geschrieben:\mathbb{L}_0(H) = C \leftrightarrow \mathbb{L}_0(C^t) = H^t


Woher hast du das?

Was soll das überhaupt heißen? Wie soll ein Lösungsraum (\mathbb{L}_0(C^t)) gleich einer Matrix (H^t) sein? Das eine ist eine Menge, das andere eine Matrix..


mit C^t ist G^t gemeint.. also ein raum kann man immer als SR einer Matrix darstellen, aber sonst hat er recht, der alex
3 Träume des Studenten:
Während der Vorlesungen: Mann, wann werde ich endlich essen!
Während des Praktikums: Mann, wann werde ich endlich schlafen!
Während der Klausurphase: Mann, wann werde ich endlich sterben!
Benutzeravatar
Stasik
 
Beiträge: 419
Registriert: 11.04.06 18:16
Studiengang: Informatik (Dipl.)
Studiert seit: SS 06
Anwendungsfach: E-Technik

Beitragvon paganlord » 23.05.07 16:47

ah, ich glaub ich habe diese kern/Bild psi phi Dinger kapiert:
Zuerst verknüpft man die Abbildungen psi und phi wie angegeben und schaut dann, ob man dadurch in V oder W gelandet ist.
Bei phi = V -> W ist der Kern die Menge der v aus V, die auf 0 aus W abgebildet werden und das Bild sind die w aus W, die überhaupt getroffen werden.

Bsp: Steht da jetzt ker (psi o phi) Teilmenge von ker psi:
Links bekommt man v aus V, die auf 0 aus V abgebildet werden,
Rechts w aus W, die auf 0 aus V abgebildet werden
=> keine Teilmenge.

ist das so richtig?
09F911029D74E35BD84156C5635688C0
paganlord
 
Beiträge: 162
Registriert: 16.09.06 12:42
Wohnort: TvK

VorherigeNächste

Zurück zu Mathematik