35 lines
		
	
	
		
			602 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			602 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | subroutine fitcal(x,y,r,iz,a,b,sigmaa,sigmab,rms) | ||
|  |   implicit real*8 (a-h,o-z) | ||
|  |   real*8 x(iz),y(iz),r(iz) | ||
|  | 
 | ||
|  |   sx=0.d0 | ||
|  |   sy=0.d0 | ||
|  |   sxy=0.d0 | ||
|  |   sx2=0.d0 | ||
|  |   do i=1,iz | ||
|  |      sx=sx + x(i) | ||
|  |      sy=sy + y(i) | ||
|  |      sxy=sxy + x(i)*y(i) | ||
|  |      sx2=sx2 + x(i)*x(i) | ||
|  |   enddo | ||
|  |   delta=iz*sx2 - sx*sx | ||
|  |   a=(sx2*sy - sx*sxy)/delta | ||
|  |   b=(iz*sxy - sx*sy)/delta | ||
|  | 
 | ||
|  |   sq=0.d0 | ||
|  |   do i=1,iz | ||
|  |      r(i)=y(i) - (a + b*x(i)) | ||
|  |      sq=sq + r(i)**2 | ||
|  |   enddo | ||
|  |   rms=0. | ||
|  |   sigmaa=0. | ||
|  |   sigmab=0. | ||
|  |   if(iz.ge.3) then | ||
|  |      rms=sqrt(sq/(iz-2)) | ||
|  |      sigmaa=sqrt(rms*rms*sx2/delta) | ||
|  |      sigmab=sqrt(iz*rms*rms/delta) | ||
|  |   endif | ||
|  | 
 | ||
|  |   return | ||
|  | end subroutine fitcal |