matlab多项式计算(求根、由根创建、导数、积分)

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 中系数所表示的多项式积分。

q = polyint(p) 假定积分常量 k = 0

 

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

 

发布了11 篇原创文章 · 获赞 4 · 访问量 2400

猜你喜欢

转载自blog.csdn.net/Su_jinshi/article/details/104188777