polyfit(x, y, n);%多項式擬合,返回降冪排列的多項式係數。polyval(p, xi);%計算多項式的值
function example()
x = [...];
y = [...];
p = polyfit(x, y, 3);
xi = 0:0.2:10;
yi = polyval(p, xi);
plot(xi, yi, x, y, 'r*');
end%也可以用plot(x, y, '*r')在工具箱(tools → basic fitting)中進行擬合
樣例:f(t) = a cos ( k t ) eω t
function example()
syms t %建立符號物件
x = [...];
y = [...];
f = fittype('a*cos(k*t)*exp(w*t)', 'independent', 't', 'coefficients', ); %構建函式
cfun = fit(x, y, f); %擬合
xi = 0:.1:20;
yi = cfun(xi);
plot(x, y, 'r*', xi, yi, 'b-');
end%也可以在工具箱start → toolboxes → curve fitting → curve fitting tool(cftool)中或輸入cftool命令進行擬合
曲線擬合工具箱
data: 輸出、檢視和平滑資料。
fitting: 擬合資料、比較擬合曲線和資料集。
exclude: 可從擬合曲線中排出特殊的資料點。
plotting: 選定區間後,單機按鈕可選擇原始資料和擬合的資料作圖。
analysis: 對擬合進行滿意度、偏差等分析。
給出資料,用logistic曲線模型進行擬合。
已知函式模型為:
y = 1 / ( a + b e-t )
只需令 y』= 1/y, x』= e-t 就可轉換成模型:
y』 = a + b x』
function example()
clear
clc%讀入資料
y = [...];
x = [...];
%線性優化處理
for t = 1:30
x(t) = exp(-t);
y(t) = 1/y(t);
end%計算,並輸出回歸係數b
c = zeros(30, 1) + 1;
x = [c, x'];
b = inv(x'*x)*x'*y'; %inv求逆矩陣
for i = 1:30
%計算回歸擬合值
z(i) = b(1, 1) + b(2,1) * x(i);
%計算離差
s(i) = y(i) - sum(y)/30;
%計算誤差
w(i) = z(i) - y(i);
end%離差平方和s
s = s * s';
%回歸誤差平方和q
q = w * w';
%回歸平方和u
u = s - q;
%計算,並輸出f檢驗值
f = 28 * u / q;
%非線性回歸模型的擬合值
for j = 1:30
y(j) = 1/(b(1,1) + b(2,1) * exp(-j));
end%輸出擬合曲線
plot(t, y);
end
MATLAB資料擬合
資料擬合的目的是使用乙個較為簡單的函式去逼近乙個複雜的 未知的函式,在matlab中資料擬合的原理是最小擬合的最小二乘原理,其中polyfit與polyval是最基本的擬合方法,除此之外,matlab還提供了更為直接簡單的資料擬合工具,cftool,下面舉乙個例子,介紹這兩種資料擬合的方法。資料表 ...
matlab 資料擬合
資料擬合又稱曲線擬合,俗稱拉曲線,是一種把現有資料透過數學方法來代入一條數式的表示方式。科學和工程問題可以通過諸如取樣 實驗等方法獲得若干離散的資料,根據這些資料,我們往往希望得到乙個連續的函式 也就是曲線 或者更加密集的離散方程與已知資料相吻合,這過程就叫做擬合 fitting a polyfit...
MATLAB中資料資料擬合
x0,y0是原始資料 x0 1790 10 2000 y0 3929214,5308483,7239881,9638453,12866020,17069453,23191876,31443321,39818449,50189209,62979766,76212168,92228496,1060215...