Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

Fonction avec python

Posté par
Spemath
02-11-13 à 22:35

Bonjour j'essaye de faire une fonction qui me donne la racine du plus petit carré parfait supérieur à un entier n. J'ai fait

def f(m):
    a=m
    while sqrt(a) != floor(sqrt(a)):
       a=a+1
    return a

Mais ça ne marche pas (erreur syntaxe troisième ligne en dessous du ":"). c'est peut être du au fait que j'utilise la variable de la fonction pour définir la vleur initiale de la variable a...

Help me please !

Posté par
Bachstelze
re : Fonction avec python 03-11-13 à 09:24

Il faut copier le message d'erreur complet. Je parie une barquette de frites que ça n'est pas une erreur de syntaxe.

Posté par
ArgShX
re : Fonction avec python 03-11-13 à 12:24

salut,

Moi je parie un sac de cacahuètes qu'en important correctement sqrt et floor ça marche
Genre : "from math import *"

Sinon ton programme calcule le plus proche carré, pas sa racine.

Posté par
Spemath
re : Fonction avec python 04-11-13 à 13:21

En fait c'était bon .. Mais cependant je suis bloqué à un autre problème. Comment effectuer une fonction qui retourne une autre fonction.

Par exemple si je choisis une fonction f(x)=2x je cherche à deterrminer une fonction qui renvoie f(x+2)= 2x+4 ET non pas des valeurs numériques merci.

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 13:24

Précise ta pensée. Il est aisé de retourner une fonction, mais en prendre une en paramètre est plus compliqué.

Posté par
Spemath
re : Fonction avec python 04-11-13 à 16:39

En fait je dois chercher une fonction qui retourne la dérivée (en valeur approché) de la fonction choisie en utilisant l'approximation (f(a+h)-f(x))/h avec h=10 puissance moins quelque chose.

Par exemple si je note F cette fonction et f(x) la fonction x**2. Il faudrait que j'obtienne f'(x)=1,9999x (un truc du genre) grâce à cette fonction F.

Pour l'instant j'ai essayé (sans grand succès) d'en prendre une comme variable.

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 18:44

Tu peux faire cela avec le mot-clé lambda, qui sert à définir ce qu'on appelle des fonctions anonymes, qui n'ont a priori pas de nom. LA syntaxe est :

Citation :
lambda x : f(x)


Cette expression désigne une fonction qui prend un paramètre x et retourne f(x). Par exemple :

Citation :
>>> f = lambda x : 2*x+1
>>> f(4)
9


Ou encore :

Citation :

>>> def axplusb(a, b):
...     return lambda x : a*x+b
...
>>> f = axplusb(2, 3)
>>> f(4)
11


Tu devrais voir l'idée.

Posté par
Spemath
re : Fonction avec python 04-11-13 à 19:34

Je vois pas trop en quoi ça m'aide à trouver la dérivé d'une fonction Ça sert juste pour déterminer une valeur choisie f'(a) non?

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 19:43

Moi ce que j'ai compris, c'est que tu as unefonction f : x \mapsto f(x), e que tu veux obtenir la fonction g : x \mapsto \frac{f(x+h)-f(x)}{h}, pour un certain h, qui sera une approximation de f'. Si c'est bien ça, j'ai t'ai donné ce qu'il faut. Sinon, précise !

Posté par
Spemath
re : Fonction avec python 04-11-13 à 20:59

Oui c'est ça la variable étant donc f(x). Le résultat doit être la dérivé de la fonction en fonction de x. Je cherche pas de valeurs f'(1) ou f'(4) ... je cherche f'(x) pour tout x. Mais j'y arrive pas ..

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 21:03

Quelque chose comme ça ?

Citation :
>>> def derive(f, h):
...     return lambda x: (f(x+h)-f(x))/h
...
>>> f = lambda x: x**2
>>> f(3)
9
>>> g = derive(f, 0.001)
>>> g(3)
6.000999999999479

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 21:08

Si tu veux un programme qui te donne l'expression de f'(x), c'est impossible en Python. C'est le domaine des logiciels de calcul formel, tu peux regarder du côté de Sage :

Citation :
sage: R.<x> = PolynomialRing(QQ)
sage: f = x^2
sage: f.derivative()
2*x

Posté par
Spemath
re : Fonction avec python 04-11-13 à 21:30

Oui mais je ne cherche pas la valeur exacte de la dérivée. Je cherche une valeur approchée. Dans mon énoncé il est dit que en supposant que f(a+h)-f(x)/h = f'(x) déterminer une fonction qui donne la dérivée de en renvoyant une fonction et pas une valeur.

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 21:38

Eh bien c'est ce que j'ai fait ! Ma fonction derive, elle renvoie une fonction, pas une valeur.

Posté par
Spemath
re : Fonction avec python 04-11-13 à 21:46

Mais malheureusement le langage python est imposé ^^

Posté par
Bachstelze
re : Fonction avec python 04-11-13 à 21:53



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !