IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Régression polynomiale, logarithmique fonctions quelconques


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    265
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 265
    Par défaut Régression polynomiale, logarithmique fonctions quelconques
    Bonjour les amis,
    Pour le moment je parviens à déterminer les coefficients d'un polynôme d'ordre n à partir de points et je cherche à calculer les coefficients d'une fonction logarithmique du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    f(x) = a*ln(b*x + c) + d
    Pour les polynômes je crée deux matrices et utilise la méthode de Cramer pour calculer les coefficients du polynôme.
    Pour remplir la matrice j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c(i,j) = c(i,j) + x(k)^(i+j)
    k variant de 1 au nombre de points et i,j de 1 au degré et pour l'autre matrice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b(i) = b(i) + y(j) * x(j)^i
    Auriez-vous une idée pour remplir cette matrice avec la fonction logarithmique?
    Plutôt qu'une régression polynômiale ce serait une logarithmique.

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Non dirponible
    Inscrit en
    Mai 2024
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Non dirponible

    Informations forums :
    Inscription : Mai 2024
    Messages : 9
    Par défaut Régression polynomiale, logarithmique fonctions quelconques
    Bonjour

    Il faut si j'ai bien compris trouver les 4 coefficients (a, b, c, d) vérifiant les équations
    F(xk) = a*ln(b*xk + c) + d,
    l'indice (k) variant de 1 à Np (nombre de points, au moins égal à 4).

    Il ne s'agit malheureusement pas d'un système linéaire, en raison de la présence de la fonction logarithme, dont l'argument dépend de deux des inconnues (b et c); le procédé classique de résolution est donc ici inapplicable.
    Tu ne précise d'ailleurs pas s'il s'agit d'un simple système de 4 équations à 4 inconnues, ou s'il s'agit d'un système surdéterminé (Np > 4), lequel demande de recourir à une recherche des moindres carrés.

    On peut ici envisager l'approche progressive du minimum de la fonction
    G(a, b, c, d) = ∑k=1Np(yk - a*Ln(b*xk + c) - d)2
    en repérant la plus faible des 16 nouvelles valeurs de G(a', b', c', d') obtenues à partir d'un quadruplet (a, b, c, d) donné, et correspondant à
    a' = a ± ∆a , b' = b ± ∆b , c' = c ± ∆c , d = d ± ∆d .
    Il serait bon de partir de valeurs initiales (a0, b0, c0, d0) pas trop éloignées de la solution recherchée, afin que la suite obtenue ne s'égare pas dans un minimum secondaire; as-tu une idée (même très approchée) de cette solution ?
    Il faudra aussi partir de bonnes valeurs pour les incréments (∆a, ∆b, ∆c, ∆d) afin d'éviter une évolution trop lente (si les valeurs retenues sont trop faibles) ou l'explosion numérique (dans le cas de valeurs trop élevées).

    L'algorithme risque d'apparaître assez lourd, et de donner des solutions peu précises, même avec des données numériques au format Extended.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Non dirponible
    Inscrit en
    Mai 2024
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Non dirponible

    Informations forums :
    Inscription : Mai 2024
    Messages : 9
    Par défaut Régression polynomiale, logarithmique fonctions quelconques
    Une localisation approximative du minimum de la fonction G(a, b, c, d) est envisageable à partir d'une estimation grossière des valeurs extrêmes (minimale et maximale) de chacun des paramètres (a, b, c, d):
    Amin et Amax, Bmin et Bmax ... etc ,
    en faisant par ex. intervenir 4 entiers naturels inférieurs à 5: (Ia, Ib, Ic, Id); ils permettent l'énumération de toutes les combinaisons possibles sur le domaine envisagé par l'emploi des relations:
    a = Amin + (Ia/4)*(Amax - Amin) ; b = Bmin + (Ib/4)*(Bmax - Bmin) ;
    c = Cmin + (Ic/4)*(Cmax - Cmin) ; d = Dmin + (Id/4)*(Dmax - Dmin) .
    Il y a dans le cas envisagé 54 = 625 combinaisons, l'ordinateur effectuera rapidement les calculs.

    Ce procédé peut conduire à un autre algorithme de recherche du minimum absolu de (G).

    Disposes-tu d'un tableau des valeurs du couple (xk, yk) ?

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 229
    Par défaut
    J'ai l'impression qu'on est en plus dans de la régression multiple, donc un 'individu' A(i) serait (x0i, x1i, ...., xni, yi)

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Non dirponible
    Inscrit en
    Mai 2024
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Non dirponible

    Informations forums :
    Inscription : Mai 2024
    Messages : 9
    Par défaut Envoyer un message dans la discussion:
    Citation Envoyé par tbc92 Voir le message
    J'ai l'impression qu'on est en plus dans de la régression multiple ...
    Effectivement, le gros inconvénient étant que la relation ne se présente pas sous la forme d'une combinaison linéaire
    y = a*F1(x) + b*F2(x) + c*F3(x) + d*F4(x) ...
    Les dérivées partielles de la somme des carrés G(a, b, c, d) ne conduisent pas à des relations simples.

    Le procédé bourrin précédemment suggéré devrait permettre de cerner au moins une solution, tant que l'argument du logarithme (b*xk + c) ne vient pas à s'annuler ou changer de signe ...

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Non dirponible
    Inscrit en
    Mai 2024
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Non dirponible

    Informations forums :
    Inscription : Mai 2024
    Messages : 9
    Par défaut Régression polynomiale, logarithmique fonctions quelconques
    Petite remarque plutôt encourageante: le nombre de paramètres indépendants présents dans l'expression
    F(x) = a*ln(b*x + c) + d
    peut être réduit à trois; il vient en effet, si (b) est un terme strictement positif:
    F(x) = a*ln(b*(x + c/b)) + d = a*ln(b) + a*ln(x + c/b) + d ,
    soit finalement:
    F(x) = a*ln(x + c') + b'
    si l'on convient de poser: b' = d + a*ln(b) et c' = c/b .

    Peut-on voir un tableau de données (xk, yk) ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 08/09/2015, 09h43
  2. calcul de la derivée d'une fonction quelconque
    Par s-ehtp dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 09/10/2013, 01h37
  3. [Débutant] la dérivée première d'une fonction quelconque
    Par fatima_zohra_M2 dans le forum MATLAB
    Réponses: 16
    Dernier message: 21/12/2011, 10h12
  4. Dérivation fonction quelconque vb
    Par bdsss dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/06/2008, 15h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo