我想在MatLab中定義自定義曲線擬合。是我試圖以適應曲線如下:MatLab中的自定義曲線擬合
A*exp(B*x)+C
需要此配合的原因是因爲我的數據呈指數衰減,然而這一數據並不接近零(在這組數據,曲線應該衰減並接近零以上的數字)。使用fittype('exp2')也不是一種選擇,因爲它適合數據(當它應該保持在0以上的某個位置時,向上彎曲)。
ft = fittype('(A*exp(B*x)) + C','coefficients', {'A', 'B', 'C'});
然而,當我嘗試將數據擬合到這個曲線I得到以下錯誤消息::
「使用錯誤CFIT /的subsref> iDotReference(線66我使用以下代碼定義擬合類型) 名稱既不是係數也不是問題參數
cfit/subsref(第19行)中的錯誤 out = iDotReference(obj,currsubs);「
我無法弄清楚MatLab在這種情況下抱怨什麼。有時候,由於我不知道的原因,代碼會運行,但合適的只是很糟糕。我在這裏做錯了什麼?這是指數衰減到0以上的最佳方式嗎?
下面的代碼是我嘗試運行我的契合:
[cf, gof] = fit(time', testArray', fittype);
這確實有些幫助,但仍然適合是可怕的。奇怪的是,使用內置的exp1 fit,這個擬合是驚人的,所以看起來很奇怪,我通過嘗試合併一個常數而變得非常糟糕。當嘗試添加C術語時,是否有一個原因使得這種擬合變得如此之快? – odnanreh12 2014-10-07 18:35:52
此外,我經常遇到這個錯誤: Inf由模型函數計算,擬合無法繼續。 我也會發佈一個我試圖適合的數據樣本。 x:0.6325 0.7438 0.5353 0.3303 0.1355 0.0582 0.0317 0.1173 0.0720 0.0718 0.0350 0.0803 0.0293 y:11.3333 27.1667 37.0000 46.7000 56.5000 66.1667 76.0000 90.8333 100.6667 110.3333 120.6667 130.6667 140.6667 – odnanreh12 2014-10-07 18:53:13