Bonjour,
Je rencontre des difficultés à résoudre numériquement un système de sept équations non linéaires. Je pourrai le résoudre à la main, mais je préfère le faire par informatique car le risque de faire une erreur de calcul est nul.
J'ai donc lu de la doc et mis mon problème sous matlab ainsi:
Je tire ces équations d'un article, les résultats y sont également présents ce qui fait qu'en x0 j'ai mis les valeur que trouvent ces auteurs à ce système. Pourtant, même en augmentant beaucoup le nombre d'itérations, matlab n'arrive pas à trouver de solution,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 alpha=0.65; F=9.0; k=0.2; phi=0.4; eta=0.36; theta=1.1; beta=0.99; delta=0.025; gamma=0.005; boc=0.56; rr=0.005; V=0.31; q=1; f=@(x)([ ((V*F)/((1-rr)))*(((b/x(1))+k*q*(x(7)/x(1)))^alpha)*(((x(2)/x(1)))^(1-alpha))-1, x(6)+(alpha/(boc+(k*q*x(7))/x(1))), x(5)*x(4)+(((1-phi))/(1-x(3)-x(2))), x(4)-((phi/(x(5)*x(1)))-1)*(((1-alpha)*x(1))/x(2)), x(4)-(((theta-1)*(1-eta))/theta)*(((x(7)/x(3)))^eta), ((phi/(x(5)*x(1)))-1)*x(6)*k*q-q+(beta/(1+gamma))*((1-delta)*q+((eta*(theta-1))/theta)*(((x(7)/x(3)))^(eta-1))), (((x(7)/x(1)))^eta)*(((x(3)/x(1)))^(1-eta))-((delta*q*x(7))/x(1))-1 ]); x0=[0.8409,0.0063,0.3195,1.949,0.457,0.237,9.19]; options=optimset('Display','iter','MaxFunEvals',300000,'MaxIter',300000); resultat=fsolve(f,x0,options);
Du coup, je ne sais pas si le problème ne vient pas directement de l'algorithme qui n'est pas adapté à mon problème? Je serai très reconnaissant que quelqu'un m'éclaire sur le sujet :-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Solver stopped prematurely. fsolve stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 300000 (the selected value).
Merci d'avance,
Partager