Download levma3.eso

Back to the list

   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