2013-10-19 47 views
0

我試圖擬合一些數據,但使用多項式我無法找到一個好的解決方案。那麼,我怎樣才能繪製出像黑色曲線一樣的曲線(瞭解曲線的類型)?更適合帶Polyfit

enter image description here

figure('Units', 'pixels', 'Position', [100 100 500 375]); 
hold on; 

ydata_s = [1.0e-03 0.5804 0.3916 0.2234 0.1527 0.0697 0]; 
ydata_m = [0.2765 0.2760 0.2758 0.2757 0.2755 0.2754]; 
xdata_m = [1 2.5 5 10 50 100]; 

% Fit with a line. 
coeffs = polyfit(xdata_m, ydata_m, 2) 
% Define the range where we want the line 
xFitting = (0:1:100); 
yFitted = polyval(coeffs, xFitting); 

hFit = line(xFitting, yFitted); 
hE = errorbar(xdata_m, ydata_m, ydata_s); 


set(hFit       , ... 
    'Color'   , [0 .2 .6] ); 
set(hE       , ... 
    'LineStyle'  , 'none'  , ... 
    'Marker'   , '.'   , ... 
    'Color'   , [.8 .3 .3] ); 

hTitle = title ('Precisione/Velocità'); 
hXLabel = xlabel('Campionamnto [%]'); 
hYLabel = ylabel('Funzione Obiettivo [€/P]'); 

xlim([0 100]); 

hLegend = legend(... 
    [hE, hFit], ... 
    'Data (\mu \pm \sigma)' , ... 
    'Fit (\it{x^3})'  , ... 
    'location', 'NorthEast'); 

set(gca,'XTick',[1 2.5 5 10 50 100]); 
+0

這看起來像指數衰減。你應該更詳細地說明你已經嘗試了什麼。 –

+0

看起來像!有沒有一種方法來適應指數曲線而不改變軸比例? – gmeroni

+0

多重指數適合張貼的答案是「改變軸比例尺」的一種方法,如果這意味着考慮到衰減不會進入y = 0的事實。無論如何,爲什麼它不應該用合理的模型來回答。在數學上,似乎該模型可能像指數+偏移一樣簡單。 –

回答

1

這是相對容易的,如果你有曲線擬合工具箱

x = [1 2.5 5 10 50 100]; 
y = [0.2765 0.2760 0.2758 0.2757 0.2755 0.2754]; 
plot(x, y, '*'); 
hold('on'); 
plot(fit(x', y', 'exp2')); 
legend({'Data', 'Fit'}) 

Figure of data and fit

兩屆任期指數擬合具有R^2的0.96