1 : C LEVMA3 SOURCE CHAT 05/01/13 01:15:28 5004 2 : subroutine levma3(x,y,sig,ndata,a,ma,alpha,beta,nalp, 3 : & ytest,dyda,chisq) 4 : c 5 : c appele par mrqmin pour evaluer la matrice alpha et le vecteur beta 6 : IMPLICIT INTEGER(I-N) 7 : IMPLICIT REAL*8 (A-H,O-Z) 8 : parameter (mmax=20) 9 : real*8 x(ndata),y(ndata),sig(ndata),alpha(nalp,nalp),beta(ma), 10 : & dyda(ma*ndata),a(ma),ytest(ndata) 11 : 12 : * initialise alpha et beta (symetriques) 13 : do 12 j=1,ma 14 : do 11 k=1,j 15 : alpha(j,k) = 0. 16 : 11 continue 17 : beta(j) = 0. 18 : 12 continue 19 : 20 : chisq = 0. 21 : * somme sur les donnees 22 : do 15 i=1,ndata 22 : co call funcs(x(i),a,ymod,dyda,ma) 23 : sig2i = 1./sig(i)/sig(i) 24 : co dy = y(i) - ymod 25 : dy = y(i) - ytest(i) 26 : do 14 j=1,ma 27 : co wt = dyda(lista(j))*sig2i 28 : wt = dyda(ma*(i-1)+j) * sig2i 29 : cc write(6,*) i,lista(j), wt 30 : do 13 k=1,j 31 : co alpha(j, k) = alpha(j, k) + (wt * dyda(lista(k))) 32 : alpha(j,k) = alpha(j,k) + ( wt*dyda(ma*(i-1)+k) ) 33 : 13 continue 34 : beta(j) = beta(j) + (dy * wt) 35 : 14 continue 36 : * valeur de chi² 37 : chisq = chisq + (dy*dy*sig2i) 38 : 15 continue 39 : 40 : do 17 j=2,ma 41 : do 16 k=1,j-1 42 : alpha(k,j) = alpha(j,k) 43 : 16 continue 44 : 17 continue 45 : return 46 : end 47 : 48 :
© Cast3M 2003 - All rights reserved.
Disclaimer