3

実際のデータに適合させようとしている既知のモデルがあります。

fun = @(b,x) b(1)*x(:,1)./(x(:,2).^b(2));
beta0 = [70 1.1]; % expected range is 40-130, and 1.0-1.3
[beta,r]=nlinfit(X,tmp_y,fun,beta0);

nlinfit を使用すると、関数が Inf の値を返していることがわかります。コードを調べてみると、フィットの 2 回目の反復で、2 番目のベータ項が過剰に補償されて -80 に低下していることがわかりました。の値が非常に大きい場合x(:,2)、 のすべての値に対してゼロ除算が行われますx

これを防ぐために設定できるオプションはありますか? ドキュメントを読みましたが、すべてのオプションが実際に何をするのかよくわかりません。

4

1 に答える 1