直接上代码(其中包含详细的实例和注释)
%% 多项式及其操作
% 使用poly2sym()函数来构造多项式
% 实例 构造多项式:2*x^6+3*x^5+4*x^4+8*x+1
A=[2 3 4 0 0 8 1];
poly2sym(A)
% 结果
ans =
2*x^6+3*x^5+4*x^4+8*x+1
%多项式的根(即多项式表达式=0对应的x的值)
% 实例
A=[2 3 4 0 0 8 1];
poly2sym(A) %构造多项式
x=roots(A) % 求多项式的根
% 结果
ans =
2*x^6+3*x^5+4*x^4+8*x+1
x =
-0.7708 + 1.4984i
-0.7708 - 1.4984i
-1.2805
0.7237 + 0.7586i
0.7237 - 0.7586i
-0.1251
%求出结果之后验证表达式的结果是不是为0
polyval(A,x)
% 结果
ans =
1.0e-013 *
-0.0111 - 0.0833i
-0.0111 + 0.0833i
0.3453
0.0022 + 0.1271i
0.0022 - 0.1271i
0.0111
% 从结果可以看出,求出的根只是一个近似值而不是精确值
% 多项式求导 polyder(h)
% 实例
A=[2 3 4 0 0 8 1];
poly2sym(A) %构造多项式
x=polyder(A) %对多项式求导
poly2sym(x) %显示求导后的多项式
%结果:
ans =
2*x^6+3*x^5+4*x^4+8*x+1
x =
12 15 16 0 0 8
ans =
12*x^5+15*x^4+16*x^3+8
%多项式估值 polyval(p,x)
% 其中p代表多项式的系数,x代表要求值的点
% 如果x是矩阵,则需要使用polyvalm(p,x)来实现
% 实例
A=[2 3 4 0 0 8 1];
poly2sym(A) %构造多项式
polyval(A,[1 2 3 4]) %计算多项式在x=1 2 3 4时的值
% 结果
ans =
2*x^6+3*x^5+4*x^4+8*x+1
ans =
18 305 2536 12321
% 当x为矩阵时求解
A=[1 0 1]; % x^2+1
B=[1 2 3;4 5 6;7 8 9]
polyvalm(A,B) % 其实相当于把B这个二维矩阵直接替换变量x,即求 B^2+E 这个矩阵多项式
% 结果
x =
1 2 3
4 5 6
7 8 9
ans =
31 36 42
66 82 96
102 126 151
% 有理多项式 用residue()函数来计算有理多项式
% 有理多项式的表示分别用分子分母多项式来表示
% [r,p,k]=residue(b,a) 其中b代表分子多项式的系数,a代表分母多项式的系数
% 实例
b=[3 5 3 8];
poly2sym(b) % 分子多项式
a=[4 6 0 -5];
poly2sym(a) % 分母多项式
[r,p,k]=residue(b,a) % 计算有理多项式
% 结果
r =
-0.3939 + 0.7790i
-0.3939 - 0.7790i
0.9127
p =
-1.1230 + 0.6438i
-1.1230 - 0.6438i
0.7460
k =
0.7500
% 结果说明
B(s) R(1) R(2) R(n)
---- = -------- + -------- + .... + -------- + K(s)
A(s) s - P(1) s - P(2) s - P(n)原文地址:http://blog.csdn.net/z1137730824/article/details/40401919