Hello, I am sorry for the bother.
I am trying to learn Minuit so I want to fit a simple linear function y=mx+q
This is my code (in Fortran), do you know why I cannot get the right value of the parameters?
Thank you in advance.
PROGRAM TEST
IMPLICIT NONE
real*8 y_o(3), x_o(3), erry_o(3)
real*8 para(2),chi, chi2
external FNC
common/paramfit/para,chi2
open(unit=5,file='minuit_param.dat',status='old')
open(unit=6,file='minuit_out.dat', form='formatted')
c open(unit=7, file=‘results.dat’,status=‘new’)
x_o(1)=1.575
x_o(2)=1.606
x_o(3)=1.744
y_o(1)=1.053
y_o(2)=1.131
y_o(3)=1.292
erry_o(1)=0.1
erry_o(2)=0.2
erry_o(3)=0.15
call mintio(5,6,7)
call minuit(FNC,0)
close(5)
close(6)
STOP
END
SUBROUTINE FNC(npar,grd, chi, xv, iflg, fut)
real*8 m, x, y, q
real*8 y_o(3), x_o(3), erry_o(3)
real*8 grd(*), xv(*)
real*8 w,fut, funz
integer npar, iflg
real*8 para(2),chi, chi2
external funz
common/paramfit/para,chi2
npar=2
do i=1,2
para(i)=xv(i)
end do
c Computation of the Chi Square
w=0.d0
do j=1,3
w=w+((y_o(j)-funz(x_o(j)))**2/(funz(x_o(j))))
end do
chi=w
chi2=chi
RETURN
END
real*8 function funz(x)
real*8 x,m,q
real*8 para(2),chi, chi2
common/paramfit/para,chi2
m=para(1)
q=para(2)
funz=m*x+q
RETURN
END
This is the output I get:
MINUIT RELEASE 96.03 INITIALIZED. DIMENSIONS 100/ 50 EPSMAC= 0.89E-15
MINUIT DATA BLOCK NO. 1
Chi Square
PARAMETER DEFINITIONS:
NO. NAME VALUE STEP SIZE LIMITS
1 'm ’ 1.0000 0.10000E-01 -5.0000 5.0000
2 'q ’ -2.0000 0.10000E-01 -5.0000 5.0000
***************************************************************************
MINUIT: FIRST CALL TO USER FUNCTION, WITH IFLAG=1
FCN= -5.261639 FROM PARAMETR STATUS=RESET 2 CALLS 2 TOTAL
EDM= unknown STRATEGY= 1 NO ERROR MATRIX
EXT PARAMETER CURRENT GUESS PHYSICAL LIMITS
NO. NAME VALUE ERROR NEGATIVE POSITIVE
1 m 1.0000 0.10000E-01 -5.0000 5.0000
2 q -2.0000 0.10000E-01 -5.0000 5.0000
** 1 **SET PRINT
** 2 **SET ERR 0.5000
** 3 **MIGRAD
MIGRAD MINIMIZATION HAS CONVERGED.
MIGRAD WILL VERIFY CONVERGENCE AND ERROR MATRIX.
MINUIT WARNING IN HESSE
============== Second derivative zero for parameter 1
MNHESS FAILS AND WILL RETURN DIAGONAL MATRIX.
FCN= -15.13724 FROM MIGRAD STATUS=CONVERGED 93 CALLS 95 TOTAL
EDM= 0.19E-06 STRATEGY=1 ERROR MATRIX UNCERTAINTY=100.0%
EXT PARAMETER APPROXIMATE STEP FIRST
NO. NAME VALUE ERROR SIZE DERIVATIVE
1 m 1.0000 4.1223 -0.0000 0.0000
2 q -4.9529 2.2768 0.43940E-01 -0.17457E-02
ERR DEF= 0.500
** 4 **STOP
CALL TO USER FUNCTION WITH IFLAG = 3
…MINUIT TERMINATED BY MINUIT COMMAND: STOP