Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fitting polynôme à deux variables

    8 janvier 2021 à 15:02:21

    Bonjour,

    Je dispose des données suivantes (y, d, T) te je souhaite trouver un modèle (polynôme) mathématique y=f(d,T) pour fitter ces data.

    Rq: Voici un modèle sur lequel je travaillais (sous python),  

    def y(X, a1, a2, a3, a4, a5, a6, a11, a12, a13, a14, a21, a22, a23, a24, a31, a32, a33, a34, a41, a42, a43, a44):

        T, d =X
        g0 = a1 + a2/d + a3/d**2 + a4/d**3 + a5/d**4 + a6/d**5   
        g1 = a11*T**(-1) +a12*T**(-1)/d +a13*T**(-1)/d**(2) +a14*T**(-1)/d**(3)
        g2 = a21*T**(-2) +a22*T**(-2)/d +a23*T**(-2)/d**(2) +a24*T**(-2)/d**(3)
        g3 = a31*T**(-3) +a32*T**(-3)/d +a33*T**(-3)/d**(2) +a34*T**(-3)/d**(3)
        g4 = a41*T**(-4) +a42*T**(-4)/d +a43*T**(-4)/d**(2) +a44*T**(-4)/d**(3)
        return g0 + g1 + g2 + g3 + g4 
    C'est plutôt ok dans l'espace (y, d) mais pas trop dans l'espace (y, T)
    Merci de votre précieuse aide!!
    Voici les données:
    T,       d,              y
    1.5, 0.005, 6.351541921250011
    1.5, 0.01, 3.679755726250005
    1.5, 0.02, 2.345516219375003
    1.5, 0.03, 1.8954071543750017
    1.5, 0.04, 1.7098251931250013
    1.5, 0.4, 1.078458044375
    1.5, 0.45, 1.069405534375
    1.5, 0.5, 1.0623397275000002
    1.5, 0.65, 1.0502433668749998
    1.5, 0.7, 1.049157990625
    1.5, 0.75, 1.04903245125
    1.5, 0.8, 1.049837563125
    1.5, 0.85, 1.0513933406250002
    1.5, 0.9, 1.0539067481250002
    1.5, 0.95, 1.0572572906250002
    1.6, 0.005, 6.445032418750009
    1.6, 0.01, 3.7247316156250045
    1.6, 0.02, 2.3577017062500025
    1.6, 0.03, 1.9121623450000018
    1.6, 0.04, 1.6863705825000013
    1.6, 0.05, 1.5503948100000011
    1.6, 0.06, 1.4631177987500008
    1.6, 0.07, 1.4126009575000007
    1.6, 0.08, 1.3649939900000005
    1.6, 0.1, 1.2961869581250005
    1.6, 0.15, 1.2008694875000003
    1.6, 0.2, 1.1523014312500004
    1.6, 0.25, 1.1226564531250003
    1.6, 0.3, 1.1032209625000002
    1.6, 0.35, 1.0889277512500002
    1.6, 0.4, 1.0776994968750002
    1.6, 0.45, 1.069156563125
    1.6, 0.5, 1.0622608175
    1.6, 0.55, 1.057206124375
    1.6, 0.65, 1.0518096350000001
    1.6, 0.7, 1.0507223206249998
    1.6, 0.75, 1.0506033918750002
    1.6, 0.8, 1.05136237
    1.6, 0.85, 1.0528515818750002
    1.6, 0.9, 1.055185629375
    1.6, 0.95, 1.058414321875
    1.7, 0.005, 6.492766285000009
    1.7, 0.01, 3.758106689375004
    1.7, 0.02, 2.386983729375002
    1.7, 0.03, 1.9245021268750016
    1.7, 0.04, 1.6954211456250015
    1.7, 0.05, 1.557137534375001
    1.7, 0.06, 1.4659704493750008
    1.7, 0.07, 1.4007398081250009
    1.7, 0.08, 1.3529350368750006
    1.7, 0.1, 1.2875036750000008
    1.7, 0.15, 1.1976133862500005
    1.7, 0.2, 1.1504827031250002
    1.7, 0.25, 1.12167269625
    1.7, 0.3, 1.1022904868750003
    1.7, 0.35, 1.0878816293750002
    1.7, 0.4, 1.0774104543750003
    1.7, 0.45, 1.0691026512500001
    1.7, 0.5, 1.062884313125
    1.7, 0.52, 1.0608710606250003
    1.7, 0.55, 1.058345080625
    1.7, 0.65, 1.0531854656250002
    1.7, 0.7, 1.052199821875
    1.7, 0.75, 1.051943620625
    1.7, 0.8, 1.052620544375
    1.7, 0.85, 1.0541000768750002
    1.7, 0.9, 1.05631487
    1.7, 0.95, 1.05929043375
    1.8, 0.005, 6.6032359450000095
    1.8, 0.01, 3.7976427093750047
    1.8, 0.02, 2.394871319375002
    1.8, 0.03, 1.9339593700000015
    1.8, 0.04, 1.7044863400000012
    1.8, 0.05, 1.564160570000001
    1.8, 0.06, 1.471654300625001
    1.8, 0.07, 1.4055483262500008
    1.8, 0.08, 1.3551611193750006
    1.8, 0.1, 1.2866902225000008
    1.8, 0.15, 1.1947808175000003
    1.8, 0.2, 1.1487626400000002
    1.8, 0.25, 1.1209453112500003
    1.8, 0.3, 1.101530404375
    1.8, 0.35, 1.0877397181250004
    1.8, 0.4, 1.0775358275000002
    1.8, 0.45, 1.0696785181250001
    1.8, 0.5, 1.06387984875
    1.8, 0.55, 1.0593716574999998
    1.8, 0.65, 1.0543139968750002
    1.8, 0.7, 1.0532613087500002
    1.8, 0.75, 1.053163918125
    1.8, 0.8, 1.0538122268749999
    1.8, 0.85, 1.0550931425
    1.8, 0.9, 1.05722411125
    1.9, 0.005, 6.656480071250009
    1.9, 0.01, 3.832839105000004
    1.9, 0.02, 2.419435661875002
    1.9, 0.03, 1.9446313550000016
    1.9, 0.04, 1.7108280781250012
    1.9, 0.05, 1.5697103306250009
    1.9, 0.06, 1.4765907075000007
    1.9, 0.07, 1.4089572318750005
    1.9, 0.08, 1.3588533962500007
    1.9, 0.1, 1.2886989668750006
    1.9, 0.15, 1.1952353350000005
    1.9, 0.2, 1.1488010762500003
    1.9, 0.25, 1.1207031531250002
    1.9, 0.3, 1.1016840056250001
    1.9, 0.35, 1.0880953900000003
    1.9, 0.4, 1.078200608125
    1.9, 0.45, 1.070492690625
    1.9, 0.5, 1.064741309375
    1.9, 0.55, 1.060532074375
    1.9, 0.65, 1.0555098706250001
    1.9, 0.7, 1.0543690518750002
    1.9, 0.75, 1.054136331875
    1.9, 0.8, 1.054667506875
    1.9, 0.85, 1.0559537618750001
    1.9, 0.9, 1.058167804375
    1.9, 0.95, 1.06084372625
    2.0, 0.005, 6.6950006562500075
    2.0, 0.01, 3.8373007200000036
    2.0, 0.02, 2.430107680625002
    2.0, 0.03, 1.9567370375000013
    2.0, 0.04, 1.7150070468750012
    2.0, 0.05, 1.576639463125001
    2.0, 0.1, 1.2911291056250005
    2.0, 0.2, 1.149635881875
    2.0, 0.3, 1.1023993493750002
    2.0, 0.4, 1.0788663956250002
    2.0, 0.5, 1.065718833125
    2.0, 0.6, 1.058550673125
    2.0, 0.65, 1.05642703
    2.0, 0.7, 1.05528647375
    2.0, 0.75, 1.055066970625
    2.0, 0.8, 1.0555202775
    2.0, 0.85, 1.0567080406250002
    2.0, 0.9, 1.0586962343750002
    3.0, 0.005, 7.049750107500005
    3.0, 0.01, 4.016296978125003
    3.0, 0.02, 2.5170094187500016
    3.0, 0.03, 2.012995694375001
    3.0, 0.04, 1.7612487693750007
    3.0, 0.05, 1.6108346393750006
    3.0, 0.1, 1.3090674962500002
    3.0, 0.2, 1.158725885625
    3.0, 0.3, 1.1093815837500003
    3.0, 0.4, 1.0853732150000002
    3.0, 0.5, 1.0721743831250001
    3.0, 0.6, 1.0646515275000001
    3.0, 0.65, 1.06238323625
    3.0, 0.7, 1.061092145625
    3.0, 0.75, 1.06033652125
    3.0, 0.8, 1.0602190412499999
    3.0, 0.85, 1.060658163125
    3.0, 0.9, 1.06159375625
    4.0, 0.005, 7.2074144737500045
    4.0, 0.01, 4.106390920625002
    4.0, 0.02, 2.560247993750001
    4.0, 0.03, 2.040396855000001
    4.0, 0.04, 1.7822926581250007
    4.0, 0.05, 1.6280526356250005
    4.0, 0.1, 1.3176889037500001
    4.0, 0.2, 1.1637171843750003
    4.0, 0.3, 1.1130651281250001
    4.0, 0.4, 1.088656450625
    4.0, 0.5, 1.0751258587499999
    4.0, 0.6, 1.067265088125
    4.0, 0.65, 1.064874729375
    4.0, 0.7, 1.0632104525
    4.0, 0.75, 1.0621684875000001
    4.0, 0.8, 1.06157615
    4.0, 0.85, 1.0615347525
    4.0, 0.9, 1.061794515625
    • Partager sur Facebook
    • Partager sur Twitter

    helloworld

      8 janvier 2021 à 17:13:46

      Salut,

      tu dois pouvoir t'en sortir en appliquant des Moindres Carrés (Least Squares) où l'inconnue est le vecteur des coefficients de tes polynômes et en utilisant le module scipy.optimize.

      • Partager sur Facebook
      • Partager sur Twitter

      Avez-vous entendu parler de Julia ? Laissez-vous tenter ...

        8 janvier 2021 à 17:57:56

        Salut,

        Merci pour ta proposition.

        J'utilise la fonction curve_fit, et cela fonctionne très bien, mais à priori mon problème est plutôt dans le choix du modèle (comment écrire ce polynôme)

        • Partager sur Facebook
        • Partager sur Twitter

        helloworld

        Fitting polynôme à deux variables

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown