Bonjour chers membres,
Je vous soumets un des problèmes que je rencontre en espérant que vous puissiez m'aider. J'ai recherché dans l'aide avant mais soit je n'ai pas compris soit j'ai l'impression que mon problème ne figure pas dans l'aide de la fonction "quad".
Ce que je souhaite, c'est faire l'intégration (par rapport à la variable x) d'une fonction "fun" qui à comme arguments les variables "x,a,b,c,d,e,f".
Dans la documentation j'ai trouvé ce type de chose (ou des équivalents) :
Le soucis c'est que l'on ne dit pas par rapport à quoi on intégre, du coup je pense que ça sous entends que fun ressemble à ceci (1 argument) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part q = quad(fun,a,b)
Or, dans mon cas, pour des raisons que je ne développerai pas, j'ai une fonction fun qui ressemble à ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part function y = fun(x)
Donc, du coup, si je fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part function y = fun(x,a,b,c,d,e,f)
matlab va faire n'importe quoi puisque je ne lui dis pas quelle est la variable d'intégration.
Code : Sélectionner tout - Visualiser dans une fenêtre à part q = quad(fun,a,b)
Pourriez vous donc me dire, s'il vous plait, comment spécifier à matlab la variable d'intégration ?
Voici ce que j'ai actuellement comme code :
j'ai mis ce @ pour m'inspirer de choses que j'ai vu avec ode45.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for i=1:nbCas Mn(i)=quad(@(x)fun(n(i),a,x,b,c,d,e,f),a,a*Teta); end
ça me paraissait correct comme démarche mais voici l'erreur que je rencontre :
ça me parait bizarre car "fun" contient bien qu'une sortie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Too many output arguments.
ps: j'ai testé les fonction calculTemp() et ret() et le soucis ne semble pas venir de ces dernières.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function [out]=fun(n,a,x,b,c,d,e,f) temp=calculTemp(); out=temp*ret();
Partager