Bonjour!
Je souhaite résoudre l'équation "eqn" dont l'inconnue est "xT". Cette équation fait intervenir l'intégrale "in" de la fonction "fun". "xT" est l'une des bornes d'intégration donc "in" dépend de "xT".
J'ai essayé une résolution directe:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| close all
sig=5.67E-8;
xS=4;
phi=240;
gam=6.5E-3;
h=2.09E3;
syms xT x
fun=@(xT,x)exp(xT-x)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(x/xT))^4 % fun dépend de x et xT
in=int(@(x)fun(xT,x),xS,xT) % in ne dépend plus que de xT
eqn=phi*(xT+2)/2 == sig*exp(xT-xS)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(xS/xT))^4-sig*in
solxT=solve(eqn,xT) |
Ce code n'a pas marché, j'obtiens:
Error using mupadengine/feval (line 157)
MuPAD error: Error: The second argument must be of form x or x = a..b. [int]
Error in solve (line 170)
sol = eng.feval('symobj::solvefull',eqns,vars);
Error in meteo (line 13)
solxT=solve(eqn,xT)
Je me suis dit que l'équation était trop difficile à résoudre pour matlab (bizarre mais bon j'ai la version R2013b qui paraît-il buggue avec la fct feval..) , donc j'ai voulu procéder graphiquement:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| close all
sig=5.67E-8;
xS=4;
phi=240;
gam=6.5E-3;
h=2.09E3;
syms xT x
fun=@(xT,x)exp(xT-x)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(x/xT))^4;
in=int(@(x)fun(xT,x),xS,xT);
fun2=@(xT) (phi*(xT+2)/2)-(sig*exp(xT-xS)*((phi*(xT+1)/(2*sig))^(1/4)+gam*h*log(xS/xT))^4-sig*in); % nouvelle fonction s'annulant pour les xT qui m'intéressent
fplot(@(xT)fun2(xT),[-5,5]); |
Et là j'obtiens:
Undefined function 'min' for input arguments of type 'sym'.
Error in fplot (line 117)
ymin = min(y(J)); ymax = max(y(J));
Error in untitled3 (line 14)
fplot(@(xT)fun2(xT),[-5,5]);
En fait j'ai l'impression que matlab n'arrive même pas à calculer l'intégrale symbolique (car la variable "in" que matlab crée contient du xT ET encore du x, censé être la variable d'intégration...)
Que faire? Je voudrais simplement connaître la/les solutions à cette équation, même approximativement!
Merci d'avance.
Partager