@@ -93,6 +93,26 @@ static void NelderMeadOptimization(INIT_DATA* initData,
9393
9494 double lambda = * pLambda ;
9595 long iteration = 0 ;
96+
97+ FILE * pFile = NULL ;
98+
99+ if (ACTIVE_STREAM (LOG_INIT ) && (lambda < 1.0 ))
100+ {
101+ char buffer [4096 ];
102+ sprintf (buffer , "%s_initPath.csv" , initData -> simData -> modelData .modelFilePrefix );
103+ pFile = fopen (buffer , "wt" );
104+ fprintf (pFile , "%s," , "iteration" );
105+ fprintf (pFile , "%s," , "lambda" );
106+ for (i = 0 ; i < initData -> nVars ; ++ i )
107+ fprintf (pFile , "%s," , initData -> name [i ]);
108+ fprintf (pFile , "\n" );
109+
110+ fprintf (pFile , "%ld," , iteration );
111+ fprintf (pFile , "%.16g," , lambda );
112+ for (i = 0 ; i < initData -> nVars ; ++ i )
113+ fprintf (pFile , "%.16g," , initData -> vars [i ]);
114+ fprintf (pFile , "\n" );
115+ }
96116
97117 /* check Memory */
98118 ASSERT (simplex , "out of memory" );
@@ -205,6 +225,14 @@ static void NelderMeadOptimization(INIT_DATA* initData,
205225 lambda = 1.0 ;
206226
207227 INFO3 (LOG_INIT , "increasing lambda to %-3g in step %6d at f=%g" , lambda , (int )iteration , fvalues [xb ]);
228+ if (pFile )
229+ {
230+ fprintf (pFile , "%ld," , iteration );
231+ fprintf (pFile , "%.16g," , lambda );
232+ for (i = 0 ; i < initData -> nVars ; ++ i )
233+ fprintf (pFile , "%.16g," , initData -> vars [i ]);
234+ fprintf (pFile , "\n" );
235+ }
208236 continue ;
209237 }
210238 }
@@ -314,6 +342,16 @@ static void NelderMeadOptimization(INIT_DATA* initData,
314342
315343 if (pIteration )
316344 * pIteration = iteration ;
345+
346+ if (pFile )
347+ {
348+ fprintf (pFile , "%ld," , iteration );
349+ fprintf (pFile , "%.16g," , lambda );
350+ for (i = 0 ; i < initData -> nVars ; ++ i )
351+ fprintf (pFile , "%.16g," , initData -> vars [i ]);
352+ fprintf (pFile , "\n" );
353+ fclose (pFile );
354+ }
317355
318356 free (xe );
319357 free (xr );
0 commit comments