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

📄 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 + -