?? ch9_3_2.htm
字號:
<! Made by Html Translation Ver 1.0>
<HTML>
<HEAD>
<TITLE> 差分函數 </TITLE>
</HEAD>
<BODY BACKGROUND="bg0000.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img/bg0000.gif">
<FONT COLOR="#0000FF">
<H1>9.3.2 差分函數</H1>
</FONT>
<HR>
<P>
上述提及的后向差分式<IMG SRC="img00019-2.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img9/img00019.gif">,在<FONT FACE="Times New Roman">
MATLAB </FONT>有對應的<FONT COLOR=#FF0000 FACE="Times New Roman">diff</FONT><FONT FACE="Times New Roman">
</FONT>函數來計算二相臨點的差值,
它的語法為<FONT FACE="Times New Roman">
</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">diff(x)</FONT>,其中<FONT FACE="Times New Roman">
</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">x</FONT>代表一組離散點<FONT FACE="Times New Roman">
<IMG SRC="img00020-2.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img9/img00020.gif"></FONT>。假設有<I><FONT FACE="Times New Roman">x</FONT></I><FONT FACE="Times New Roman">,
<I>y</I>(<I>x</I>)</FONT>的數據為
<P>
<I>x</I>=[1 3 5 7 9], <I>y</I>=[1 4 9 16 25]
<P>
則<FONT FACE="Times New Roman"> </FONT><FONT COLOR=#FF0000 FACE="Times New Roman">diff(x)=[2 2 2 2]</FONT><TT><FONT FACE="Courier New">, </FONT></TT><FONT COLOR=#FF0000 FACE="Times New Roman">diff(y)=[3 5 7 9]</FONT>,注意二者皆以后向差分計算且數據點只剩<FONT FACE="Times New Roman"> 4 </FONT>個而不是<FONT FACE="Times New Roman">5</FONT>個。而<IMG SRC="img00021-2.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img9/img00021.gif">的
數值微分則為<FONT FACE="Times New Roman">
</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">dy=diff(y)./diff(x)</FONT>。
<BR>
<P>
因此要計算下列多項式在<FONT FACE="Times New Roman"> [-4, 5] </FONT>區間的微分
<P>
<IMG SRC="img00022-1.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img9/img00022.gif">
<P>
可依以下方式求解
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> x=linspace(-4,5);
% </FONT><FONT COLOR=#FF0000>產生</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">100</FONT><FONT COLOR=#FF0000>個</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">x</FONT><FONT COLOR=#FF0000>的離散點</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> p=[1 -3 -11
27 10 -24];</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> f=polyval(p,x);</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> plot(x,f)
% </FONT><FONT COLOR=#FF0000>將多項式函數繪圖</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> title('Fifth-deg.
equation')</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> dfb=diff(f)./diff(x);
% </FONT><FONT COLOR=#FF0000>注意要分別計算</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">diff(f)</FONT><FONT COLOR=#FF0000>和</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">diff(x)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> xd=x(2:length(x));
% </FONT><FONT COLOR=#FF0000>注意只有</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">99</FONT><FONT COLOR=#FF0000>個</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">df</FONT><FONT COLOR=#FF0000>值,而且是對應</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">x2,x3,...,x100</FONT><FONT COLOR=#FF0000>的點</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> plot(xd,dfb
) % </FONT><FONT COLOR=#FF0000>將多項式的微分項繪圖</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> title('Derivative
of fifth-deg. equation')<BR>
</FONT>
<P>
假設我們要找出上述多項式的局部極值<FONT FACE="Times New Roman">(local critical value)</FONT>,可以利用局部極值所在點的微分為零,所以在
這個點的左側及右側的二點微分值一定是一正一負,因此這二點的微分值相乘為負值,可針對此性質找
出局部極值所在點。以原多項式的數據示范如下:
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> product=dfb(1:length(dfb)-1).*dfb(2:length(dfb));
% </FONT><FONT COLOR=#FF0000>注意二相臨點值相乘的寫法</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> crit=xd(find(product<0))
% </FONT><FONT COLOR=#FF0000>注意用到</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">find</FONT><FONT COLOR=#FF0000>指令
<BR>
</FONT>
<P>
若上述多項式以中央差分方式計算其函數微分項,就不能以<FONT COLOR=#FF0000 FACE="Times New Roman">diff</FONT>計算,而須自行計算如下:
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> num=f(3:length(f))-f(1:length(f)-2);
% </FONT><FONT COLOR=#FF0000>注意中央差分是</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">
f(k+1)-f(k-1)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> deno=x(3:length(f))-x(1:length(f)-2);
% </FONT><FONT COLOR=#FF0000>注意中央差分是</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">
x(k+1)-x(k-1)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> df_c=num./deno;</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> xd=x(2:length(x)-1);
% xd</FONT><FONT COLOR=#FF0000>的點數只有</FONT><FONT COLOR=#FF0000 FACE="Times New Roman">98</FONT><FONT COLOR=#FF0000>個</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> plot(xd,df_c)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> title('Derivative
of fifth-deg. polynomial')<BR>
</FONT>
<P>
以下的例子是針對數據組為離散型態,要注意的是原數據所代表的函數分布并無明顯的折角,但是它的
一階微分經數值微分計算后的微分函數分布卻有極大的曲折變化。
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> x=0:0.1:1;</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> y=[-.447 1.978
3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2];</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> plot(x,y,'o',x,y)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> title('y(x)
data plot')</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> ylabel('y(x)'),
xlabel('x')</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> dy=diff(y)./diff(x);</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> xd=x(1:length(x)-1);</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> plot(xd,dy)</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> title('Approximate
derivative using diff')</FONT>
<P>
<FONT COLOR=#FF0000 FACE="Times New Roman">>> ylabel('dy/dx'),
xlabel('x')<BR>
</FONT><HR>
<A HREF="ch9_3_1.htm" tppabs="http://166.111.167.223/computer/cai/matlabjc/ch9_3_1.htm"><IMG SRC="lastpage.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img/lastpage.gif" BORDER=0></A>
<A HREF="ch10.htm" tppabs="http://166.111.167.223/computer/cai/matlabjc/ch10.htm"><IMG SRC="nextpage-1.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img/nextpage.gif" BORDER=0 HSPACE=10></A>
<A HREF="index.html" tppabs="http://166.111.167.223/computer/cai/matlabjc/index.html"><IMG SRC="outline-1.gif" tppabs="http://166.111.167.223/computer/cai/matlabjc/img/outline.gif" BORDER=0 HSPACE=6></A><BR>
<FONT SIZE=2 COLOR=#AA55FF> 上一頁 下一頁 講義大綱 </FONT>
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -