⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch9_3_2.htm

📁 MATLAB详细应用手册。包括基本功能、工具箱、函数编写。
💻 HTM
字号:
<! Made by Html Translation Ver 1.0>
<html>

<head>
<title> 差分函数 </title>
</head>

<body BACKGROUND="../img1/bg0000.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img/bg0000.gif">
<script language="JAVASCRIPT">
<!--
if (navigator.onLine){
document.write("<!-- Spidersoft WebZIP Ad Banner Insert -->");
document.write("<TABLE width=100% border=0 cellpadding=0 cellspacing=0>");
document.write("<TR>");
document.write("<TD>");
document.write("<ILAYER id=ad1 visibility=hidden height=60></ILAYER>");
document.write("<NOLAYER>");
document.write("<IFRAME SRC='http://www.spidersoft.com/ads/bwz468_60.htm' width=100% height=60 marginwidth=0 marginheight=0 hspace=0 vspace=0 frameborder=0 scrolling=no></IFRAME>");
document.write("</NOLAYER>");
document.write("</TD>");
document.write("</TR>");
document.write("</TABLE>");
document.write("<!-- End of Spidersoft WebZIP Ad Banner Insert-->");
}
 //-->
</script>
<!-- Spidersoft WebZIP Ad Banner Insert -->
<!-- End of Spidersoft WebZIP Ad Banner Insert-->
<font COLOR="#0000FF">

<h1>9.3.2 差分函数</h1>
</font>

<hr>

<p>上述提及的后向差分式<img SRC="../img9/img00019.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img9/img00019.gif" WIDTH="142" HEIGHT="24">,在 <font FACE="Times New Roman">MATLAB </font>有对应的<font COLOR="#FF0000" FACE="Times New Roman">diff</font><font FACE="Times New Roman"> </font>函数来计算二相临点的差值, 
它的语法为 <font COLOR="#FF0000" FACE="Times New Roman">diff(x)</font>,其中 <font COLOR="#FF0000" FACE="Times New Roman">x</font>代表一组离散点 <img SRC="../img9/img00020.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img9/img00020.gif" WIDTH="98" HEIGHT="24">。假设有<font FACE="Times New Roman"><i>x</i>, <i>y</i>(<i>x</i>)</font>的数据为 </p>

<p><i>x</i>=[1 3 5 7 9], <i>y</i>=[1 4 9 16 25] </p>

<p>则 <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="../img9/img00021.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img9/img00021.gif" WIDTH="52" HEIGHT="45">的 
数值微分则为 <font COLOR="#FF0000" FACE="Times New Roman">dy=diff(y)./diff(x)</font>。 
<br>
</p>

<p>因此要计算下列多项式在 <font FACE="Times New Roman">[-4, 5] </font>区间的微分 
</p>

<p><img SRC="../img9/img00022.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img9/img00022.gif" WIDTH="278" HEIGHT="26"> </p>

<p>可依以下方式求解 </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; p=[1 -3 -11 27 10 -24];</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; f=polyval(p,x);</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; plot(x,f) % </font><font COLOR="#FF0000">将多项式函数绘图</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; title('Fifth-deg. equation')</font> 
</p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; plot(xd,dfb ) % </font><font COLOR="#FF0000">将多项式的微分项绘图</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; title('Derivative of fifth-deg. 
equation')<br>
</font></p>

<p>假设我们要找出上述多项式的局部极值<font FACE="Times New Roman">(local 
critical value)</font>,可以利用局部极值所在点的微分为零,所以在 
这个点的左侧及右侧的二点微分值一定是一正一负,因此这二点的微分值相乘为负值,可针对此性质找 
出局部极值所在点。以原多项式的数据示范如下: </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 
product=dfb(1:length(dfb)-1).*dfb(2:length(dfb)); % </font><font COLOR="#FF0000">注意二相临点值相乘的写法</font> 
</p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; crit=xd(find(product&lt;0)) % </font><font COLOR="#FF0000">注意用到</font><font COLOR="#FF0000" FACE="Times New Roman">find</font><font COLOR="#FF0000">指令 <br>
</font></p>

<p>若上述多项式以中央差分方式计算其函数微分项,就不能以<font COLOR="#FF0000" FACE="Times New Roman">diff</font>计算,而须自行计算如下: </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 
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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 
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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; df_c=num./deno;</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; 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>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; plot(xd,df_c)</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; title('Derivative of fifth-deg. 
polynomial')<br>
</font></p>

<p>以下的例子是针对数据组为离散型态,要注意的是原数据所代表的函数分布并无明显的折角,但是它的 
一阶微分经数值微分计算后的微分函数分布却有极大的曲折变化。 </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; x=0:0.1:1;</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; y=[-.447 1.978 3.28 6.16 7.08 
7.34 7.66 9.56 9.48 9.30 11.2];</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; plot(x,y,'o',x,y)</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; title('y(x) data plot')</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; ylabel('y(x)'), xlabel('x')</font> 
</p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; dy=diff(y)./diff(x);</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; xd=x(1:length(x)-1);</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; plot(xd,dy)</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; title('Approximate derivative 
using diff')</font> </p>

<p><font COLOR="#FF0000" FACE="Times New Roman">&gt;&gt; ylabel('dy/dx'), xlabel('x')<br>
</font></p>

<hr>
<a HREF="ch9_3_1.htm" tppabs="http://webclass.ncu.edu.tw/~junwu/ch9_3_1.htm">

<p><img SRC="../img1/lastpage.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img/lastpage.gif" BORDER="0" WIDTH="42" HEIGHT="42"></a> <a HREF="../chapter10/ch10.htm" tppabs="http://webclass.ncu.edu.tw/~junwu/ch10.htm"><img SRC="../img1/nextpage.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img/nextpage.gif" BORDER="0" HSPACE="10" WIDTH="42" HEIGHT="42"></a> <a HREF="../index.html" tppabs="http://webclass.ncu.edu.tw/~junwu/index.html"><img SRC="../img1/outline.gif" tppabs="http://webclass.ncu.edu.tw/~junwu/img/outline.gif" BORDER="0" HSPACE="6" WIDTH="42" HEIGHT="42"></a><br>
<font SIZE="2" COLOR="#AA55FF">上一页 下一页 讲义大纲 </font><layer src="http://www.spidersoft.com/ads/bwz468_60.htm" visibility="hidden" id="a1" width="600" onload="moveToAbsolute(ad1.pageX,ad1.pageY); a1.clip.height=60;visibility='show';"></layer> </p>
</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -