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