138
Puff! The magic dragon, Live by the sea…. 第5第 繪繪繪繪繪繪繪 plotting & model building

Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Embed Size (px)

Citation preview

Page 1: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

第 5章 繪圖及模型建構plotting & model building

Page 2: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

• 圖比表好• 表比文字好

Page 3: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

xy plotting functions

• y=f(x)• abscissa ~ x (independent variable)• ordinate ~ y (dependent variable)• Scale 刻度• tick mark 刻度標示• axis label 軸稱 or axial title• data symbol or point marker• Legend ~ 說明

Page 4: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

• line ~ for theoretical calculation data

• data symbol ~ for experimental data

Page 5: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 6: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Requirements of correct plot

• P.243-244

• Read it NOW!

Page 7: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Plot, Label & Title commands

x=[0:.1:52];

y=.4*sqrt(1.8*x);

plot(x,y),xlabel(' 距離 ( 英里 )'),ylabel(' 距離 ( 英里 )'),...

title(' 火箭高度相對於飛行方向的距離函數 ')

grid on, axis([0 52 0 5])

Copy figure

Paste it in the word file

Page 8: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 9: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 10: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Plot of complex numbers

• plot(y)=plot(real(y),imag(y)) %if y is complex

z=.1+.9i;

n=[0:0.01:10];

plot(z.^n),xlabel('real part'),ylabel('imaginary part')

Page 11: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

實 部

虛部

Page 12: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 13: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The function plot command fplot

• fplot(‘string’,[xmin xmax])

• fplot(‘string’,[xmin xmax ymin ymax])

f='cos(tan(x))-tan(sin(x))';

fplot(f,[1 2])

Page 14: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 15: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x=[1:.01:2];

y=cos(tan(x))-tan(sin(x));

plot(x,y)

Page 16: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 17: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 18: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Plotting polynomials• x=[-6:0.01:6];• p=[3,2,-100,2,-7,90];• plot(x,polyval(p,x)),xlabel('x'),ylabel('p')

-6 -4 -2 0 2 4 6-3000

-2000

-1000

0

1000

2000

3000

4000

5000

x

p

Page 19: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Self testing

• pp.250-251

• Write down the program now!

Page 20: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Subplot 子圖subplot(m,n,p) % 將視窗分成 m 列 n 行的陣列平面 第 p 平面

x=[0:.01:5];y=exp(-1.2*x).*sin(10*x+5);subplot(1,2,1)plot(x,y),xlabel('x1'),ylabel('y1'),axis([0 5 -1 1])x=[-6:.01:6];y=abs(x.^3-100);subplot(1,2,2)plot(x,y),xlabel('x2'),ylabel('y2'),axis([-6 6 0 350])

Page 21: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 1 2 3 4 5-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

x1

y1

-5 0 50

50

100

150

200

250

300

350

x2

y2

Page 22: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

overlay plot 層疊圖• P.253

• A ~ m 列 *n 行• plot(A) % n 條曲線 (A 的行向量對其索引的圖 )

• plot(x,A) % A 矩陣對 x 向量作圖• plot(A,x) % x 向量對 A 矩陣作圖 (m 條曲線 )

• plot(A,B) % B 矩陣的行對 A 矩陣的行作圖

Page 23: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

a=[1 2 3;6 5 4;1 5 3]

a =

1 2 3 6 5 4 1 5 3

?plot(a)

1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 31

1.5

2

2.5

3

3.5

4

4.5

5

5.5

6

plot(A) % n條曲線 (A的行向量對其索引的圖 )

Page 24: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x =

10 20 30 40

?a

a =

1 2 3 6 5 4 1 5 3 8 8 8

?plot(x,a)

10 15 20 25 30 35 401

2

3

4

5

6

7

8

•plot(x,A) % A矩陣對 x向量作圖

Page 25: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x =

10 20 30 40

?a

a =

1 2 3 6 5 4 1 5 3 8 8 8

?plot(a,x)

1 2 3 4 5 6 7 810

15

20

25

30

35

40

plot(A,x) % x向量對 A矩陣作圖 (m條曲線 )

