Système d'équations

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
Sylviel
Modérateur
Messages: 6466
Enregistré le: 20 Jan 2010, 14:00

par Sylviel » 11 Avr 2013, 08:52

Je ne pensais pas à cette discussion que je ne connaissais pas mais à une autre que tu as pu faire ici. J'ai jeté un oeil rapide et la discussion a consisté à essayer de te faire expliciter en termes mathématiques compréhensibles ton problème. Je ne vois pas en quoi ce n'est pas constructif...

Mais sinon cette discussion est dans la ligne droite des précédentes :
- tu n'as qu'un maigre bagage mathématique théorique
- tu es bourré de certitudes sur ce qui est et n'est pas dans tous les domaines
- et tu refuses d'envisager autre choses.
Dès que l'on essaie de te faire préciser les choses et de te démontrer tes erreurs tu t'échappe, sans vouloir te remettre en question. Dès que l'on te donne des exemples tu les ignorent ou dis "mais dans la vraie vie ça n'existe pas".

Bref un jour j'arriverais peut être à m'empêcher d'essayer de te faire progresser d'élargir ton champ de vision : c'est peine perdue.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.



Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 11 Avr 2013, 14:33

Bonjour Sylviel,
Mon exposé du problème devait effectivement être mal fait, je pensais pourtant avoir bien précisé que je proposais ce calcul à qui pouvait être intéressé, mais que de toute façon, je m'apprêtais à le faire. En conséquence, toutes les réflexions du genre "c'est pas possible" étaient, pas définition hors-sujet, et particulièrement désagréables.
Puisque le résultat semble intéresser Léon, voila une partie du code. Il y a beaucoup de commentaires, c'est une vieille habitude.
Code: Tout sélectionner
  if (Type == 2)
  {
// la Latitude est tab[i].x; la longitude tab[i].y
fprintf(espion," aMoy=%0.2f bMoy=%0.2f xMoy=%0.2f yMoy=%0.2f \n",aMoy,bMoy,xMoy,yMoy);
// correction des X et Y si la la base nouvelle est en coordonnées géographiques
// cad Type == 2 Dans x et y on a respectivement Lat et Lon
// il faut transformer les valeurs X et Y pour tenir compte de la différence de latitude
// Arbitrairement, point central latitude moyenne et XM, non XM est calculé avec CxA
// on ne corrige que les X, la transformation affine fera le reste.
// formule dx = (X-XM) / cos(Lat)
// on calcule un rapport de déformation de distance
// il faut déterminer pour chaque latitude,
// pour chaque point, on calcore Xzero cad dx

// Le résultat
/*
Ajustement linéaire à faire
1- pour déterminer de CxA  (translation en X)
2- pour déterminer la latitude approcher, pour corriger l'X.
*/
    double R2=AjLineaire('A');
    if (R2 FicName=NomFic;
  R->Caption="Résultat de transformation affine 2D ("+NomFic+")";
  R->RichEdit1->Lines->Add("Données de base");
/*
a et b sont les valeurs anciennes
x et y les valeurs nouvelles
*/
  for (int i=0; iRichEdit1->Lines->Add(txt);
  }

  AFFINE Affine;
  if (Type == 2)
  {
    double tab2[20];
    for (int i=0; iRichEdit1->Lines->Add(txt);
  }
  ec=(sqrt(ec)/(2*nbpts-4))*1.4142;
  sprintf(txt,"erreur moyenne quadratique sur les %d points = %5.2f m.",nbpts,ec);
  R->RichEdit1->Lines->Add(txt);
  sprintf(txt,"Paramètre de la formule\n xN = Tx + XX * xA + XY * yA\n yN = Ty + YX * xA + YY * yA");
  R->RichEdit1->Lines->Add(txt);
  if (Type == 2)
  {
//  double Lat=CoefA + tab[i].b * CoefB;
//  double factX =(tab[i].a - CxA)  / cos(Lat  *M_PI/180.);
    sprintf(txt,"xA = (x - %0.2f) / cos( (%0.2f + y * %0.2f) *PI/180) ; yA=y",CxA, CoefA, CoefB);
    R->RichEdit1->Lines->Add(txt);
    sprintf(txt,"Tx = %0.2f Ty = %0.2f XX = %0.5E XY = %0.5E YX = %0.5E YY = %0.5E",
                 Affine.Tx, Affine.Ty,  Affine.XX, Affine.XY, Affine.YX, Affine.YY );
    R->RichEdit1->Lines->Add(txt);
  }
  else
  {
    sprintf(txt," xA = x - CxA ; yA = y - CyA");
    R->RichEdit1->Lines->Add(txt);
    sprintf(txt,"CxA = %0.2f  CyA = %0.2f\nTx = %0.2f Ty = %0.2f XX = %0.5E XY = %0.5E YX = %0.5E YY = %0.5E",
                 CxA,CyA,
                 Affine.Tx + CxN, Affine.Ty + CyN,  Affine.XX, Affine.XY, Affine.YX, Affine.YY );
    R->RichEdit1->Lines->Add(txt);
  }
  if (Type != 2)
  {
    R->RichEdit1->Lines->Add(AnsiString("\nCalcul inverse"));

    double s;
    for (int i=0; iRichEdit1->Lines->Add(txt);
    }
    ec=(sqrt(ec)/(2*nbpts-4))*1.4142;
    sprintf(txt,"erreur moyenne quadratique sur les %d points = %5.2f m.",nbpts,ec);
    R->RichEdit1->Lines->Add(txt);
    sprintf(txt,"Paramètre de la formule\n xA = Tx + XX * xN + XY * yN\n yA = Ty + YX * xN + YY * yN");
    R->RichEdit1->Lines->Add(txt);
    sprintf(txt," xN = x - CxN ; yN = y - CyN");
    R->RichEdit1->Lines->Add(txt);
    sprintf(txt,"CxN = %0.2f  CyN = %0.2f\nTx = %0.2f Ty = %0.2f XX = %0.5E XY = %0.5E YX = %0.5E YY = %0.5E",
               CxN,CyN,
               Affine.Tx + CxA, Affine.Ty + CyA,  Affine.XX, Affine.XY, Affine.YX, Affine.YY );
/*
  sprintf(txt,"CxA = %0.2f  CyA = %0.2f\nTx = %0.2f Ty = %0.2f XX = %0.5f XY = %0.5f YX = %0.5f YY = %0.5f",
               CxA,CyA,
               Affine.Tx + CxN, Affine.Ty + CyN,  Affine.XX, Affine.XY, Affine.YX, Affine.YY );
*/
    R->RichEdit1->Lines->Add(txt);
  }
  return 0;
}
     

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5475
Enregistré le: 27 Nov 2007, 17:25

par leon1789 » 11 Avr 2013, 15:22

Dlzlogic a écrit:Mon exposé du problème devait effectivement être mal fait, je pensais pourtant avoir bien précisé que je proposais ce calcul à qui pouvait être intéressé, mais que de toute façon, je m'apprêtais à le faire. En conséquence, toutes les réflexions du genre "c'est pas possible" étaient, par définition hors-sujet, et particulièrement désagréables.

"par définition", une expression que tu utilises souvent à tord et à travers. Cela dit, je comprends très bien que c'est désagréable de s'apercevoir qu'on n'est pas capable de décrire un problème qu'on a, soit disant, résolu.

Encore une fois, le problème tel qu'il est exposé en grande généralité dans ton premier message ne peut pas être résolu, même de manière approchée : c'est évident !! ... Tu demandes de retrouver une approximation d'une fonction en connaissant uniquement 12 antécédents (pris n'importe où) et leurs images respectives. Vois-tu l'absurdité de cette demande ?? Lis les réponses de Médiat et Seirios ! Tu n'arrives pas à comprendre cela car tu manques clairement de rigueur scientifique et de connaissances (tu crois que le monde s'arrête à ce que tu fais, c'est terrible).

Il faut évidemment cadrer davantage le problème, et c'est ce que tu as clairement fait dans ta résolution avec ton programme informatique. Mais cela tu n'as pas voulu le dire au le début du sujet et et tu n'as pas voulu ou pu l'expliquer ensuite...

Ce qui est amusant, c'est de lire au message n°1
Je ne sais pas le système de projection qui a été utilisé pour créer cette image.

puis, en fin de discussion message n°25,
en fait, ce sont plus que des formules, ce sont des définitions.(*)

en parlant des formules



Et là, tes grands discours de généralité (au début de la discussion) pour présenter ton problème tombent complètement à l'eau.... et cela, sans que tu t'en rende compte !?... On voit clairement que tu t'es placé dans un cadre ultra particulier de projection cartographique (mais ceci est rassurant quand on cherche une solution raisonnable à un tel problème). Encore faut-il s'y prendre bien pour terminer le boulot, mais ça, on n'en saura jamais la fin, à moins de lire ton code en C... Tu n'as pas trouvé mieux que de donner aujourd'hui ton code, c'est à croire que tu ne sais pas t'expliquer en français... c'est un comble pour quelqu'un qui n'arrête pas de le demander aux autres forumeurs dans toute discussion en algorithmique !

Bref, pour un > (je reprends tes mots), je trouve tout cela décevant. Mais ce n'est que mon opinion, chacun fera la sienne.



(*) ha, tu places encore le mot "définition"...

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 11 Avr 2013, 15:50

Bon, je suppose que on va encore me reprocher l'éluder les questions, mais là je n'en ai pas vu.
Concernant la formule que tu met en grand, bien sûr c'est la définition : il faut transformer des coordonnées géographiques en coordonnées cartésiennes, par une projection cartographique. Simplement tu as oublié que les paramètres A, B, C, D dépendent de pas mal de choses et ente autre du système de projection utilisé.

Encore une fois, le problème tel qu'il est exposé en grande généralité dans ton premier message ne peut pas être résolu, même de manière approchée : c'est évident !! ... Tu demandes de retrouver une approximation d'une fonction en connaissant uniquement 12 antécédents (pris n'importe où) et leurs images respectives. Vois-tu l'absurdité de cette demande ??

