Bonjour,
Je suis actuellement en stage et je dois faire un programme matlab. J'ai une boucle qui me permet via la méthode des approximations successives de tendre vers la valeur souhaité, sauf qu'avec certaines valeurs initiales, ma boucle me donne des valeurs trop petites comparé à la précision de matlab, du coup quand le programme veut la pseudo inverse (avec pinv) il me renvoit NaN...
Le truc étant que mon maitre de stage m'a demandé de refaire ce programme qu'il avait déjà fait pour que je m'entraine sous matlab, à priori c'est la méthode qu'il a utilisé, sauf que maintenant il est absent pour 2 semaines...
voila le code de la boucle :
G=ones(J,1);
H=zeros(J,Q);
for i=1:J
for j=i:J:Q
H(i,j)=1;
end
end
[Nx1 M1 C1]=Nb_photon2(Kik,phii,thetai,E0 i,Deltau,Pj,Z,Massk,khik_tran, rhok,kc1,EXi1,bi1);
[Nx2 M2 C2]=Nb_photon2(Kik,phii,thetai,E0 i,Deltau,Pj,Z,Massk,khik_tran, rhok,kc2,EXi2,bi2);
%Normalisation
MN1=M1./(Mref1*ones(1,J));
MN2=M2./(Mref2*ones(1,J));
Matnulle=zeros(Ik,J);
MN=[MN1 Matnulle ; Matnulle MN2] ;
B=[MN' H']';
%PROBLEME 3EME ITERATION, colonne 3 de MN1&2<précision de matlab donc invserse de B = NaN
CN=pinv(B)*A;
PS : Je suis sur que Nb_photon2 ne pose aucun soucis
-----