Page 26: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

a =

1 2 3 6 5 4 1 5 3 8 8 8

?b

b =

1 2 3 2 4 6 3 6 9 4 8 12

?plot(a,b)1 2 3 4 5 6 7 8

0

2

4

6

8

10

12

Page 27: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Data markers and line types

Page 28: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Data markers and line types

• plot(x,y,’o’)

• plot(x,y,x,y,’o’)

Page 29: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

plot(x,y,’o’) plot(x,y,x,y,’o’)

Page 30: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

plot(x,y,’ *’,x,y,’:’)

Page 31: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Labeling curves and data

x=[0:.01:2];

y=sinh(x);

z=tanh(x);

plot(x,y,x,z,'--'),xlabel('x'), ...

ylabel('Hyperbolic Sine and Tangent'), ...

legend('sinh(x)','tanh(x)')

Page 32: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.5

1

1.5

2

2.5

3

3.5

4

x

Hyp

erbo

lic S

ine

and

Tang

ent

sinh(x)tanh(x)

Page 33: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Legend 的移動• plot 圖出來後 利用滑鼠左鍵移動之

• 格線 (grid line) 造成 legend 不明顯在圖畫好 列印前 加入axes(legend(‘string1’,‘string2’)) % 框與軸線設定一致

refresh % 強迫圖形重新繪出

Page 34: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x=[0:.01:1];y=tan(x);z=sec(x);plot(x,y,x,z),xlabel('x'), ... ylabel('Tangent and Secant'),gtext('tan(x)'), ... text(.3,1.2,'sec(x)')

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

x

Tang

ent

and

Sec

ant

tan(x)

sec(x)

Page 35: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 36: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x=[-30:.01:30]; % 求解 x=tan(x)y=tan(x);z=6*x;

plot(x,y,x,z),xlabel('x'), ... ylabel('6x=tan(x) '), axis([-5 5 -100 100])[x,y]=ginput(5)

Page 37: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Graphical solution of equations圖解法求解方程式

• Example 5.2-1 load line analysis of a circuit

Page 38: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

30

15

30