Là, ton affirmation est vraiment intéressante.
Mais alors, comment peut-tu expliquer que j'y suis arrivé ? Ca c'est ma question.

Mais si tu veux avoir une petite chance de comprendre, commençons par l'hypothèse où la superficie concernée est suffisamment petite pour faire le calage de 2 systèmes cartésiens, par exemple, le plan cadastre et une photo aérienne.

PS
pour un > (je reprends tes mots),
Ca m'étonne que je me sois présenté avec ces termes. J'emploie plutôt des expressions du genre "Je suis géomètre" ou "Je suis géomètre DPLG" ou "Ma profession, c'est géomètre", mais bon, c'est un détail.

Sylviel
Modérateur
Messages: 6466
Enregistré le: 20 Jan 2010, 14:00

par Sylviel » 11 Avr 2013, 17:46

Là, ton affirmation est vraiment intéressante. Mais alors, comment peut-tu expliquer que j'y suis arrivé ? Ca c'est ma question.


Et bien tu fais des hypothèses fortes sur la forme de tes fonctions : elles sont données par l'équation rappelée par Léon. Dans ta formulation initiale tu parle d'une simple fonction continue qui nécessite donc une inifinité de paramètres. C'est donc un bel exemple du fait que tu es incapable de rigueur, même quand on te mets le nez dessus.

