コードは他のサンプルでは正常に動作していますが、いくつかのサンプルではグラフが収束していないことが示されています。
「より緩やかな収束基準を検討するか、「反復オプション」で「現在の推定値を受け入れる」を選択してください。 失敗: 目的関数を下げることはできません
コードは以下の通りですが、うまく動作しないサンプルを添付します。
Names Default To Here( 1 );
dt= currentdatatable();
New Column( "Model",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Parameter(
{p = 0.29, x0 = 15, m0 = 1.2, x1 = 30, m1 = 5},
p * (1 - Exp( -(X_mm / x0) ^ m0 )) + (1 - p) * (1
-Exp( -(X_mm / x1) ^ m1 ))
)
),
);
nlin = dt << Nonlinear(
SendToByGroup( Bygroup Default ),
Y( Ln_C ),
X( :Model ),
Iteration Limit( 1000 ),
Unthreaded( 1 ),
QuasiNewton BFGS,
//Newton,
Finish,
By( Sample_ID ),
);