#include #include #include extern "C" { void fcn(int npar, double grad[2], double * fcnval, double xval[2], int iflag, void (*Dummy)()); } FCALLSCSUB6(fcn,FCN,fcn,INT,DOUBLEV,PDOUBLE,DOUBLEV,INT,ROUTINE) extern "C" void fcn(int npar, double grad[2], double * fcnval, double par[2], int iflag, void (*Dummy)()) { extern int num_points; extern double z[], n[]; // constants for computing nu from z const double DELTA_RHO = 63000.; // g / micron^3 const double G = 0.0980; // microns / s^2 const double PI = 3.14159265; const double RADIUS = 0.52; // microns const double R_GAS = 8.32e15; // g micron^2/s^2/K const double T = 293; // K double nu0 = par[0]; double k = par[1]*100.; // J/K * 10^23 // EXERCISE 5.3 -- INSERT YOUR CODE HERE // Here you need a loop over the data points // to compute the log-likelihood function // Once you have logL, the quantity you want to minimize is -2*logL *fcnval = -2.0*logL; }