Bonsoir

J'ai un souci pour tracer la courbe d'un polynôme.

Voici un tableau de données.



Il y a près de soixante-dix-neuf lignes de codes, je mets l'essentiel.

Avec scipy.interpolate, j'ai trouvé

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
def l():
 
    g = lagrange([5929741, 10793861, 74618461, 302111711, 1225043000, 6644672000], [0.248004, 0.454276, 3.129361, 12.609601, 51.194025, 278.522721])
 
    print('iterpolation',g)



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
 
def graph():
 
    x =[5929741, 10793861, 74618461, 302111711, 1225043000, 6644672000]
 
    f =x*2.541*(x*4.256*(x*- 9.733*(x*2.947*( x*(-2.11)))))-0.004049
 
    plt.figure(figsize=(9, 5))
    plt.grid()
    plt.scatter(a, t, label="Nuage de points")
    plt.plot(a, f)
    plt.legend()
    plt.title('Loi de Kepler')
    plt.show()

Je n'arrive pas à tracer le polynôme, si h'ai bien compris l'erreur ci-dessous.

ypeError: can't multiply sequence by non-int of type 'float'
L'erreur vient du faite que j'essaie de multiplier un non entier de type flaot.

J'ai essayé de modifier comme ci-dessous.

f =float(x) *2.541*(float(x)*4.256*(float(x)*- 9.733*(float(x)*2.947*( float(x)*(-2.11)))))-0.004049

Il me sort l'erreur:

TypeError: float() argument must be a string or a number, not 'list'
Là, je ne vois comment résoudre ce problème.

A bientôt