Pb integration ds matlab

Résolu/Fermé
grouzoide Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 30 janv. 2008 à 21:32
grouzoide Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 31 janvier 2008 - 31 janv. 2008 à 23:37
Bonjour, dans le cadre d'un projet de mathématiques, je suis amené à tracer pour différentes valeurs du paramètre oméga l'intégrale d'une fonction f dépendant d'oméga sur des bornes y1 et y2 dépendant de oméga.

Dans le code suivant, cependant, je n'arrive pas à paramétrer f. Faut il définir plusieurs paramètres à f et intégrer avec une autre fonction que quad? Comment rendre mon "for omega=0.7:0.01:0.8" effectif pour "f" et "trace"?

merci de m'éclairer un peu :)

function Trace

for omega=0.7:0.01:0.8

C=0.5-sqrt(0.5)-omega.*omega.*0.5;

%y2 est la valeur maximale
y2=sqrt(power((-1+(2*sqrt(2)*(1-omega*omega-sqrt(2)/4))/(2*omega*omega-2)),2)-1);

%y4 est la valeur minimale
y4=-sqrt(power((-1+(2*sqrt(2)*(1-omega*omega-sqrt(2)/4))/(2*omega*omega-2)),2)-1);


%Calcul de la periode
T =quad(@f,y4,y2)

% POINTS w,T
plot(omega,abs(T),'r:')
%end

%fonction a integrer
function f=f(x); 
C=0.5-sqrt(0.5)-omega*omega*0.5
f=sqrt(2)./(sqrt(-0.5.*x.*x+0.5.*sqrt(x.*x+1)+0.5.*x.*x.*omega.*omega+C));

2 réponses

damlegone32 Messages postés 74 Date d'inscription lundi 11 septembre 2006 Statut Membre Dernière intervention 31 mai 2011 29
31 janv. 2008 à 00:32
Salut,

Si on regarde l'aide de la fonction QUAD on peut l'utiliser de la façon suivante :
QUAD(FUN,A,B,TOL,TRACE,P1,P2,...) où P1,P2,... sont des paramètres supplémentaires de la fonction FUN, TOL est la tolérance de l'erreur(par défaut 1e-6) et trace par défaut à 0. Dans ton cas on a alors :
T =quad(@f,y4,y2,1e-6,0,omega);
Bien sur il faut définir f avec 2 paramètres :
function f=f(x,omega);

@+
0
grouzoide Messages postés 6 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 31 janvier 2008
31 janv. 2008 à 23:37
Merci beaucoup !!
0