1

)2(0

)1()1(*16.0currentload

30load

15y powersuppl

2

1

12

11

2111

12.01

1

1

2

v

R

vv

Ri

vRiv

ei

ΩR

Vv

v

Page 39: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 2 4 6 8 10 12 14 16 18 200

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

v2(Volts)

i 1(Am

pere

)

load line

current

v_2=[0:.01:20];i_11=.16*(exp(.12*v_2)-1);i_12=-1/30*v_2+.5;plot(v_2,i_11,v_2,i_12), grid,xlabel('v_2(Volts)'),... ylabel('i_1(Ampere)'),axis([0 20 0 1]),... gtext('load line'),gtext('current')

30

15

30

1

)2(0

)1()1(*16.0currentload

30load

15y powersuppl

2

1

12

11

2111

12.01

1

1

2

v

R

vv

Ri

vRiv

ei

ΩR

Vv

v

Page 40: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The answer:i1=0.25 Ampere, v2=7.5V

Page 41: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

axis([7 8 .2 .3])% room-in view

7 7.1 7.2 7.3 7.4 7.5 7.6 7.7 7.8 7.9 80.2

0.21

0.22

0.23

0.24

0.25

0.26

0.27

0.28

0.29

v2(Volts)

i 1(Am

pere

)

load line

current

Page 42: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The hold command

• 2 plot commandsp.258-259x=[-1:.01:1];y1=3+exp(-x).*sin(6*x);y2=4+exp(-x).*cos(6*x);plot((.1+.9i).^[0:.01:10]),hold,plot(y1,y2),... gtext('y2 VS y1'),gtext('Imag(z) VS Real(z)')

gtext 最好在都 plot 完之後再執行 , 以免亂掉

Page 43: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

-1 0 1 2 3 4 5 6-1

0

1

2

3

4

5

6

7

y2 VS y1

Imag(z) VS Real(z)

Page 44: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 45: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 46: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Annotating plots 繪圖註解• Using TEX

Page 47: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Note for improving plots

• p.262-263

Page 48: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Special plot types

• Logarithmic plots

• Frequency response plots and filter circuits

• Controlling tick-mark spacing and labels

• Stem, stairs, and bar plots

• Separate Y axes

• Polar plots

Page 49: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

222

222

1.0)1(

02.0)01.01(100

xx

xxy

Page 50: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

•Logarithmic plots

222

222

1.0)1(

02.0)01.01(100

xx

xxy

Page 51: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 52: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Note for using logarithmic scale

• P.264

• loglog(x,y)

• semilogx(x,y)

• semilogy(x,y)

Page 53: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 54: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

1

1

v.s./plot...

)sin(sin

RCsA

A

AAfrf

tAvtAv

i

o

io

ooii

RC=0.1;s=[1:100]*i;M=abs(1./(RC*s+1));loglog(imag(s),M),grid,xlabel('frequency(rad/sec)'),... ylabel('output/input'),... title('lowpass RC circuit frequency response(RC=0.1sec)')

Page 55: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

100

101

102

10-1

100

frequency(rad/sec)

outp

ut/in

put

lowpass RC circuit frequency response(RC=0.1sec)

Page 56: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 57: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Controlling tick-mark spacing and labels

• help set

• help axes

• set(gca,'XTick',[xmin:dx:xmax],'YTick',[ymin:dy:ymax])

Page 58: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

x

y

x=[0:.01:2];y=.25*x.^2;plot(x,y),set(gca,'XTick',[0:.2:2],'YTick',[0:.1:1]),... xlabel('x'),ylabel('y')

Page 59: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x=[1:6];y=[13,5,7,14,10,12];plot(x,y,'o',x,y),...set(gca,'XTicklabel',['11'; '22'; '33'; '44'; '55'; '66']),... set(gca,'XTick',[1:6]),axis([1 6 0 15]),xlabel(' 月份 '),...

ylabel('1997qwyteuwdrjhewfhwekjhfwje23435435')

Page 60: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

11 22 33 44 55 660

5

10

15

月 份

1997

qwyt

euw

drjh

ewfh

wek

jhfw

je23

4354

35

Page 61: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 62: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Stem, stairs, and bar plots

• stem(x,y)

• stairs(x,y)

• bar(x,y)

• See also table 5.3-1

Page 63: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 64: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Separate Y axes

• plotyy(x1,y1,x2,y2) % 產生左右兩條 Y 軸 左 y1 v.s. x1; 右 y2 v.s. x2

• plotyy(x1,y1,x2,y2,’type1’,’type2’)

• plotyy(x1,y1,x2,y2,’plot’,’stem’)%

左 y1 v.s. x1 plot

右 y2 v.s. x2 stem 樹狀圖

Page 65: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

10

20

1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 60

10

20x=[1:6];y1=2*x;y2=3*x;plotyy(x,y1,x,y2,'plot','stem')

Page 66: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Polar plot

orbit eccentricity = 0.5

1

2

3

4

30

210

60

240

90

270

120

300

150

330

180 0

theta=[0:pi/90:2*pi];r=2./(1-0.5*cos(theta));polar(theta,r),title('orbit eccentricity = 0.5')

Page 67: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Self test p.271

Page 68: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 69: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The plot editor

Page 70: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 71: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 72: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 73: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

5.5 Function discovery

1. Linear function

2. Power function

3. Exponential function

• Experimental data

mxmx

m

bbexy

bxxy

bmxxy

)10(or ,)(

)(

)(

Page 74: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Step of function discovery

• P.277

Page 75: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 76: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 77: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Applications

Page 78: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 79: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 80: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

deflection=[0,.09,.18,.28,.37,.46,.55,.65,.74];force=[0:100:800];%plot with linear scalesubplot(2,1,1)plot(force,deflection,'o'),... xlabel('force(lb)'),ylabel('deflection(in)'),... axis([0 800 0 .8])%curve fitting with a linep=polyfit(force,deflection,1);k=1/p(1)%plot the fitted linef=[0:2:800];x=f/k;subplot(2,1,2)plot(f,x,force,deflection,'o'),... xlabel('force(lb)'),ylabel('deflection(in)'),... axis([0 800 0 .8])

Page 81: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 100 200 300 400 500 600 700 8000

0.2

0.4

0.6

0.8

force(lb)

defle

ctio

n(in

)

0 100 200 300 400 500 600 700 8000

0.2

0.4

0.6

0.8

force(lb)

defle

ctio

n(in

)

Page 82: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 83: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Heat transferpredict when will T(F) achieve 120F?

t(sec) T(F)

0 145

620 130

2266 103

3482 90

120t=?

Page 84: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

model

• Linear model: T-68=mt+b

• Exponential model: T-68=b(10)mt

Page 85: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

%input datatime=[0,620,2266,3482];temp=[145,130,103,90];%substract room temp.temp=temp-68;% use linear scalesubplot(2,2,1)plot(time,temp,time,temp,'o'),...xlabel('Time(sec)'),ylabel('temperature(F)')%use exponential plotsubplot(2,2,2)semilogy(time,temp,time,temp,'o'),...xlabel('Time(sec)'),ylabel('temperature(F)')

Page 86: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

%use linear fittingp=polyfit(time,log10(temp),1);m=p(1)b=10^p(2)%calculate the time needed to 120Ft_120=(log10(120-68)-log10(b))/m%estimation 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('temp(F)')%plot fitted linesubplot(2,2,4)plot(t,T,time,temp+68,'o',t_120,120,'+'),... xlabel('time(sec)'),ylabel('temp(F)')

Page 87: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 1000 2000 3000 400020

40

60

80

Time(sec)

tem

pera

ture

(F)

0 1000 2000 3000 400010

1

102

Time(sec)

tem

pera

ture

(F)

0 1000 2000 3000 400010

1

102

time(sec)

tem

p(F

)

0 1000 2000 3000 400080

100

120

140

160

time(sec)

tem

p(F

)

Page 88: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 89: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Interpolation and extrapolation

• Are the interpolation or extrapolation correct?

• Are they still in the feasible region of the model?

• e.g. elastic ring, the linear elasticity is applicable in the regions of small deformation, not for large deformation.

Page 90: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Hydraulic engineering

• Fluid mechanics• Fluid engineering….

volumeV

pressurep

rate flow

f

Vrf

pcf

Page 91: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

V( 杯 )

倒滿一杯需時 t(sec)

15 612 79 86 9

Page 92: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

• % problem description• cups=[6,9,12,15];• meas_times=[9,8,7,6];• meas_flow=1./meas_times;• %line fitting• p=polyfit(log10(cups),log10(meas_flow),1);• coeffs=[p(1),10^p(2)];• m=coeffs(1)• b=coeffs(2)• %log-log plot as well as linear plot• x=[6:.01:40];• y=b*x.^m;• subplot(2,1,1)• loglog(x,y,cups,meas_flow,'o'),grid,...• xlabel('V(cups)'),ylabel('1 cup full time(sec)'),...• axis([5 15 .1 .3])• % plot and predict 36 cups• subplot(2,1,2)• plot(x,1./y,cups,meas_times,'o'),grid,...• axis([5 36 0 10])• %calculate V=36 cups' fill time (sec)• V=36• f_36=b*V^m

Page 93: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

101

10-1

V(cups)

1 cu

p fu

ll tim

e(se

c)

5 10 15 20 25 30 350

2

4

6

8

10

4.2sec

Page 94: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 95: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

5.6 Regression

• Correlation analysis

• Regression

Page 96: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The least squares method

• Find a line (y=mx+b), such that, the sum of the square errors between the point and line is min.

Page 97: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 98: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

n

ii

n

iii

n

ii

n

ii

n

ii

n

iii

ybyxaxabynbxa

ybaxJ

1111

22

1

22

1

2

222

)(

0,0

b

J

a

J

n

ii

n

ii

n

iii

n

ii

n

ii

ynbax

yxbxax

11

111

2

)(

)()(

Find a,b

Such that J is min.

Page 99: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x=[1:9];y=[5,6,10,20,28,33,34,36,42];xp=[1:.01:9];for k=1:4 coeff=polyfit(x,y,k) yp(k,:)=polyval(coeff,xp); J(k)=sum((polyval(coeff,x)-y).^2);endsubplot(2,2,1)plot(xp,yp(1,:),x,y,'o'),axis([0 10 0 50])subplot(2,2,2)plot(xp,yp(2,:),x,y,'o'),axis([0 10 0 50])subplot(2,2,3)plot(xp,yp(3,:),x,y,'o'),axis([0 10 0 50])subplot(2,2,4)plot(xp,yp(4,:),x,y,'o'),axis([0 10 0 50])disp(J)

Page 100: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 5 100

10

20

30

40

50

0 5 100

10

20

30

40

50

0 5 100

10

20

30

40

50

0 5 100

10

20

30

40

50

J = 71.5389 56.6727 41.8838 4.6566S= 1562 1562 1562 1562r^2= .9542 .9637 .9732 .9970

Page 101: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 102: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 103: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 104: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Self testing p.292

Page 105: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Fitting other functions

• y=bxm

p=polyfit(log10(x),log10(y),1)

p(1)=m, p(2)=log10b

y=b(10)mx

p=polyfit(x,log10(y),1)

P(1)=m, p(2)= log10b

Page 106: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 107: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

The quality of a curve fit

• Coefficient of determination r^2

fitting goodfor %99r

fitting good,1~,1

1

][

])([

2

2

2

1

2

1

2

rJ

S

Jr

yyS

yxfJ

m

ii

m

iii

Page 108: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Regression and numerical accuracy

使用高階多項式的兩個危險處(1) 高階多項式在數據點間會有很大的繞行(2) 使用高階多項式其係數需要較大的精確度表現 (format long, or format long e)

e.g. fitting for the data in p.295

Page 109: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 .1

2 1.884

4 2.732

6 3.388

8 3.346

10 3

12 2.644

14 2.022

16 1.65

18 1.5838

20 1.35

22 1.0082

24 .718

26 .689

28 .4308

30 .203

32 .1652

34 -.073

36 -.002

38 -.1122

40 .106

x y

05773943.0

20369642.115178007.0

107777.7109209.1

101.20

2170577394277.0

07742036964239.171531517800652.0

1067777099161.710920896532.1

1009690135.21033551.6

2

3344

566

2

3344

5669

xx

xx

xxy

xx

xx

xxy

Page 110: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

x1=[0:2:40];y1=[.1,1.884,2.732,3.388,3.346,3,2.644,2.022,1.65,1.5838,1.35,1.0082,.718,.689,.4308,.203,.1652,-.073,-.002,-.1122,.106];[p, s]=polyfit(x1,y1,6);format longx=[0:.1:40];y = polyval(p,x);subplot(2,1,1)plot(x,y,x1,y1,'o')subplot(2,1,2)p2=round(p.*10^8)/10^8;y2 = polyval(p2,x);plot(x,y2,x1,y1,'o')pp2

Page 111: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

0 5 10 15 20 25 30 35 40-1

0

1

2

3

4

0 5 10 15 20 25 30 35 40-15

-10

-5

0

5

Page 112: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 113: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

p.297

• 不用高次式曲線擬合• 使用兩個三次式 ~ [0, 15]; (15, 40]

• 可以將小數為數縮減成 8 位 不失其精度 !

Page 114: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

•Give some criticism on the following figure!

Page 115: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Scaling the data

• x’=x-xmin or x’=x-xmean

• x’=x/xmean or x’=x/xmax

Page 116: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Year=[1990:1999];Veh_Flow=[2.1,3.4,4.5,5.3,6.2,6.6,6.8,7,7.4,7.8];p=polyfit(Year,Veh_Flow,3)

Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 2.791805e-019.> In c:\matlab\toolbox\matlab\polyfun\polyfit.m at line 48p = 1.0e+007 * 0.0000 0.0000 0.0104 -6.9010

year 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999

車流量million 2.1 3.4 4.5 5.3 6.2 6.6 6.8 7 7.4 7.8

Page 117: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Year=[1990:1999];Veh_Flow=[2.1,3.4,4.5,5.3,6.2,6.6,6.8,7,7.4,7.8];x=Year-1990;p=polyfit(x,Veh_Flow,3)J=sum((polyval(p,x)-Veh_Flow).^2);S=sum((Veh_Flow-mean(Veh_Flow)).^2);r2=1-J/Sp = 0.0087 -0.1851 1.5991 2.0362r2 = 0.9972

year 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999

車流量million 2.1 3.4 4.5 5.3 6.2 6.6 6.8 7 7.4 7.8

Page 118: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

2000 yield

polyval(p,10)ans = 8.1767 million cars

year 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999

車流量million 2.1 3.4 4.5 5.3 6.2 6.6 6.8 7 7.4 7.8

Page 119: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Using residuals

• P.300 example!% time datax=[0:19];% contamination datay=[6,13,23,33,54,83,118,156,210,282,...350,440,557,685,815,990,1170,1350,1575

,1830];

%linear fittingp1=polyfit(x,y,1);% quadratic fittingp2=polyfit(x,y,2);% cubic fittingp3=polyfit(x,y,3);

% exponential fittingp4=polyfit(x,log10(y),1);% residualres1=polyval(p1,x)-y;res2=polyval(p2,x)-y;res3=polyval(p3,x)-y;res4=10.^polyval(p4,x)-y;

Page 120: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Plot the residual

Page 121: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Linear model (0,0)

m

iii

m

ii

m

iii

yxxa

aJ

yxaJ

xay

11

21

1

1

21

1

have we

0/let

)(

Page 122: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Quadratic model (0,0)

m

iii

m

ii

m

ii

m

iii

m

ii

m

ii

m

iiii

yxxaxa

yxxaxa

aJaJ

yxaxaJ

axaxay

11

22

1

31

1

2

1

32

1

41

21

1

22

21

322

1

have we

0/0/let

)(

Page 123: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Not pass (0,0)

001

0022

01

)(

)()(

yxxay

yxxaxxay

Page 124: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Multiple linear regression

• y=a0+a1x1+a2x2

• Data (y, x1, x2)

n

nn

y

y

y

y

xx

xx

xx

xx

a

a

a

...

1

...

1

1

1

3

2

1

21

2313

2212

2111

2

1

0

y

Xa

yXa

Page 125: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Example 5.6-3

x1=[0:3]';x2=[5,7,8,11]';y=[7.1,19.2,31,45]';X=[ones(size(x1)) x1 x2];a=X\yyp=X*a;Max_percent_error=100*max(abs((yp-y)./y))a = 0.8000 10.2429 1.2143Max_percent_error = 3.2193

y=0.8+10.2429x1+1.2143x2

Page 126: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Linear-in-the-parameters regression

• P.305 example

• Self testing

Page 127: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 128: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

5.7 the basic fitting interface

• P.306

Page 129: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 130: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 131: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

5.8 3-D Plots

• 3-d line plots

• Surface mesh plot

• Contour plots

Page 132: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

t=[0:pi/50:10*pi];plot3(exp(-.05*t).*sin(t),exp(-.05*t).*cos(t),t),... xlabel('x'),ylabel('y',zlabel('z'),grid)

-1-0.5

00.5

1

-1

-0.5

0

0.5

10

10

20

30

40

x

z

tz

tey

text

t

cos

sin05.0

05.0

Page 133: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 134: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

[X,Y]=meshgrid(-2:.1:2);Z=X.*exp(-((X-Y.^2).^2+Y.^2));mesh(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z')

])[( 222 yyxxez

Page 135: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

[X,Y]=meshgrid(-2:.1:2);Z=X.*exp(-((X-Y.^2).^2+Y.^2));contour(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z')

-2 -1.5 -1 -0.5 0 0.5 1 1.5 2-2

-1.5

-1

-0.5

0

0.5

1

1.5

2

x

y

])[( 222 yyxxez

Page 136: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 137: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….

Page 138: Puff! The magic dragon, Live by the sea…. 第 5 章 繪圖及模型建構 plotting & model building

Puff! The magic dragon,Live by the sea….