[Archiv!] Reine Mathematik, Physik, Chemie usw.: Gehirntrainingsprobleme, die in keiner Weise mit dem Handel zusammenhängen - Seite 558

 
Wenn Vektor 1 orthogonal zu Vektor 2 und Vektor 2 orthogonal zu Vektor 3 ist, dann ist Vektor 1 auch im dreidimensionalen Raum nicht immer orthogonal zu Vektor 3, geschweige denn in mehreren Dimensionen.
 
alsu:
Es kann sein, dass sie nicht gleichgerichtet ist, sondern nur in einem schrägen Winkel zu allen oder einigen der Vektoren steht
Für die bereits verarbeiteten Eingaben geht das nicht, aber für die nächsten Eingaben schon, aber die nächsten Iterationen werden sie genauso behandeln.
 
MetaDriver:
Für die bereits verarbeiteten Daten ist das nicht möglich, aber für die nächsten Eingaben schon, aber die nächsten Iterationen werden sie genauso behandeln.
Die nächsten Iterationen behalten im Allgemeinen nicht die Orientierung an den zuvor verarbeiteten Vektoren bei - siehe meinen vorherigen Beitrag
 
alsu:
Wenn Vektor 1 orthogonal zu Vektor 2 und Vektor 2 orthogonal zu Vektor 3 ist, dann ist Vektor 1 selbst im dreidimensionalen Raum bei weitem nicht immer orthogonal zu Vektor 3, geschweige denn in mehreren Dimensionen.

Sie haben also nicht verstanden, worum es im Wesentlichen geht. Die Transformation bei jedem Schritt ist streng flach - sie setzt den Vektor in ortho-Position zum vorhergehenden und lässt ihn orthogonal zu allen vorhergehenden Vektoren. Das habe ich von Anfang an angestrebt. Das war das Problem (das jetzt gelöst ist).

Denken Sie noch einmal nach. Prüfen.

 
alsu:
Die folgenden Iterationen sind im Allgemeinen nicht orogonal zu den zuvor verarbeiteten Vektoren - siehe meinen vorherigen Beitrag

beibehalten.

Vielleicht habe ich mich nicht klar genug ausgedrückt. Ich werde jetzt ein vollständiges Schema schreiben. es ist ein kleines.

 
MetaDriver:

Sie verstehen also nicht, worum es im Wesentlichen geht. Die Transformation in jedem Schritt ist streng flach - sie bringt den Vektor in ortho-Position zum vorhergehenden und lässt ihn orthogonal zu allen vorhergehenden Vektoren. Das habe ich von Anfang an angestrebt. Das war das Problem (das jetzt gelöst ist).

Denken Sie noch einmal nach. Prüfen.

Ich habe es überprüft))

Die Transformation ist natürlich streng flach, und das Ergebnis ist im Allgemeinen vorzeichengenau, unabhängig von der Wahl des beliebigen Ausgangsvektors - aber! nur in dieser Ebene. Wer hat uns gesagt, dass wir aus einer unendlichen Anzahl von Möglichkeiten, eine Ebene durch einen gegebenen Vektor zu zeichnen, die richtige auswählen?

Hier ist ein Beispiel. Angenommen, Sie haben zwei Vektoren im 3-dimensionalen Raum: (1,0,0) und (0,sqrt(2),sqrt(2)). Sie sind orthogonal, wie Sie sehen können. Sie begannen damit, ein beliebiges x1 in der Ebene z=0 zu nehmen und damit einen orthogonalen Vektor (0,1,0) zum ersten Vektor zu konstruieren. Wir erhalten, dass der Algorithmus vollständig ist, aber das Ergebnis ist nicht erhalten - der dritte Vektor ist nicht orthogonal zu dem verbleibenden zweiten Vektor. Und um die richtige Antwort zu erhalten, muss man vorher dafür sorgen, dass man in der ersten Konstruktion die richtige Ebene wählt - und dann kommt man auf (0,-sqrt(2),sqrt(2)) oder die zweite mögliche Lösung.

 
double[dim]  GetOrtoVector(int dim, int count, double[][dim] &Input)

  {

    bool error=false;

    double[dim]  Result = RandomInit(dim);

    for (i=0; i<count; i++)  { Result = Ortogonalize(Result, Input[i], error); }
    
    if (error) return GetOrtoVector(dim,count,Input);  else    return Result;

  }

double[dim] Ortogonalize(double[dim] a, double[dim] b, bool &err)

  {

    double SP = sp(a,b);

    if (sp==1.0) {err = true; return a;} else {return  (a-SP*b);  }

  }

Ich habe nicht erklärt, wie man das Skalarprodukt und die anfängliche Vektorerzeugung erhält. Es ist ziemlich selbsterklärend.

Ich habe auch die Vektorsubtraktion und die Vektormultiplikation mit einer Zahl nicht beschrieben. Pseudocode ist genau so gut wie...

 
alsu:

Geprüft))

Die Transformation ist natürlich streng planar, und das Ergebnis ist im Allgemeinen auf ein Vorzeichen genau, unabhängig von der Wahl des ursprünglichen Vektors - aber nur in dieser Ebene. Wer sagt uns, dass wir aus einer unendlichen Anzahl von Möglichkeiten, eine Ebene durch einen gegebenen Vektor zu zeichnen, die richtige ausgewählt haben?

Hier ist ein Beispiel. Angenommen, Sie haben zwei Vektoren im 3-dimensionalen Raum: (1,0,0) und (0,sqrt(2),sqrt(2)). Sie sind orthogonal, wie Sie sehen können. Sie begannen damit, ein beliebiges x1 in der Ebene z=0 zu nehmen und damit einen orthogonalen Vektor (0,1,0) zum ersten Vektor zu konstruieren. Wir erhalten, dass der Algorithmus vollständig ist, aber das Ergebnis ist nicht erhalten - der dritte Vektor ist nicht orthogonal zu dem verbleibenden zweiten Vektor. Und um die richtige Antwort zu bekommen, muss man schon bei der ersten Konstruktion darauf achten, die richtige Ebene zu wählen - und dann kommt man auf die Variante (0,-sqrt(2),sqrt(2)) oder die zweite mögliche Lösung.

Ich werde das Flugzeug Z=0 nicht aufnehmen :))

Ich nehme einfach ein beliebiges x1 = {zufällig, zufällig, zufällig};

Wie groß ist die Wahrscheinlichkeit, dass er in die Ebene Z=0 fällt?

;-))

 
MetaDriver:

Ich werde nicht Z=0 nehmen :))

Ich nehme einfach random x1 = {random, random, random};

Wie groß ist die Wahrscheinlichkeit, dass er in die Ebene Z=0 fällt?

;-))

genau so groß wie die Wahrscheinlichkeit, die "richtige" Ebene zu treffen, d. h. Null ))
 
alsu:
genau so groß wie die Wahrscheinlichkeit, die "richtige" Ebene zu treffen, d. h. Null ))
Die Wahl eines beliebigen Vektors legt die Berechnungsebene fest - eine einzige Ebene kann durch 2 Vektoren gezeichnet werden. In meinem Beispiel können Sie eine beliebige Ebene aus einer unendlichen Anzahl von Ebenen nehmen und eine unendliche Anzahl von Lösungen erhalten, aber solange Sie nicht die richtige Ebene nehmen, werden Sie nicht die richtige Antwort erhalten.