Bonjour,
j'ai un vecteur de 100 valeurs E correspondant à 100 valeurs de d'un vecteurs h.
Je dois effectuer pour chaque valeur le calcul de l'intégrale de h à l'infini de E(x)dx
soit le calcul de al(h)=int(h->+inf)E(x)dx
sachant que E(+inf)=0
J'ai écris un solveur d'intégrale utilisant la fonction de simpson et j'aimerai l'utilisé. Je n'y arrive pas.
Voici ma fonction simpson.m (elle marche très bien!):
et un extrait de mes vecteurs E et h:
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 function y=simpson(f,h) % function y=simpson(f,h) % intégration simpson pour une fonction f sur un intervalle h %--------------------------------------------------------- % adapted for matrix integration f(n1,n2) is Simpson integrated % along n2 [n1,n2]=size(f); if n1==1 | n2==1 % vector np=length(f); i4=2:2:np-1; i2=3:2:np-2; y=h/3.0*(f(1)+4*sum(f(i4))+2*sum(f(i2))+f(np)); else % 2-D array (integration along second index) np=n2; i4=2:2:np-1; i2=3:2:np-2; y=h/3.0*(f(:,1)+4*sum(f(:,i4),2)+2*sum(f(:,i2),2)+f(:,np)); end
h=[17.8373 17.8361 17.8349 17.8338 17.8326]
E=[0.2664 0.2665 0.2667 0.2668 0.2669]
ce n'est qu'un extrait, ne pas se fier à l'apparente linéarité.
Je n'arrive pas à utilser simpson pour avoir chaque valeur de h!
Partager