problème en info

Messages : 0

Inscription : 04 déc. 2018 22:07

Profil de l'utilisateur : Élève de lycée

problème en info

Message par haw7ski » 06 mars 2019 18:51

Bonjour,

Je veux tracer la fonction f qui est nulle partout et en [-1,1] elle est égale à (1-t²)^3 . J'ai fait ce programme mais je comprends pas pq ça me donne une fonction nulle :
C'est tout ridicule mais je vois pas pourquoi ça marche pas :(
Merci

Code : Tout sélectionner

import matplotlib.pyplot as plt
import numpy as np

d=np.arange(-1,1.1,0.1)
def f(x):   
  if x in d :
    return (1-x**2)**3
  else:
    return 0

x=np.arange(-2,2,0.1)
y=[f(k) for k in x]
plt.plot(x,y)
plt.show()

Messages : 0

Inscription : 10 juin 2016 22:48

Profil de l'utilisateur : Élève de lycée

Re: problème en info

Message par justin067 » 06 mars 2019 20:37

Salut,

je pense que le soucis vient de la mauvaise gestion par python des nombres sous la forme 0.100000000eXX il doit y donc y avoir des problèmes de "valeurs approchées".
Je te conseil, après avoir essayé, de définir tes ensembles de points d'une manière un peu plus barbare, par exemple en écrivant

Code : Tout sélectionner

d = [ -1 + k/10 for k in range(21)]
MPSI 1 -> MP3 (3/2) -> MP2 (5/2)

Messages : 0

Inscription : 14 juin 2015 11:42

Profil de l'utilisateur : Élève de lycée

Re: problème en info

Message par Luckyos » 06 mars 2019 20:57

Tu utilises des test d'égalité entre des floats (c'est à bannir parce que ça marche jamais à cause des approximations) avec "x in d".
Si t'as vraiment besoin de comparer des floats, tu peux faire des tests du type |x-y|<epsilon avec epsilon suffisamment petit, mais là c'est pas nécessaire.

Tout simplement : -1<x<1
X2018

Messages : 0

Inscription : 04 déc. 2018 22:07

Profil de l'utilisateur : Élève de lycée

Re: problème en info

Message par haw7ski » 06 mars 2019 23:13

@justin067 j'ai essayé, ça marche oui, mais "brutalement" . Genre ça donne une courbe un peu moche mdr ( à cause du range ), mais merci.
@Luckyos OUiii c'est ça, tout simplement!! Mdr merci

Répondre