Python: modifier le resultat d'une fonction.

Discutez d'informatique ici !
lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Python: modifier le resultat d'une fonction.

par lazare » 29 Aoû 2021, 14:09

Bonjour.

J'ai une fonction f(x) sur python j'aimerais faire que si son résultat est superieur à 0 la fonction reste la même mais si le resulat est inferieur à 0 je voudrait que la fontion devienne

Quels outils je pourais utiliser ?

Merci à vous.
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.



lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 29 Aoû 2021, 15:32

Voila ce que j'ai tenté pour l'instant:

Code: Tout sélectionner
from sympy import *
from sympy.abc import x

x= Symbol('x')

a = x**3

if a > 0:
  a = a
else:
  a = 1/a

plot(a)


ça me donne ça:

TypeError: cannot determine truth value of Relational
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

GaBuZoMeu
Habitué(e)
Messages: 4747
Enregistré le: 05 Mai 2019, 11:07

Re: Python: modifier le resultat d'une fonction.

par GaBuZoMeu » 29 Aoû 2021, 17:37

Que voudrais-tu exactement ? Une procédure qui prend en entrée une fonction et qui retourne la fonction modifiée ?

lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 29 Aoû 2021, 23:29

GaBuZoMeu a écrit:Que voudrais-tu exactement ? Une procédure qui prend en entrée une fonction et qui retourne la fonction modifiée ?


Oui. La meme chose qu'éssaye de faire mon script

Code: Tout sélectionner
a = x**3

if a > 0:
  a = a
else:
  a = 1/a
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 30 Aoû 2021, 15:29

GaBuZoMeu a écrit:Que voudrais-tu exactement ? Une procédure qui prend en entrée une fonction et qui retourne la fonction modifiée ?


Enfin oui, pour reformuler:
J'ai aurais besoin d'une deuxieme fonction qui change la première en fonction si son image est sperieure ou pas à 0
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 31 Aoû 2021, 01:47

trouvé

Code: Tout sélectionner
from sympy import *

x = Symbol('x')

g = x**3

h = Piecewise((g, x>0), (1/g, True))

plot(h, ylim=(-10, 10))
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 31 Aoû 2021, 10:48

Ah non en fait ça marche pas.
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

GaBuZoMeu
Habitué(e)
Messages: 4747
Enregistré le: 05 Mai 2019, 11:07

Re: Python: modifier le resultat d'une fonction.

par GaBuZoMeu » 31 Aoû 2021, 19:57

Une possibilité :

Code: Tout sélectionner
def a(x) :
    if x >=0 : return x
    else : return 1/x

f = lambda x : x**3

g = lambda x : a(f(x))


autre possibilité avec le a(x) défini ci-dessus

Code: Tout sélectionner
def truquer(f) :
    g = lambda x : a(f(x))
    return g

g = truquer(f)

lazare
Membre Relatif
Messages: 175
Enregistré le: 11 Mai 2020, 23:16

Re: Python: modifier le resultat d'une fonction.

par lazare » 02 Sep 2021, 00:34

J'ai éssayé avec ça et ça marche:

Code: Tout sélectionner
from sympy import *
x = Symbol('x')

g = x**3

h = Piecewise((g, g>0), (1/g, True))
         
plot(h, ylim=(-10, 10))
J'ai un niveau lycée. Je pose des questions sur les maths par intérêt non-professionnel. Si vous utilisez des termes du supérieur dans vos réponses. Pouvez vous me les définir svp? Merci à vous.

Cliffe
Membre Rationnel
Messages: 967
Enregistré le: 12 Juin 2012, 15:25

Re: Python: modifier le resultat d'une fonction.

par Cliffe » 23 Sep 2021, 07:55

Tu peux utiliser un décorateur :

https://onlinegdb.com/dfhsJAn7r

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite