Bonjour.
Je suis débutant en python. L'enseignement que je suis nous demande de faire des exercices, mais sans correction ni cours...
Actuellement, j'essaie de faire le premier de ma liste : intégrer une fonction, à plusieurs variables, selon une de ses variables.
Enoncé:
Intégration d’une fonction à un paramètre
1. Définir la fonction f(x) en python en faisant appel au module de Scipy pour le calcul de
l’intégral d’une fonction.
2. Faire un graphe de la fonction f(x) dans l’intervalle −5 < x < 5.
3. A l’aide de la méthode de Newton-Raphson (implémentée dans Scipy), déterminer numériquement le zéro de la fonction, c’est à dire le point x0 où f(x = x0) = 0.
4. Trouver les points de maximum et minimum local de f.
Voici le code que j'ai produit :
Résultat :
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
16 #importation des bibliothèques import numpy as np from scipy.integrate import quad #définition de la fonction def f(x,y): return np.exp(-(x**2)*y)*(x + y**2) #fonction a intégrer, donnée dans l'énoncé. #conditions initiales ou paramètres x=1 # on fixe le paramètre x pour intégrer une première fois selon y. #programme A=quad(f,0,1,args=(x)) #intégration de f de 0 à 1 selon y en mettant x comme paramètre. print(A) #présenter le résultat de l'intégration.
(1.0628844122267056, 1.1800387469692648e-14)
#(Valeur de l'intégrale, erreur de calcul)
J'ai essayé de faire la suite en changeant x en un intervalle plutôt qu'une valeur fixée, mais je me suis cassé les dents dessus. Je ne sais pas du tout comment m'y prendre. J'ai essayé une boucle, mais je n'arrive pas à avoir de lucidité pour la visualiser et la transcrire.
Résultat :
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
16
17
18
19 #importation des bibliothèques import numpy as np from scipy.integrate import quad #définition de la fonction def f(x,y): return np.exp(-(x**2)*y)*(x + y**2) #fonction a integrer à l'aide de quad. #conditions initiales ou paramètres x=np.linspace(-5,5,11) # on pose un espace linéaire pour x allant de -5 à 5, avec 11 valeurs pour contenir # un pas de 1. (il faut compter le zéro) #programme #A=quad(f,0,1,args=(x)) #intégration de f de 0 à 1 selon y en mettant x comme paramètre. for i in x: # boucle pour intégrer f sur l'intervalle demandé. A[i]=quad(f,0,1,args=(i)) print(A) #présenter le résultat de l'intégration.
A[i]=quad(f,0,1,args=(i))
TypeError: 'tuple' object does not support item assignment
Voilà. Je suis bloqué et je commence à désespérer. C'est pour cela que je suis venu vers vous, car vous me semblez être de bons conseils sur ce forum.
Bien à vous.
Partager