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) :
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,a,b,c,d,e,f)
Donc, du coup, si je fais ceci :
matlab va faire n'importe quoi puisque je ne lui dis pas quelle est la variable d'intégration.

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 :
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
j'ai mis ce @ pour m'inspirer de choses que j'ai vu avec ode45.
ça me paraissait correct comme démarche mais voici l'erreur que je rencontre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Too many output arguments.
ça me parait bizarre car "fun" contient bien qu'une sortie :
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();
ps: j'ai testé les fonction calculTemp() et ret() et le soucis ne semble pas venir de ces dernières.