1 matlab多项式求根
举例:求解多项式3x4-10x3+15x+1000的根
Matlab代码
%% 多项式求解
p = [3 -10 0 15 1000];
r = roots(p);
运行结果
r =
4.0283 + 2.8554i
4.0283 - 2.8554i
-2.3616 + 2.8452i
-2.3616 - 2.8452i
2 由根创建多项式
在matlab中无论是多项式还是它的根,都是以向量形式存储的,按照惯例,多项式的行向量,根是列向量。由根创建多项式举例如下:
%% 由根创建多项式
r = [4.0283 + 2.8554i;4.0283 - 2.8554i;-2.3616 + 2.8452i;-2.3616 - 2.8452i];
p = poly(r)
运行结果
p =
1.0000 -3.3334 -0.0001 5.0016 333.3381
3 多项式的导数
使用 polyder
获取多项式 p(x)=x3−2x−5 的导数。生成的多项式为 :
代码
p = [1 0 -2 -5];
q = polyder(p)
运行
q =
3 0 -2
4 多项式积分
说明:
q
= polyint(p,k)
使用积分常量 k
返回 p
中系数所表示的多项式积分。
4.1 使用 polyint
对多项式 p(x)=4x3−3x2+1 求积分。生成的多项式为:
代码
p = [4 -3 0 1];
q = polyint(p)
运行
q =
1 -1 0 1 0
4.2 计算定积分
代码
p = [3 0 -4 10 -25];
q = polyint(p);% 使用polyint
和等于0
的积分常量来对多项式求积分
a = -1;
b = 3;
I = diff(polyval(q,[a b])) % 求解积分的值。
运行结果
I = 49.0667
4.3对两个多项式的乘积求积分
计算
创建向量来表示多项式 p(x)=x5−x3+1 和 v(x)=x2+1。
p = [1 0 -1 0 0 1];
v = [1 0 1];
k = 3;
q = polyint(conv(p,v),k) % 多项式相乘,并使用积分常量 k=3
对所生成的表达式求积分。
a = 0;
b = 2;
I = diff(polyval(q,[a b])) % 通过在积分极限上计算 q
来求解 I
的值。
运行结果
I = 32.6667