[Archives] Mathématiques pures, physique, chimie, etc. : problèmes d'entraînement cérébral sans rapport avec le commerce. - page 561

 

Je suis endormi, je suis endormi.

 
Il semble y avoir une procédure standard pour construire un ensemble orthonormé. Que ce soit un Lagrangien ou autre chose. D'accord, si vous avez résolu le problème et l'avez prouvé, alors qu'est-ce qu'il y a à dire...
 
Mathemat:
Il semble y avoir une procédure standard pour construire un ensemble orthonormé. Soit celui de Lagrange, soit un autre. D'accord, si vous avez résolu le problème et l'avez prouvé, alors qu'est-ce qu'il y a à dire...

Non non non ! !! Si vous en avez une, allez-y, postez-la ! Très intéressant, je n'en ai pas trouvé.

Intéressé de différentes manières, car cela peut affecter la vitesse de résolution du problème cible.

 
tara:

C'est logique. Sur quoi allons-nous gagner de l'argent ?

Forex !
 
MetaDriver: Nenenyenne ! !! Si c'est le cas, allez-y et publiez-le ! C'est très intéressant, je l'ai cherché et je ne l'ai pas trouvé.

Je ne me suis pas encore vraiment plongé dedans. Le procédé Gram-Schmidt, c'est de l'algèbre linéaire. Ou des formes quadratiques.

D'après ce que j'ai compris, c'est suffisant pour commencer et ce n'est pas la première étape. Il y a une preuve là aussi, et des interpolations géométriques.

J'ai le sentiment qu'il devrait y avoir quelque chose de natif pour ce processus dans les fonctions OpenCL.

 

La méthode d'orthogonalisation en série peut être vue dans le morceau de code ci-dessous. Le gradient est un vecteur aléatoire duquel sont retirées les projections sur les vecteurs de base. La base est située dans un tableau unidimensionnel Sarray . Tous les tableaux sont déclarés comme globaux. Le processus est, je pense, clair dans les commentaires.

//+------------------------------------------------------------------+
//|  в массиве 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 -------------------------------------+
 

Les gens, donnez-moi un indice. Je suis perdue. Le problème est le suivant : il existe un échantillon de données qui est très bien approché par une régression linéaire (la variable indépendante est le numéro de référence).

Le graphique montre une équation de régression linéaire. Je veux transformer les données de l'échantillon pour qu'elles soient invariantes par rapport aux comptages. J'ai essayé de sélectionner un terme libre de l'équation par des opérations arithmétiques et de transformer les données de l'échantillon en cette valeur. Mais au début, un tel pic est apparu au niveau de 0,7, 0,46 etc. jusqu'à l'asymptote du niveau nécessaire. D'où vient ce pic du début ? Peut-on l'éliminer en modifiant la formule ?

Le fichier Excel est joint au dossier, au cas où.

Dossiers :
 
alexeymosc:

Les gens, donnez-moi un indice. Je suis perdue. Le problème est le suivant : il existe un échantillon de données qui est très bien approché par une régression linéaire (la variable indépendante est le numéro de référence).

Le graphique montre une équation de régression linéaire. Je veux transformer les données de l'échantillon pour qu'elles soient invariantes par rapport aux comptages. J'ai essayé de sélectionner un terme libre de l'équation par des opérations arithmétiques et de transformer les données de l'échantillon en cette valeur. Mais au début, il y a eu un pic au niveau de 0,7, 0,46 etc. jusqu'à l'asymptote du niveau nécessaire. D'où vient ce pic du début ? Peut-on l'éliminer en modifiant la formule ?

Le fichier Excel est joint au dossier, au cas où.

OK, s'il n'y a pas d'autres solutions, j'ai cherché une solution pour trouver la valeur du terme libre de l'équation, en minimisant R^2 déjà par la nouvelle série (dérivée de l'originale et qui devrait être invariante), c'est-à-dire que je l'ai rendue presque linéaire. Apparemment, le problème est que les données originales ne sont pas parfaitement linéaires...
 
alexeymosc:

Les gens, donnez-moi un indice. Je suis perdue. Le problème est le suivant : il existe un échantillon de données qui est très bien approché par une régression linéaire (la variable indépendante est le numéro de référence).

Le graphique montre une équation de régression linéaire. Je veux transformer les données de l'échantillon pour qu'elles soient invariantes par rapport aux comptages. J'ai essayé de sélectionner un terme libre de l'équation par des opérations arithmétiques et de transformer les données de l'échantillon en cette valeur. Mais au début, il y a eu un pic au niveau de 0,7, 0,46 etc. jusqu'à l'asymptote du niveau nécessaire. D'où vient ce pic du début ? Peut-on l'éliminer en modifiant la formule ?

Le fichier Excel est joint au dossier, au cas où.

Eh bien, cela ne signifie qu'une chose - l'erreur relative d'approximation est d'autant plus grande que X (et Y) est petit, mais à quoi vous attendez-vous, en divisant un petit nombre par un autre petit nombre ? Essayez de changer la variable X' = X+100 et de tracer une nouvelle série dans l'intervalle de 100 à 400, et non de 0 à 300 - le graphique sera beaucoup plus droit, mais cela ne changera pas la question
 

1.

Mislaid 10.03.2012 05:46La méthode d'orthogonalisation cohérente peut être vue dans le morceau de code ci-dessous. Le gradient est un vecteur aléatoire

Mathemat:

1. Eh bien, je n'ai pas encore vraiment commencé. Le procédé Gram-Schmidt, ils l'enseignent en algèbre linéaire. Ou des formes quadratiques.

D'après ce que je comprends, il ne suffit pas de commencer par la première étape. Il y a une preuve là aussi, et des interpolations géométriques.

2. J'ai l'intuition qu'il devrait y avoir quelque chose de natif à ce processus dans les fonctions OpenCL.

1. 1. à égarer, Mathemat,

Ici et là-bas, c'est partout pareil - le même processus que j'ai conçu moi-même hier. Soustraction consécutive des projections vectorielles sur les orthos précédentes.

Ce sont des jours comme celui-ci qui me donnent l'impression d'être un classique : ..... :-))

--

Au fait, j'ai déjà réalisé et débogué mon script de test hier soir. J'ai également trouvé un bug dans l'optimiseur et l'ai envoyé à Servicedesk. J'ai contourné le bug en modifiant légèrement le code. Donc tout fonctionne. Fiable et rapide, exactement comme j'en avais besoin.

2. Il en existe vraiment un dans OpenZL, mais seulement pour le cas tridimensionnel. [cross(a, b) ; construit un vecteur orthogonal à deux données ] J'en ai besoin pour une dimension arbitraire.