?? f30.m
字號:
function f30 %曲線擬合 函數發現
%往往給出一些數據,然后通過曲線擬合,然后預測未知的數據
close all
time=[0,620,2266,3482];
temp=[145,130,103,90];
temp=temp-68;
subplot(2,1,1);
plot(time ,temp,time ,temp,'o'),xlabel('Time (s)'),ylabel('Relative Temperature (F)');
subplot(2,1,2);
semilogy(time ,temp,time ,temp,'o'),xlabel('Time (s)'),ylabel('Relative Temperature (F)');
%------------------------------------------------------------
%對其進行擬合
p=polyfit(time ,log10(temp),1); %指數函數T=68+b*10^(mt)
m=p(1);
b=10^p(2);
t=[0:10:4000];
Te=68+b*10.^(m*t);
figure(2)
semilogy(t ,Te-68,time ,temp,'o'),xlabel('Time (s)'),ylabel('Relative Temperature (F)'); %預測模型的圖
%-----------------------------------------------
%help polyfit polyval
%p=polyfit(x,y,n) 用一個n階多項式擬合由矢量x y所描述的數據。p為多項式系數 polyval可獲得可預測的誤差估計
figure(3)
x=[1:9];
y=[5,6,10,20,28,33,34,36,42];
xp=[1:0.01:9];
for k=1:4
coeff=polyfit(x,y,k);
yp(k,:)=polyval(coeff,xp);
j(k)=sum((polyval(coeff,x)-y).^2);%累計誤差
subplot(2,2,k)
plot(xp,yp(k,:),x,y,'o'),axis([0 10 0 50]);
end
disp(j)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -