函數(shù)式-直接確定型模型
3.1知識(shí)要點(diǎn)和背景:函數(shù) — 直接確定性模型
?????
?3.2實(shí)驗(yàn)與觀察:插值與擬合
3.2.1? 插值方法與多項(xiàng)式擬合的概念
3.2.2? 用Matlab作插值和擬合
3.2.3?? 用鼠標(biāo)選節(jié)點(diǎn) 觀察插值、擬合的效果
??????
3.2.4? 觀察程序說明
zxy3_1.m
【????? clf,a=-1;b=1;n=100;
? %用內(nèi)聯(lián)函數(shù)inline命令定義函數(shù),
? %在后面可直接用于函數(shù)g的計(jì)算,要改變函數(shù)做實(shí)驗(yàn),可按此格式重新定義g
g=inline('x^2-x^4');??? xx=linspace(a,b,n);
for i=1:n
?? gx(i)=gxx(i));?? % 前面已經(jīng)用inline命令定義了g,可以這樣用g計(jì)算函數(shù)值
end
ymin=min(gx)*0.8;ymax=max(gx)*1.2;%分四個(gè)界面畫圖g的圖形,以便于結(jié)果比較
subplot(2,2,1),
plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('近鄰插值')
subplot(2,2,2),
plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('線性插值')
subplot(2,2,3),
plot(xx,gx,'--'),grid,hold on,axis([a b ymin ymax]),title('樣條插值')
subplot(2,2,4),plot(xx,gx,'--'),
grid,hold on,axis([a b ymin ymax]),title('多項(xiàng)式擬合')
????????? %用鼠標(biāo)在屏幕上選點(diǎn)[x,y,button] = ginput(n),可套用下面程序的格式
button=1;
x1=[a];y1=[gx(1)];
while button==1
?[xi,yi,button]=ginput(1);
?????? subplot(2,2,1),h=plot(xi,yi,'ro')?????????????? %在4個(gè)圖形窗口畫點(diǎn)
????? subplot(2,2,2),h=plot(xi,yi,'ro')??????
????? subplot(2,2,3),h=plot(xi,yi,'ro')??
????? subplot(2,2,4),h=plot(xi,yi,'ro')
?????? x1=[xi,x1];y1=[yi,y1];????????????????????????? %將選的點(diǎn)存于向量x1,y1
end
?? x1=[b,x1];y1=[gx(n),y1];??????
??????? xx=linspace(a,b,n);??????? %定義自變量xx
???? %計(jì)算不同的插值函數(shù):x1,y1為節(jié)點(diǎn),xx為輸入自變量?
?ynearest=interp1(x1,y1,xx,'nearest');
?ylinear=interp1(x1,y1,xx,'linear');?????
?yspline=interp1(x1,y1,xx,'spline');
????? %多項(xiàng)式擬合指令[p,s] = polyfit(x,y,n),n為擬合多項(xiàng)式次數(shù),x,y為被擬合數(shù)據(jù)
,
???? %p為擬合多項(xiàng)式的系數(shù),s是用來做誤差 估計(jì)和預(yù)測(cè)的數(shù)據(jù)結(jié)構(gòu)。
?[p,c]=polyfit(x1,y1,4);
? ypolyfit=polyval(p,xx);?? %用polyval(p,x)計(jì)算系數(shù)為p的多項(xiàng)式在標(biāo)量或向量x處的
值
subplot(2,2,1),h=plot(xx,ynearest,'r-');set(h,'linewidth',2)?? %畫圖
subplot(2,2,2),h=plot(xx,ylinear,'r-');set(h,'linewidth',2);
subplot(2,2,3),h=plot(xx,yspline,'r-');set(h,'linewidth',2)
subplot(2,2,4),h=plot(xx,ypolyfit,'r-');set(h,'linewidth',2)????????????????????
】
3.3應(yīng)用、思考和練習(xí)
3.3.1若干函數(shù)的插值和擬合練習(xí)
3.3.2幾個(gè)應(yīng)用問題
1.? 機(jī)床加工和水深流速問題
?2. 內(nèi)燃機(jī)轉(zhuǎn)角與升程的關(guān)系
?3. 隨高度變化的大氣壓強(qiáng)
4. 交通事故的調(diào)查
3.3.4多元函數(shù)的插值
?1. 矩形溫箱的溫度
2.? 航行區(qū)域的警示線
3.3.5 Fourier級(jí)數(shù)和周期函數(shù)的經(jīng)驗(yàn)公式
??? zxy3_2.m
【???? clf,clear,
n=10;m=3;x=1:1:12;
y=[3.1 3.8 6.9 12.7 16.8 20.5 24.5 25.9 22.0 16.1 10.7 5.4];
z=(pi/6)*x;plot(z(1:12),y(1:12),'o');hold on
k=1:m;????????? %計(jì)算數(shù)據(jù)矩陣。
for i=1:n
?? X(i,:)=[1 cos(k*z(i)) sin(k*z(i))];
end
c=inv(X'*X)*X'*y(1:n)',? %求解。
z1=linspace(0,2*pi,30);
s=[];???????????????? %開始計(jì)算F-級(jí)數(shù)的部分和。
for i=1:30;
? sd=[1 cos(k*z1(i)) sin(k*z1(i))]'; %注意k是向量。
?? sd=c.*sd;?? s=[s,sum(sd)];
end
plot(z1,s,'r-'),hold on, xlabel('月份'),ylabel('平均氣溫')???????????????? 】
3.3.6由實(shí)驗(yàn)到理論:從開普勒定律和牛頓萬有引力定律
評(píng)論
查看更多