[Résolu] Courbe de différence à partir de 2 autres courbes

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
bouyoul
Fraîchement OOthentifié
Messages : 2
Inscription : 27 août 2010 15:39

[Résolu] Courbe de différence à partir de 2 autres courbes

Message par bouyoul »

Bonjour,

J'ai un graphique qui représente deux courbes d'évolution (nuage de point) mais à partir de données n'ayant pas la même abscisse. Voir capture d'écran pour plus de clarté...
J'ai besoin de générer une courbe (et éventuellement les données, donc interpolées) représentant la différence entre ces deux courbes. En théorie, pour un x donné, je fais la différence des y mais comme je n'ai pas de x en commun sur mes plages de données, il faut que je considère chaque segment linéaire pour faire la différence pour chaque x.
Alors après avoir un peu cherché, je viens vers vous pour savoir si quelqu'un s'est déjà retrouvé dans cette situation ou aurait une piste de réflexion à offrir, ou s'il faut que j'utilise autre chose qu'un tableur pour faire ça...

h**p://img405.imageshack.us/i/capture1hc.png/ image localisée sur un site tiers
Ooo 3.1 + ubuntu9.10
Avatar de l’utilisateur
KristofRenaud
Membre cOOnverti
Membre cOOnverti
Messages : 322
Inscription : 08 mai 2009 13:33
Localisation : Le Havre (Seine-Maritime / France)

Re: générer courbe de différence à partir de 2 autres courbe

Message par KristofRenaud »

C'est faisable, puisque tu peux considérer chaque segment d'une courbe comme une ligne droite d'équation y = ax + b et tu peut retrouver les valeurs de a et b avec les deux couples (x,y) des points de début et de fin du segment. Ensuite, avec cette équation tu pourras trouver la valeur y du x de ton autre courbe se trouvant "sur" ce segment.

Avec ça, tu pourras recalculer tous les points qui te manque et faire ta différence.

Par contre, cela risque d'etre "un peu artisanal", donc faisable mais au coup par coup. Je veux dire que si tu dois faire cela pour 50 séries de 2 courbes chaque jour, ca a être chaud, je pense :fou:

Si tu fourni un fichier plutôt qu'une simple copie d'écran, je pourrais te monter un truc de démo
Christophe

Libreoffice 3.4.2 sous Windows XP SP2/SP3 + Windows 7 Premium 64 bits
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: générer courbe de différence à partir de 2 autres courbe

Message par Jean-Louis Cadeillan »

Bonsoir,
Ce fil est à consulter ; il s'agit de moyennes et non de différences, mais ça peut te donner des idées...
Cordialement
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
jbfaure
Membre cOOnverti
Membre cOOnverti
Messages : 393
Inscription : 10 juil. 2008 06:42
Localisation : Lyon - France

Re: générer courbe de différence à partir de 2 autres courbe

Message par jbfaure »

Bonsoir bouyoul,

Il y a quelques années je m'étais fait une fonction Calc pour interpoler une fonction définie par une série de couples (X,Y). Elle a trois arguments : une série d'abscisses (par exemple A1:A10), la série d'ordonnées correspondantes (par ex. B1:B10) et la valeur X pour laquelle on veut une estimation de la fonction. L'interpolation est linéaire et la fonction détecte les deux abscisses qui encadrent X ou si X est en dehors de l'intervalle. Je ne me souviens pas ce que j'avais choisi de faire dans ce dernier cas, sans doute un prolongement, mais lequel ?

Si ça t'intéresse, je peux la fournir. Comme elle est sur mon ordinateur professionnel envoie moi un message personnel pour que j'y pense lundi.

Une fois que tu as une fonction d'interpolation, il suffit de créer une troisième série de données avec un pas en abscisse assez fin et sur laquelle tu fais la différence des interpolations de tes deux courbes. Par exemple dans le cas que tu donnes en exemple, tu prends une série avec un pas en abscisse de 1 et tu interpoles tes deux courbes sur ces nouvelles abscisses puis tu fais la différence. Si tu sais d'avance que l'interpolation linéaire donne de bons résultats sur tes deux courbes, alors le résultat final devrait être bon.

Bonne soirée
JBF
LibreOffice 7 (avec la dernière mise à jour corrective) sous Linux Ubuntu 22.04
Listes de discussions francophones : https://fr.libreoffice.org/get-help/mailing-lists/
Avatar de l’utilisateur
Jean-Louis Cadeillan
GourOOu
GourOOu
Messages : 5753
Inscription : 02 janv. 2009 23:56

