• 沒有找到結果。

動態溫度temperature dynamics

在文檔中 畫出正確圖形的必備條件 (頁 79-112)

% 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

i1

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 e0.05t

sin t, y e

0.05t

cos t, z t 的曲線。

更多相關資料請查詢課本第 5-71~5-72頁

表面圖

下列的對話顯示了如何產生函數z xe[(xy2)2y2]在區間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[(xy2)2y2]的表面圖。

更多相關資料請查詢課本第5-72~5-73頁

等高線圖

下列的對話會產生顯示在圖5.8–2中的函數表面圖的等高 線圖;即是畫出函數z xe[(xy2)2y2]在區間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[(xy2)2y2] 表面之等高線 圖。

更多相關資料請查詢課本第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(x2y2)的表面圖,分別以mesh函數以及其變形的形 式畫出:meshc、meshz,以及waterfall。a) mesh、b)

meshc

、c) meshz以及d) waterfall。

下列的投影片包含課本中本章節的圖片以 及習題問題。

圖 P27

圖 P28

在文檔中 畫出正確圖形的必備條件 (頁 79-112)

相關文件