problème Matlab
Bonjour à tous
J'ai un problème en Matlab, après l'exécution d'un programme il affiche le message suivant:
??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.
Error in ==> normpdf at 22
end
Si vous pouvez m'expliquer ce que signifie ça?
Merci
J'ai un problème en Matlab, après l'exécution d'un programme il affiche le message suivant:
??? Maximum recursion limit of 500 reached. Use set(0,'RecursionLimit',N)
to change the limit. Be aware that exceeding your available stack space can
crash MATLAB and/or your computer.
Error in ==> normpdf at 22
end
Si vous pouvez m'expliquer ce que signifie ça?
Merci
Réponses
-
Cela signifie que tu utilises une fonction récursive qui crée une pile de plus de 500 appels. On ne va pas pouvoir t'en dire beaucoup plus si tu ne nous donne pas un exemple (le plus court possible) de code qui te renvoie cette erreur.
-
Bonjour,
C'est très clair, mais peut-être ton problème vient il du fait que tu ne lis pas l'anglais ?
Tu as une fonction récursive qui s'appelle un peu trop elle-même.
Cordialement,
Rescassol -
Merci à vous, le programme est comme suit
function Lkl=likelihood(alp,delt,sig,Delt,beta,k,x,y) n=50;N=50; alp=0.4;delt=0.01;sig=0.1;beta=0.9;Delt=0.2; x=rand(1,n); k=15; y=randn(1,n); calcul vraisemblance for t=1:N for i=2:n vrais1(1,t)=1; vrais1(i,t)=normpdf(y(i),beta*x(i)+alp*(y(i-1)-beta*x(i-1)), sqrt(delt^2*(y(i-1)-beta*x(i-1))^2+sig^2)); vrais1(k,t)=normpdf(y(k),beta*x(k)+Delt+alp*(y(k-1)-beta*x(k-1)), sqrt(delt^2*(y(k-1)-beta*x(k-1))^2+sig^2)); end end vrais1; Lkl=prod(vrais1); Metropolis Hastings M=10; beta(1)=0.9;alp(1)=0.4;Delt(1)=1;delt(1)=0.07;sig(1)=0.1; for t=2:M betastar(t)=normpdf(beta(t-1),0.1); alpstar(t)=normpdf(alp(t-1),0.4); Deltstar(t)=normpdf(Delt(t-1),0.7); deltstar(t)=normpdf(Delt(t-1),0.3); sigstar(t)=normpdf(sig(t-1),0.1); u=rand; r1(t)=min([(likelihood(alpstar, deltstar, sigstar, Deltstar, betastar, k,x,y) / likelihood(alp(t-1,1),delt(t-1,1),sig(t-1,1),Delt(t-1,1),beta(t-1,1),k,x,y)),1]); if u<r1(t) beta(t)=betastar; else beta(t)=beta(t-1); end end beta
-
Bonne nuit,
Skilveg t'avait écrit "un exemple (le plus court possible) de code".
Tu trouves que ce que tu nous montres est "le plus court possible" ?
On ne connaît pas ton problème, que veux tu qu'on comprenne ?
De plus les indentations ne sont inventées pour rien, et il existe le bouton
"Code formaté" sur lequel tu aurais pu cliquer.
Cordialement,
Rescassol
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 7 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 772 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres