% Enter the data.
time = [0,620,2266,3482];
temp = [145,130,103,90];
%Subtract the room temperature.
temp = temp - 68;
% Plot the data on rectilinear scales.
subplot(2,2,1)
plot(time,temp,time,temp,'o'),xlabel('Time (sec)'),...
ylabel('Relative Temperature (deg F)')
%
Time t (sec) Temperature T (oF)
0 145
620 130
2266 103
3482 90
% Plot the data on semilog scales.
subplot(2,2,2)
semilogy(time,temp,time,temp,'o'),xlabel('Time (sec)'),...
ylabel('Relative Temperature (deg F)')
% Fit a straight line to the transformed data.
p = polyfit(time,log10(temp),1);
m = p(1)
b = 10^p(2)
% Compute the time to reach 120 degrees.
t_120 = (log10(120-68)-log10(b))/m
% Show the derived curve and estimated point on semilog scales.
t = [0:10:4000];
T = 68+b*10.^(m*t);
subplot(2,2,3)
semilogy(t,T-68,time,temp,'o',t_120,120-68,'+'),
xlabel('Time (sec)'),...
ylabel('Relative Temperature (deg F)')
%
% Show the derived curve and estimated point on rectilinear scales.
subplot(2,2,4)
plot(t,T,time,temp+68,'o',t_120,120,'+'),xlabel('Time (sec)'),...
ylabel('Temperature (deg F)')
圖5.5–5 冷卻中的咖啡的溫度,對於不同類型的軸所畫出的圖形。
圖5.5–6 用來驗證托里切利原理(Torricelli’s principle)。
% Data for the problem.
cups = [6,9,12,15];
meas_times = [9,8,7,6];
meas_flow = 1./meas_times;
%
% Fit a straight line to the transformed data.
p =
polyfit(log10(cups),log10(meas_
flow),1);
coeffs = [p(1),10^p(2)];
m = coeffs(1)
b = coeffs(2)
%
% Plot the data and the fitted line on a loglog plot to see
% how well the line fits the data.
x = [6:0.01:40];
y = b*x.^m;
subplot(2,1,1)
loglog(x,y,cups,meas_flow,'o'),gr id,xlabel('Volume (cups)'),...
ylabel('Flow Rate
(cups/sec)'),axis([5 15 0.1 0.3])
% Plot the fill time curve extrapolated to 36 cups.
subplot(2,1,2)
plot(x,1./y,cups,meas_times,'o'), grid,xlabel('Volume(cups)'),...
ylabel('Fill Time per Cup (sec)'),axis([5 36 0 10])
%
% Compute the fill time for V = 36 cups.
V = 36;
f_36 = b*V^m
圖5.5–7 流率以及咖啡壺充滿一杯的時間。
以下僅供參考!!
p =
polyfit(x,y,n)
以n次多項式配適使用向量x以及y所 描述的資料,其中x是自變數。傳回 的列向量p具有長度n+1,所包含的 元素是多項式的係數,並且以降冪 排列。
polyfit 函數是根據最小平方法而來。其語法為
請參考課本第5-54頁,表 5.6–1。
圖5.6–3 使用一次到四次多項式做迴歸的圖形。
圖5.6–4 一個五次多項式通過所有六個資料點的例子,其中點和 點之間具有大的偏移量。
評估配適曲線品質的好壞:
我們標記 y 值到平均 y 之間的差異量的平方和為 S,
我們可以由下列公式計算
(yt – y )2
m
i1
S
此公式可以用來計算另一個此曲線配適的好壞程度的指標,
即是判定係數,又稱做 r平方值。其定義如下
(5.6–3)
J
r
2 1 S
S的值表示此資料對於平均的散佈情形,並且J 的值表
示此模型無法說明資料散佈情形的程度。因此 J / S是一個此模型無法說明的分數變化量的指標。
對於一個完美的配適, J 0 並且 r 2 1。因此 r 2越接 近1,則表示配適越好。而r 2最大為1。
J 的值可能會大於S,所以r
2可能會是負值。然而,若 是出現這種情況,表示這是一個很不好的模型並且不 應該使用。一個簡易的法則是,一個好的配適至少要能夠說明 99%的資料變化量。這個值對應到r 2 0.99。
圖5.6–5 係數正確度對於六次多項式的效果。上方的圖顯示了具 有14位小數正確度的效果。而下方的圖顯示了只有8位小數正確度 的效果。
更多相關資料請查詢課本第 5-58~5-59頁
1. 當 x 的值範圍太小的時候,可以將 x 的資料減去 x 最小的值或者平均值。
2. 當 x 的值範圍太大的時候,將 x 的值除以最大值或者 平均值。
更多相關資料請查詢課本第5-61~5-62頁
調整資料的比例
在計算係數時因為計算誤差所造成的影響可以藉由適當 地調整x值的比例來減輕。
你可以在使用polyfit之前調整你的資料的比例。常用 的調整比例方法為
圖5.6–6 使用兩個三次多項式來配適資料。
圖5.6–7 四種模型的殘差圖形。
更多相關資料請查詢課本第5-63~5-64頁
圖5.6–8 一階模型以及二階模型配適的比較。
更多相關資料請查詢課本第5-66~5-68頁
基本配適介面
MATLAB透過基本配適介面支援曲線配適。使用這個介面,
你可以在容易使用的環境之下很快地進行基本曲線配適任 務。此介面是特別設計以能夠讓你達成:
• 以三次樣條,或者使用多項式來配適資料,可以使用的多 項式高達10次。
• 對於同一組給定資料同時畫出許多配適圖形。
• 畫出殘差。
• 檢查配適的數值結果。
• 對配適進行內插以及外插。
• 使用數值配適的結果以及殘差的範數註解圖形。
• 將配適以及計算所得的結果儲存於MATLAB工作區之中。
圖5.7–1 基本配適介面。
圖5.7–2 由基本配適介面所產生的圖形。
更多相關資料請查詢課本第5-68~5-71頁
三維線條圖
三維空間中的線條可以用plot3函數畫出來。下列的對話 會產生一個三維的曲線,如圖5.8–1。
>>t = [0:pi/50:10*pi];
>>plot3(exp(-0.05*t).*sin(t),...
exp(-0.05*t).*cos(t),t),...
xlabel(’x’),ylabel(’y’),zlabel(’z’),grid
圖5.8–1 使用plot3函數所畫出的x e0.05t
sin t, y e
0.05tcos t, z t 的曲線。
更多相關資料請查詢課本第 5-71~5-72頁
表面圖
下列的對話顯示了如何產生函數z xe[(xy2)2y2]在區間2 x
2 ,以及2 y 2之內,且間隔距離為0.1的表面圖。此圖形顯 示在圖5.8–2中。
>>[X,Y] = meshgrid(-2:0.1:2);
>>Z = X.*exp(-((X-Y.^2).^2+Y.^2));
>>mesh(X,Y,Z),xlabel(’x’),ylabel(’y’),zlabel(’z’)
圖5.8–2 以mesh函數所建立的z xe[(xy2)2y2]的表面圖。
更多相關資料請查詢課本第5-72~5-73頁
等高線圖
下列的對話會產生顯示在圖5.8–2中的函數表面圖的等高 線圖;即是畫出函數z xe[(xy2)2y2]在區間2 x 2 , 以及2 y 2之內且間隔距離為0.1的等高線圖。此圖形 顯示在圖5.8–3中。
>>[X,Y] = meshgrid(-2:0.1:2);
>>Z = X.*exp(-((X- Y.^2).^2+Y.^2));
>>contour(X,Y,Z),xlabel(’x’),ylabel(’y’)
圖5.8–3 由contour函數所建立, z xe[(xy2)2y2] 表面之等高線 圖。
更多相關資料請查詢課本第5-74頁
函數
contour(x,y,z) mesh(x,y,z) meshc(x,y,z) meshz(x,y,z) surf(x,y,z) surfc(x,y,z)
[X,Y] = meshgrid(x,y) [X,Y] = meshgrid(x) waterfall(x,y,z)
敘述
建立等高線圖。
建立三維網狀表面圖。
與mesh指令相同,但是在表面圖底下畫出等高線圖。
與mesh指令相同,但是在表面圖底下畫出鉛直參考線。
建立有深淺不同色調的三維網狀表面圖。
與surf指令相同,但是在表面圖底下畫出等高線圖。
根據向量 x 與 y 建立矩陣X以及Y定義出直角格子。
與[X,Y] = meshgrid(x,x)指令相同。
與mesh指令相同,但是往同一個方向畫出網狀線。
表 5.8–1 三維圖形函數
圖5.8–4 z xe(x2y2)的表面圖,分別以mesh函數以及其變形的形 式畫出:meshc、meshz,以及waterfall。a) mesh、b)
meshc
、c) meshz以及d) waterfall。下列的投影片包含課本中本章節的圖片以 及習題問題。
圖 P27
圖 P28