matlab 資料擬合

2021-07-04 20:12:39 字數 1897 閱讀 8611

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...