- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
控制工程中的程序设计 授课教师:冯肖亮 E-mail: fengxl2002@161.com 河南工业大学 电气工程学院 * 数值问题求解 第四章 * 1. 多项式的建立 已知一个多项式的全部根X求多项式系数的函数是poly(X),该函数返回以X为全部根的一个多项式P,当X是一个长度为m的向量时,P是一个长度为m+1的向量。 2. 多项式求根 求多项式p(x)的根的函数是roots(P),这里,P是p(x)的系数向量,该函数返回方程p(x)=0的全部根(含重根,复根)。 3. 多项式求值 求多项式p(x)在某点或某些点的函数值的函数是polyval(P,x)。若x为一数值,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式的值。 * 4.4 多项式计算 例4.33 已知一个多项式,计算: (1)计算f(x)=0 的全部根。 (2)由方程f(x)=0的根构造一个多项式g(x),并与f(x)进行对比。 (3)计算f(5)、f(7.8)、f(9.6)、f(12.3)的值。 命令如下: P=[3,0,4,-5,-7.2,5]; X=roots(P) %求方程f(x)=0的根 G=poly(X) %求多项式g(x) X0=[5,7.8,9.6,12.3]; f=polyval(P,X0) %求多项式f(x)在给定点的值 多项式求值还有一个函数是polyvalm,其调用格式与polyval相同,但含义不同。 polyvalm函数要求x为方阵,它以方阵为自变量求多项式的值。 * 4. 多项式的四则运算 (1)多项式的加减法 当两个多项式的次数不同时,要在一个较低次幂的多项式系数响亮前补0,使两个系数向量等长。 (2)多项式的乘法 函数conv(P1,P2)用于求多项式P1和P2的乘积。 (3)多项式的除法 函数[Q,r]=deconv(P1,P2)用于对多项式P1和P2作除法运算。其中Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。deconv是conv的逆函数,即有P1=conv(P2,Q)+r。 * 例4.34设有两个多项式,计算: (1)求f(x)+g(x)、f(x)-g(x)。 (2)求f(x)·g(x)、f(x)/g(x)。 在MATLAB命令窗口,输入命令: f=[3,-5,2,-7,5,6];g=[3,5,-3];g1=[0,0,0,g]; f+g1 %求f(x)+g(x) f-g1 %求f(x)-g(x) conv(f,g) %求f(x)*g(x) [Q,r]=deconv(f,g) %求f(x)/g(x),商式送Q,余式送r。 * 5. 多项式的导函数 对多项式求导数的函数是: p=polyder(P) 求多项式P的导函数 p=polyder(P,Q) 求P*Q的导函数 [p,q]=polyder(P,Q) 求P/Q的导函数,导函数的分子存入p,分母存入q。 * 例4.35求有理分式的导数。 命令如下: P=[3,5,0,-8,1,-5]; Q=[10,5,0,0,6,0,0,7,-1,0,-100]; [p,q]=polyder(P,Q) * 4.4.5 函数的最大值与最小值 MATLAB中用于求最小值的函数是: fmin(f,a,b) 求单变量函数f(x)在区间(a,b)上的最小值点。 fmins(F,X0) 求多变量函数F(x)在估计值X0附近的最小值点。 MATLAB没有专门提供求函数最大值点的函数,但只要注意到-f(x)在区间(a,b)上的最小值点就是f(x)在(a,b)的最大值点,所以fmin(-f,a,b)返回函数f(x)在区间(a,b)上的最大值。 * 例4.36 求函数f(x)在区间(-10,1)和(1,10)上的最小值点。 首先建立函数文件fx.m: function f=f(x) f=x-1/x+5; return 上述函数文件也可用一个语句函数代替: Ff=inline( x-1/x+5 ) 再在MATLAB命令窗口,输入命令: fmin(fx,-10,-1) %求函数在区间(-10,-1)内的最小值点 fmin(ff,1,10) %求函数在区间(1,10)内的最小值点。 注意函数名f不用加 * 例4.37 设有函数f(x,y,z),求函数f在
文档评论(0)