function s=sombrp(t,lamda,k,n)
s=0;
for l=0:(n.*(k-1)+j-1)
s=s+((lamda*t)^l)*exp(-lamda*t)/factorial(l);
end
D'accord je vois où le problème.. c'est vraiment pas de chance...
normalement comme la variable j n'est pas définie dans sombrp, ça aurait du causer une erreur
Même si elle est définie dans Fbrp et que sombrp est appelée à partir de Frbrp, ça ne suffit pas, la variable j n'est pas visible dans sombrp ...
Par exemple rien ne m'empêcherait d'appeler sombrp à partir d'une fonction où j n'est pas définie... bref ... là n'est pas vraiment le problème ...
en fait j représente aussi le nombre imaginaire (racine carrée de -1) et donc ici, matlab a considéré ce j comme tel et c'est pour ça qu'il ne s'est pas plaint que la variable j n'est pas définie ...
Mais du coup, vous essayez de faire itérer l dans des valeurs complexes et c'est pour ça qu'il fait l'erreur :
Warning: Colon operands must be real scalars.
> In sombrp at 4
In Fbrp at 7
In brp at 13
qui siginifie en gros que les opérandes de l'opérateur : doivent être des nombres réels or dans ce cas-ci, l'opérande à droite des deux points est un nombre complexe à cause du +j
Bref, si vous voulez faire passer la valeur de j dans l'espace de la fonction sombrp, vous devriez le faire passer en paramètre de la fonction également ...
function s=sombrp(t,lamda,k,n,
j)
et dans Fbrp appeler la fonction sombrp en lui passant aussi le paramètre j ...
Voilà, je pense que c'est fini pour les erreurs ... maintenant je n'ai pas regardé de près et donc je ne peux pas vous certifier qu'il calcule effectivement ce que vous désirez et qu'il n'y a pas des erreurs plus subtiles ailleurs...
bon courage 🙂