je me suis fait un petit modèle de .xls avec notamment une régression
polynomiale "simulée" par une régression multilinéaire (en gros je fais une
regression linéaire sur plusieurs variable avec mes variables qui sont x,
x^2, x^3,...).
J'avais une quinzaine de tableaux identiques à remplir et tout s'est bien
passé pour les 14 premiers. Pour le quinzième en revanche, les valeurs de la
courbe d'interpolation étaient totalement différentes des valeurs
interpolées, avec pourtant un coeff R²=1.
J'ai alors "tenté l'interpolation" en traçant un graphe et en affichant
l'équation de la courbe de tendance polynomiale de degré identique à mon
calcul initial. En reportant les coeffs du polynome dans la feuille de
donnée, l'interpolation est quasi parfaite!
D'ou peut venir le problème? La seule différence entre la quinzième série de
données (x,f(x)), c'est que les x sont plus gros que pour les autres séries.
Les f(x) ont à peu près les mêmes valeurs...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas B.
Salut,
DROITEREG semble avoir quelques difficultés avec les grands nombres.
La fonction suivante permet de retrouver les mêmes coefficients que ceux données par l'équation affichée sur le graphique :
Function MoindresCarres(rgX As Range, rgY As Range, p As Integer) Dim n As Integer Dim i As Integer Dim j As Integer Dim M() As Double n = rgX.Cells.Count ReDim M(n - 1, p) For i = 0 To n - 1 For j = 0 To p M(i, j) = rgX(i + 1) ^ j Next Next With WorksheetFunction If rgX.Rows.Count = 1 Then MoindresCarres = .MMult(.MInverse( _ .MMult(.Transpose(M), M)), .MMult(.Transpose(M), _ .Transpose(rgY))) Else MoindresCarres = .MMult(.MInverse( _ .MMult(.Transpose(M), M)), .MMult(.Transpose(M), rgY)) End If End With End Function
La syntaxe de la fonction est =moindrescarres(ValeursX;ValeursY;DegrePolynome) et elle renvoie une matrice colonne des coefficients du polynôme.
A+ Nicolas B.
Bonjour,
je me suis fait un petit modèle de .xls avec notamment une régression polynomiale "simulée" par une régression multilinéaire (en gros je fais une regression linéaire sur plusieurs variable avec mes variables qui sont x, x^2, x^3,...).
J'avais une quinzaine de tableaux identiques à remplir et tout s'est bien passé pour les 14 premiers. Pour le quinzième en revanche, les valeurs de la courbe d'interpolation étaient totalement différentes des valeurs interpolées, avec pourtant un coeff R²=1.
J'ai alors "tenté l'interpolation" en traçant un graphe et en affichant l'équation de la courbe de tendance polynomiale de degré identique à mon calcul initial. En reportant les coeffs du polynome dans la feuille de donnée, l'interpolation est quasi parfaite!
D'ou peut venir le problème? La seule différence entre la quinzième série de données (x,f(x)), c'est que les x sont plus gros que pour les autres séries. Les f(x) ont à peu près les mêmes valeurs...
Salut,
DROITEREG semble avoir quelques difficultés avec les grands nombres.
La fonction suivante permet de retrouver les mêmes coefficients que ceux
données par l'équation affichée sur le graphique :
Function MoindresCarres(rgX As Range, rgY As Range, p As Integer)
Dim n As Integer
Dim i As Integer
Dim j As Integer
Dim M() As Double
n = rgX.Cells.Count
ReDim M(n - 1, p)
For i = 0 To n - 1
For j = 0 To p
M(i, j) = rgX(i + 1) ^ j
Next
Next
With WorksheetFunction
If rgX.Rows.Count = 1 Then
MoindresCarres = .MMult(.MInverse( _
.MMult(.Transpose(M), M)), .MMult(.Transpose(M), _
.Transpose(rgY)))
Else
MoindresCarres = .MMult(.MInverse( _
.MMult(.Transpose(M), M)), .MMult(.Transpose(M), rgY))
End If
End With
End Function
La syntaxe de la fonction est
=moindrescarres(ValeursX;ValeursY;DegrePolynome)
et elle renvoie une matrice colonne des coefficients du polynôme.
A+
Nicolas B.
Bonjour,
je me suis fait un petit modèle de .xls avec notamment une régression
polynomiale "simulée" par une régression multilinéaire (en gros je fais une
regression linéaire sur plusieurs variable avec mes variables qui sont x,
x^2, x^3,...).
J'avais une quinzaine de tableaux identiques à remplir et tout s'est bien
passé pour les 14 premiers. Pour le quinzième en revanche, les valeurs de la
courbe d'interpolation étaient totalement différentes des valeurs
interpolées, avec pourtant un coeff R²=1.
J'ai alors "tenté l'interpolation" en traçant un graphe et en affichant
l'équation de la courbe de tendance polynomiale de degré identique à mon
calcul initial. En reportant les coeffs du polynome dans la feuille de
donnée, l'interpolation est quasi parfaite!
D'ou peut venir le problème? La seule différence entre la quinzième série de
données (x,f(x)), c'est que les x sont plus gros que pour les autres séries.
Les f(x) ont à peu près les mêmes valeurs...
DROITEREG semble avoir quelques difficultés avec les grands nombres.
La fonction suivante permet de retrouver les mêmes coefficients que ceux données par l'équation affichée sur le graphique :
Function MoindresCarres(rgX As Range, rgY As Range, p As Integer) Dim n As Integer Dim i As Integer Dim j As Integer Dim M() As Double n = rgX.Cells.Count ReDim M(n - 1, p) For i = 0 To n - 1 For j = 0 To p M(i, j) = rgX(i + 1) ^ j Next Next With WorksheetFunction If rgX.Rows.Count = 1 Then MoindresCarres = .MMult(.MInverse( _ .MMult(.Transpose(M), M)), .MMult(.Transpose(M), _ .Transpose(rgY))) Else MoindresCarres = .MMult(.MInverse( _ .MMult(.Transpose(M), M)), .MMult(.Transpose(M), rgY)) End If End With End Function
La syntaxe de la fonction est =moindrescarres(ValeursX;ValeursY;DegrePolynome) et elle renvoie une matrice colonne des coefficients du polynôme.
A+ Nicolas B.
Bonjour,
je me suis fait un petit modèle de .xls avec notamment une régression polynomiale "simulée" par une régression multilinéaire (en gros je fais une regression linéaire sur plusieurs variable avec mes variables qui sont x, x^2, x^3,...).
J'avais une quinzaine de tableaux identiques à remplir et tout s'est bien passé pour les 14 premiers. Pour le quinzième en revanche, les valeurs de la courbe d'interpolation étaient totalement différentes des valeurs interpolées, avec pourtant un coeff R²=1.
J'ai alors "tenté l'interpolation" en traçant un graphe et en affichant l'équation de la courbe de tendance polynomiale de degré identique à mon calcul initial. En reportant les coeffs du polynome dans la feuille de donnée, l'interpolation est quasi parfaite!
D'ou peut venir le problème? La seule différence entre la quinzième série de données (x,f(x)), c'est que les x sont plus gros que pour les autres séries. Les f(x) ont à peu près les mêmes valeurs...