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

 

Ich schlafe, ich schlafe.

 
Es scheint ein Standardverfahren zu geben, um eine orthonormale Menge zu konstruieren. Ob Lagrangesch oder etwas anderes. Gut, wenn Sie das Problem gelöst und bewiesen haben, was gibt es dann noch zu besprechen...
 
Mathemat:
Es scheint ein Standardverfahren zu geben, um eine orthonormale Menge zu konstruieren. Entweder die von Lagrange oder eine andere. Gut, wenn Sie das Problem gelöst und bewiesen haben, was gibt es dann noch zu besprechen...

Nein, nein, nein!!! Wenn Sie eine haben, dann posten Sie sie! Sehr interessant, ich habe keine gefunden.

Interessiert auf unterschiedliche Weise, da es die Geschwindigkeit der Lösung des Zielproblems beeinflussen kann.

 
tara:

Das macht Sinn. Womit werden wir Geld verdienen?

Devisen!
 
MetaDriver: Nenenyenne!!! Wenn ja, dann veröffentlichen Sie es! Das ist sehr interessant, ich habe danach gesucht und konnte es nicht finden.

Nun, ich habe mich noch nicht wirklich damit befasst. Das Gram-Schmidt-Verfahren stammt aus der linearen Algebra. Oder quadratische Formen.

Soweit ich es verstanden habe, reicht es aus, nicht mit dem ersten Schritt zu beginnen. Dort gibt es auch einen Beweis und geometrische Interpolationen.

Ich habe den Verdacht, dass es in den OpenCL-Funktionen etwas Natives für diesen Prozess geben sollte.

 

Die Methode der seriellen Orthogonalisierung ist in dem nachstehenden Code zu sehen. Der Gradient ist ein Zufallsvektor, aus dem die Projektionen auf die Basisvektoren entfernt werden. Die Basis befindet sich in einem eindimensionalen Array Sarray . Alle Arrays werden als global deklariert. Der Prozess ist, denke ich, aus den Kommentaren klar ersichtlich.

//+------------------------------------------------------------------+
//|  в массиве Sarray записан ортонормированный базис из k векторов  |
//|  размерности NeuroCellDim каждый                                 |
//|  строится ортогональная проекция вектора Gradient на базис       |
//|  в случае успеха проекция нормируется                            |
//|  и добавляется в базис, если позволяет признак записи: write > 0 |
//+------------------------------------------------------------------+
int OrthogonalProjection(int k, int write)
{
   int   i, j, err = 0, index = 0;
   double Alpha;
   if (k > 0) // если k>0, то базис не пуст
      for (i = 0; i < k; i++)
      {
         for (j = 0; j < NeuroCellDim; j++)
         {
            InputX[j] = Sarray[index]; // извлекаем i-й орт в InputX
            index++;
         }
         Alpha = ScalarProduct( Gradient, InputX); // скалярное произведение, cos(Gradient, InputX)
         if (Alpha > 1.0 - delta)   // если cos() = 1
         {
            err = -1; // считаем, что такой вектор линейно зависим от векторов базиса
            break;
         }
//       Gradient := Gradient - Alpha * InputX     с нормировкой       
         AddVektors( Gradient, InputX, -Alpha); // орт к базису из i+1 векторов
      }

   if (err >= 0 && write > 0) // если существует проекция и позволяет признак записи
      for (j = 0; j < NeuroCellDim; j++)  // записываем новый орт в базис
      {
         Sarray[index] = Gradient[j]; 
         index++;
      }      

   return(err);
}
//+--- OrthogonalProjection End -------------------------------------+
 

Leute, gebt mir einen Tipp. Ich habe mich verirrt. Das Problem ist folgendes: Es gibt eine Datenstichprobe, die durch eine lineare Regression (unabhängige Variable - Referenznummer) sehr gut approximiert wird.

Die Grafik zeigt eine lineare Regressionsgleichung. Ich möchte die Daten aus der Stichprobe so transformieren, dass sie in Bezug auf die Zählungen invariant sind. Ich habe versucht, einen freien Term der Gleichung durch arithmetische Operationen auszuwählen und Daten aus der Stichprobe in diesen Wert umzuwandeln. Aber am Anfang gab es eine solche Spitze auf dem Niveau von 0,7, 0,46 usw., die bis zur Asymptote des erforderlichen Niveaus ging. Woher kam diese Spitze am Anfang? Kann sie durch eine Änderung der Formel beseitigt werden?

Excel ist für alle Fälle beigefügt.

Dateien:
 
alexeymosc:

Leute, ein kleiner Ratschlag. Ich habe mich verirrt. Das Problem ist folgendes: Es gibt eine Datenstichprobe, die durch eine lineare Regression (unabhängige Variable - Referenznummer) sehr gut approximiert wird.

Die Grafik zeigt eine lineare Regressionsgleichung. Ich möchte die Daten aus der Stichprobe so transformieren, dass sie in Bezug auf die Zählungen invariant sind. Ich habe versucht, einen freien Term der Gleichung durch arithmetische Operationen auszuwählen und Daten aus der Stichprobe in diesen Wert umzuwandeln. Aber am Anfang gab es eine solche Spitze auf dem Niveau von 0,7, 0,46 usw. bis zur Asymptote des erforderlichen Niveaus. Woher kam diese Spitze am Anfang? Kann sie durch eine Änderung der Formel beseitigt werden?

Excel ist für alle Fälle beigefügt.

OK, wenn es keine anderen Lösungen gibt, habe ich nach einer Lösung gesucht, um den Wert des freien Terms der Gleichung zu finden, wobei ich R^2 bereits durch die neue Reihe minimiert habe (die von der ursprünglichen Reihe abgeleitet ist und die invariant sein sollte), d.h. ich habe sie fast linear gemacht. Offensichtlich besteht das Problem darin, dass die Originaldaten nicht vollkommen linear sind...
 
alexeymosc:

Leute, gebt mir einen Tipp. Ich habe mich verirrt. Das Problem ist folgendes: Es gibt eine Datenstichprobe, die sehr gut durch eine lineare Regression angenähert wird (die unabhängige Variable ist die Referenznummer).

Die Grafik zeigt eine lineare Regressionsgleichung. Ich möchte die Daten aus der Stichprobe so transformieren, dass sie in Bezug auf die Zählungen invariant sind. Ich habe versucht, einen freien Term der Gleichung durch arithmetische Operationen auszuwählen und Daten aus der Stichprobe in diesen Wert umzuwandeln. Aber am Anfang gab es eine solche Spitze auf dem Niveau von 0,7, 0,46 usw. bis zur Asymptote des erforderlichen Niveaus. Woher kam diese Spitze am Anfang? Kann sie durch eine Änderung der Formel beseitigt werden?

Excel ist für alle Fälle beigefügt.

Nun, das bedeutet nur eines - der relative Fehler der Annäherung ist umso größer, je kleiner X (und Y) ist, aber was erwarten Sie, wenn Sie eine kleine Zahl durch eine andere kleine Zahl teilen? Versuchen Sie, die Variable X' = X+100 zu ändern und eine neue Reihe im Bereich von 100 bis 400 und nicht von 0 bis 300 zu zeichnen - das Diagramm wird viel gerader, aber es ändert nichts an der Sache
 

1.

Mislaid 10.03.2012 05:46Methode der konsistenten Orthogonalisierung kann in dem Stück Code unten gesehen werden. Gradient ist ein Zufallsvektor

Mathemat:

1. Nun, ich habe mich noch nicht wirklich damit befasst. Das Gram-Schmidt-Verfahren wird in der linearen Algebra gelehrt. Oder quadratische Formen.

Soweit ich weiß, reicht es nicht aus, mit dem ersten Schritt zu beginnen. Dort gibt es auch einen Beweis und geometrische Interpolationen.

2. Ich habe die Vermutung, dass es für diesen Prozess in den OpenCL-Funktionen eine eigene Funktion geben sollte.

1. 1. zu Mislaid, Mathemat,

Sowohl hier als auch dort ist es überall dasselbe - derselbe Prozess, den ich gestern selbst entwickelt habe. Konsekutive Subtraktion von Vektorprojektionen auf vorherige Orthos.

An Tagen wie diesen fühle ich mich wie ein klassischer.... :-))

--

Übrigens habe ich mein Testskript bereits gestern Abend erstellt und getestet. Ich habe auch einen Fehler im Optimierer gefunden und ihn an servicedesk geschickt. Ich habe den Fehler umgangen, indem ich den Code leicht geändert habe. Es funktioniert also alles. Zuverlässig und schnell, genau so, wie ich es brauchte.

2. In OpenZL gibt es tatsächlich eine, allerdings nur für den dreidimensionalen Fall. [cross(a, b); bildet einen zu zwei gegebenen orthogonalen Vektoren] Ich brauche es für beliebige Dimensionen.