Tu demandes de retrouver une approximation d'une fonction en connaissant uniquement 12 antécédents (pris n'importe où) et leurs images respectives.


Et c'est exactement là où est le problème. Tu ne considérais pas n'importe quelle fonction mais une fonction bien précise définie par 4 paramètres, ce qui n'est pas précisé dans ta question d'origine, et ce qu'on relevé immédiatement les différents intervenants.

Je te fais une analogie :

pouvez vous me donner une approximation de la fonction (sic) qui vérifie
f(0)=0
f(1)=2
F(2)=3.6

On te dis : sans autre précision ce n'est pas possible --> il y a une infinité de fonctions qui passent par ces trois points.

Tu réponds : ben c'est évidemment une fonction affine f(x)=ax+b
et par moindre carrés j'obtiens f(x) = 1.9 x.

Je ré-insiste : si la fonction est générale ce n'est pas possible, si tu la prends dans une classe particulière le problème de la meilleure approximation se pose (encore faut-il définir ce que signifie meilleur approximation) et une approche par moindre carrés est classique.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 11 Avr 2013, 18:18

Tu réponds : ben c'est évidemment une fonction affine f(x)=ax+b
Je me demande si tu ne confonds pas "fonction affine" et "transformation affine". Je ne crois pas avoir jamais parlé de fonction affine.

Avatar de l’utilisateur
leon1789
Membre Transcendant
Messages: 5475
Enregistré le: 27 Nov 2007, 17:25

par leon1789 » 11 Avr 2013, 19:05

