Bonjour à toutes et tous,
Je vous remercie par avance d'aider un ignorant comme moi.
Voila mon souci, je crée une fonction dont je veux calculer une integrale grace à la fonction quad.
Le soucie c'est que ma fonction possède plusieurs variables et que je ne parviens pas à faire rentrer ces paramêtres dans la fonction quand j'appelle quad...
Exemple plus simple
Voilà le script que je souhaite faire tourner:>> a=1
a = 1
>> quad('DRx(x,a,a,a,a)',0,1)
error: `a' undefined near line 1 column 41
error: evaluating argument list element number 2
error: evaluating assignment expression near line 1, column 33
error: called from `__quad_fcn__'
error: quad: evaluation of user-supplied function failed
>> quad('DRx(x,1,1,1,1)',0,1)
ans = -0.22985
****************************** ***
****************************** **
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 function [n]=DRx(x,W,kW,C,Result) n=real(W/(2*I*kW*C^2)*Result*exp(-I*x)); end CCC=3e8; for i=1:Npoint WW=W(i); kkk=kTHz(i); RRR=Result1(i); RR1(i)=quad('DRx(x,WW,kkk,CCC, RRR)',0,L); end
Tout marche si je donne des valeurs numériques en lieu et place des paramètres WW,kkk,CCC,RRR. Mais je veux calculer Npoint intégral avec des paramètres différents.
Au début j'appeller directementmarchait pas, alors j'ai fait le script pas jolie que je vous ai mis qui marche pas non plus. J'ai alors essayé en déclarant WW,kkk,CCC,RRR global ça change rien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part RR1(i)=quad('DRx(x,W(i),kTHz(i ),c,Result1(i))',0,L);
J'imagine que le fait que DRx soit entre guillemets fait qu'Octave pert les valeurs.
Comment passer des valeurs numériques à la fonction appellés dans quad ?
Comment pourrais-je contourner le problème ?
S'il vous plait je compte sur vous ce doit pas être très compliqué. Et c'est la dernière étape du calcul.
Merci d'avance,
Partager