Bonjour tout le monde !
Alors voilà, je suis plus ou moins débutante sur Python, et j'aurais grandement besoin de vos conseils. En fait, je cherche à réaliser une intégration double d'une fonction à 3 variables.
par exemple, intégrer z(x,y,t)=cos(x*y*t) sur x et y entre 0 et 1, afin d'obtenir une fonction en t.
J'arrive à le faire pour une intégrale simple, mais je bloque sur la double ! Visiblement, la fonction dblquad est censée faire ça très bien, mais ça ne marche pas, et je ne comprends pas pourquoi.
Voici un exemple de mon code :
------------------------------------------------------------
---------------------------------------------------------------
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
20
21
22
23
24
25 from scipy.integrate import dblquad from math import pi import numpy import pylab def fonc(x,y,t): return numpy.cos(x*y*t) def integ(time): A=numpy.zeros((time.shape[0],1)) for i in range(len(time)): t=time[i] A[i]=dblquad(fonc,0,1,lambda y: 0,lambda y : 1,args=(t))[0] return A time=numpy.linspace(0,10,100) A=integ(time) fig=pylab.figure() host=fig.add_subplot(111) plot_integ, =host.plot(time,A, 'k.', linewidth=2) pylab.show()
Seulement voilà, quand je le lance, il me sort que ma fonction "fonc" prend 3 arguments, et que je ne lui en ai donné que 2...
Quelqu'un aurait une petite idée ? Ce serait vraiment très sympa de votre part, et ça permettrait de me débloquer dans mon stage...
Merciiii
Partager