Bonjour à tous,
Voilà dans le cadre d'un travail, je dois approximer l’aire sous une fonction par la somme des aires de N rectangles consécutifs, de base (b-a) = N (ou a et b sont les bornes de l'intégration) et de hauteur égale à la valeur de f au milieu du sous-intervalle.
J'ai établi le code pour la fonction carrée, le voici, il fonctionne bien.
1 2 3 4 5 6 7 8
| function I = intMedian(a,b,N)
h = (b-a)./N;
x = a+h.*((1:N)-0.5);
I = h.*sum(x.^2);
end |
Maintenant je voudrais le code pour n'importe quelle fonction f. J'ai fais ceci :
1 2 3 4 5 6 7 8
| function I = intMedian(f,a,b,N)
h = (b-a)./N;
x = a+h.*((1:N)-0.5);
I = h.*sum(f(x));
end |
Et ça ça ne fonctionne pas, quelle que soit l'entrée que je mets à la place de f.
MATLAB me répond ceci :
??? Undefined function or variable 'x'.
Je sais bien que c'est parce qu'il ne "reconnait" pas la fonction de x que je lui assigne mais je ne comprends pas comment faire pour que cela fonctionne. Ce que je voudrai, si je veux par exemple connaitre l'aire sous x^2 entre 0 et 1 en le coupant en 10 intervalles, c'est pouvoir écrire :
function I = intMedian(x.^2,0,1,10)
Merci !
Partager