- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章数值计算解析
第四章 数值计算
MATLAB提供高性能的数学运算功能,特别是在数值分析方面,例如数值微分、数值积分、插值、求极值、方程求根、付立叶变换、常微分方程数直解、留数计算等,在求解各种工程问题时得到了广泛应用。
4.1 多项式运算
4.1.1多项式的表示法
多项式以行向量表示,其中元素为按降幂排列的多项式的系数。
【例 4-1】将多项式以向量表示。
解:将多项式看成一元三次多项式,表示为:[1 2 1]。
如果将多项式看成一元四次多项式,应表示为:[0 1 2 1]。
4.1.2多项式运算
多项式的加减运算通过与多项式对应的行向量之间的加减运算实现,要求参与运算的行向量规模相同。
多项式的乘除运算通过conv和deconv实现。
conv(u,v)函数:求两向量卷积,此例中用以求得两多项式之积。
[q,r]=deconv(u,v)函数:求两多项式相除的结果,u为被除多项式。
【例4-2】求的“商”及“余”。
解:编写matlab程序:
fz=conv([1,0,2],[2,4])+[0,3,0,1]; %计算分子多项式,注意缺项补零
fm=[1 0 2 1];
[q,r]=deconv(fz,fm);
quotient=商多项式为 ; yu=余多项式为 ;
disp([quotient,poly2str(q,x)]),disp([yu,poly2str(r,x)])
运算结果:
商多项式为 2
余多项式为 7 x^2 + 7
4.1.3多项式求根
roots函数求多项式为0的根。
表达形式:r= roots(p)
p是多项式系数形成的行向量,多项式由一个行向量表示,它的系数按降序排列。
r为多项式为0的根,是一个列向量。
【例4-3】,计算其根。
解:在MATLAB命令窗输入:
p = [1 9 23 15]
r = roots (p)
得结果:
r =
-1.0000
-3.0000
-5.0000
poly函数:求已知根所对应的多项式。
【例4-4】 已知根-1、-3、-5,求多项式系数。
解:在MATLAB命令窗输入:
S = poly ( [ -1 -3 -5 ]’ )
S =
1.0000 9.0000 23.0000 15.0000 % 返回行向量是多项式系数向量。
FX=poly2str(S,x) % 以习惯的方式显示多项式
4.1.4 求多项式的值
polyval函数:求多项式值。
表达形式:polyval(p,x)。
p是多项式系数行向量,返回多项式在x的值。
【例4-5】 求在 x = 2 时的值。
解:在MATLAB命令窗输入:
p = [1 -3 -4 15];
polyval(p, 2)
ans =3
polyvalm函数:将矩阵作为变量来计算多项式的值,使用格式:
Y=polyvalm(p,X) --p为多项式,X为已知的矩阵,返回也是一个矩阵。
【例4-6】 已知,求。
解:编写MATLAB程序:
X=[1 2;3 4];
p=[3 –4 15];
FX=polyvalm(p,X)
运算结果:
FX =
32 22
65
4.1.5 多项式展开
Residue留数函数,可用于多项式展开,在电路的复频域分析中,可以用它进行拉氏反变化。
假定 (1)
可化为: (2)
是真分式,上式可化为:
给定B(s)、A(s),用residue函数可求出r1,r2, ...... rn , p1, p2, .....pn,和k1, k2 , .....kn 。
表达形式:[r,p,k]=residue(num,den)
num是B(s)多项式子系数按降序排列的行向量,den是A(s)多项式子系数按降序排列的行向量。
命令[num,den]=residue(r,p,k)将(2)式转换成(1)式。
【例4-7】 假定,求部分分式展开。
解:在MATLAB输入如下命令:
num=[4 3 6 10 20];
den=[1 2 5 2 8];
[r,p,k]=residue(num,den)
得结果:
r =
-1.6970 + 3.0171i
-1.6970 - 3.0171i
-0.8030 - 0.9906i
-0.8030 + 0.9906i
p =
-1.2629 + 1.7284i
-1.2629 - 1.7284i
0.2629 + 1.2949i
0.2629 - 1.2949i
k =
4
即:
4.1.6 多项式求导
polyder(A)函数用于求多项式的
文档评论(0)