Re: générer courbe de différence à partir de 2 autres courbe

Message par Jean-Louis Cadeillan »

Toujours sur le principe de l'interpolation linéaire, je propose un classeur
DifGraphiques.ods
qui calcule automatiquement la courbe (Y2-Y1), différence entre la courbe 2 et la courbe 1. Les X sont récupérés des deux courbes, classés, doublons éliminés, les Y correspondants sont retrouvés ou, s'ils n'existent pas sur l'une des deux courbes, interpolés linéairement (comme l'expose jbfaure)
Les cellules en jaune clair sont à renseigner, les cellules en violet clair et les courbes sont calculées automatiquement. Les formules sont remplies jusqu'à la ligne 100. Les colonnes intermédiaires sont masquées pour juger du résultat final, ces colonnes doivent être affichées si l'on veut suivre la progression du calcul. Il aurait sans doute été possible de regrouper davantage les formules, mais ç'aurait été au détriment de la clarté. Par exemple, je fais une colonne pour chaque choix possible :
  • choix 1 : une valeur particulière de l'abscisse est référencée par la courbe 1 mais pas par la 2
  • choix 2 : une valeur particulière de l'abscisse est référencée par la courbe 2 mais pas par la 1
  • choix 3 : cette valeur est référencée sur les deux courbes
Chacun de ces choix nécessite une formule d'interpolation différente ; ces colonnes O à R ne sont pas indispensables, puisque la colonne S regroupe ces différentes formules grâce à la fonction CHOISIR()...mais ce regroupement est assez indigeste.
Attention, l'interpolation linéaire, dans l'exemple fourni, est plus précise pour la courbe 2, mieux échantillonnée, que la courbe 1...
Ne pas confondre interpolation et extrapolation ! Le point X=140 n'a pas d'équivalent possible pour la courbe 2, qui s'arrête au point X=136, donc pas de différence calculée, la formule en tient compte.
Cordialement
Jean-Louis
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
bouyoul
Fraîchement OOthentifié
Messages : 2
Inscription : 27 août 2010 15:39

Re: générer courbe de différence à partir de 2 autres courbe

Message par bouyoul »

Merci beaucoup pour vos réponses et explications... Je connaissais la méthode artisanale, mais effectivement il faut que je génère ce genre de graphique pour un paquet de cas, et je me doutais qu'on pouvait faire ça de façon semi-automatisée.
Encore merci, cela va beaucoup m'aider.
Ooo 3.1 + ubuntu9.10
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12228
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: générer courbe de différence à partir de 2 autres courbe

Message par Bidouille »

Bonsoir,

Si votre problème est résolu, il est alors de bon ton d'ajouter dans le titre du premier message la balise [Résolu]. Ceci augmente la lisibilité du forum. Vous vous en êtes sûrement rendu compte en parcourant les différents fils de discussion.

Nous l'avons fait à votre place mais la prochaine fois, nous vous prions de le faire vous-même.

Vous avez illustré votre question avec des fichiers en provenance d'un site tiers. Or, souvent ces sites n'assurent aucune pérennité sur les données qu'ils hébergent.

C'est pour cela que nous préférerons que vous utilisiez notre service de pièce-jointe dont le lien est mentionné en bas lorsque vous écrivez votre message : http://user.services.openoffice.org/fr/ ... forum.html

Veuillez corriger votre message en utilisant le bouton "Editer" (situé à droite) et en mettant en ligne votre fichier correctement.

Vous en remerciant par avance.
guetch
Fraîchement OOthentifié
Messages : 1
Inscription : 03 juil. 2023 12:47

Re: [Résolu] Courbe de différence à partir de 2 autres courbes

Message par guetch »

Vous pouvez utiliser chaque lot de données et le redimensionner au pas voulu. ExtraGraphe un logiciel libre de redimensionnement de données est apte à ce genre de tâche. tu peux avoir plus d'information à travers ce lien: https://youtu.be/UFStGzWJTHo
OpenOffice 2.4 sous Windows XP
Avatar de l’utilisateur
Bidouille
RespOOnsable forum
RespOOnsable forum
Messages : 12228
Inscription : 08 nov. 2005 16:23
Localisation : Caen, France

Re: [Résolu] Courbe de différence à partir de 2 autres courbes

Message par Bidouille »

Splendide déterrage d'un sujet vieux de plus de 10 ans.

Signature complètement obsolète et vidéo YouTube n'ayant rien à voir avec la choucroute.

Je verrouille.