Dlzlogic a écrit:Je me demande si tu ne confonds pas "fonction affine" et "transformation affine". Je ne crois pas avoir jamais parlé de fonction affine.

:mur: vraiment, tu te moques du monde : c'est par cette pirouette que tu réponds au message sérieux de Sylviel...

Dlzlogic a écrit:Là, ton affirmation est vraiment intéressante.
Mais alors, comment peut-tu expliquer que j'y suis arrivé ?

:ptdr: Tu rêves complètement, dans ton " monde réel ".

Tu n'as pas du tout résolu le problème général que tu as présenté : tu as résolu un problème très particulier,
-1- en supposant (sans le dire avant le 25ème message !) que la projection cartographique utilisée ressemble aux fonctions données "par définition" (avec 4 paramètres A,B,C,D),
-2- sans jamais dire quelle région du globe était cartographiée (or tes fonctions ne collent pas du tout dans les régions polaires par exemple),
-3- sans jamais évoquer la précision souhaitée dans le résultat (mais apparemment tu juges ta solution convenable).

Compter jusqu'à 4, ce n'est pas compter jusqu'à l'infini : compter jusqu'à l'infini, personne ne peut le faire, mais compter jusqu'à 4, je ne trouve pas ça exceptionnel et il n'y a pas grand chose à expliquer.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 11 Avr 2013, 20:39

Je crois que j'ai compris ce que tu essaye de dire avec la fonction affine.
D'abord, c'est une expression que je ne peux pas employer, pour moi, une telle fonction, y=ax+b, j'appelle ça linéaire. Je sais maintenant on dit "affine", on m'a expliqué pourquoi, mais j'ai pas compris.
J'ai effectivement utilisé un ajustement linéaire (pourquoi on dit pas affine ?) pour "corriger" la valeurs de X puis une autre pour déterminer une valeur approchée de la latitude. On démontre que c'est légitime.
Si j'ai employé de terme "affine", c'est certainement précédé du terme "transformation".
Mais par hasard, si j'ai fait une erreur, ce serait bien de me dire où.

Je pense qu'au lieu de dire à tout bout de champ que j'ai tort, que je dis n'importe quoi, tu devrais plutôt essayer de comprendre le problème et la solution.
Puisque tu tiens tellement à savoir la localisation, il s'agit de l'Europe. Mais je ne vois vraiment ce que ça peut d'apporter de plus.

Mathusalem
Membre Irrationnel
Messages: 1837
Enregistré le: 14 Sep 2008, 05:41

par Mathusalem » 11 Avr 2013, 21:03

T'as pas compris.

On se fout de savoir s'il faut dire linéaire, affine, etc. Ce que Sylviel et Léon se tuent à te dire c'est que tu regardes un problème hyper restreint. Tu veux absolument faire passer une droite par les 3 points de l'exemple de Sylviel. Pourquoi pas une parabole, un cosinus, une exponentielle ? Toi tu choisis de regarder les droites.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 14:39

par Dlzlogic » 11 Avr 2013, 21:10

Mathusalem a écrit:T'as pas compris.

On se fout de savoir s'il faut dire linéaire, affine, etc. Ce que Sylviel et Léon se tuent à te dire c'est que tu regardes un problème hyper restreint. Tu veux absolument faire passer une droite par les 3 points de l'exemple de Sylviel. Pourquoi pas une parabole, un cosinus, une exponentielle ? Toi tu choisis de regarder les droites.

Ton intervention est tout à fait intéressante et constructive.
En conséquence, je demande à la modération de fermer ce topic, maintenant que l'on sait que "résoudre un système linéaire consiste à trouver tous les n-uplets qui satisfont l'ensemble des équations du système."

Sylviel
Modérateur
Messages: 6466
Enregistré le: 20 Jan 2010, 14:00

par Sylviel » 12 Avr 2013, 01:14

Je vais effectivement fermer le topic en considérant que Dlzlogic a décidé de troller le fil.

Pour être précis je considère que son incapacité à comprendre les réponses faites, le plus clairement possible, par différents membres ne peut être que volontaire dans l'objectif d'énerver les membres.

Exemple : le fait de ne pas vouloir comprendre qu'a priori une fonction quelconque n'est pas une droite.
Merci de répondre aux questions posées, ce sont des indications pour vous aider à résoudre vos exercices.

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 9 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite