MATLAB编程与应用系列-第5章 多项式与数据分析(1)

2024-05-06 17:37

1. MATLAB编程与应用系列-第5章 多项式与数据分析(1)

本章将介绍如何使用MATLAB来解决一些基本的数学运算问题,主要包括多项式的相关计算,数据插值,曲线拟合以及数据统计处理等相关的内容。本章的主要内容如下:
  
 在MATLAB中,多项式是以行向量的形式存放的,并且约定多项式以降幂的形式出现,如果多项式中缺少某幂次项,则该幂次项的系数为0。例如,多项式  可以表示为:p1=[1 21 20 0],其中常数项为0。
  
 本节将全面介绍与多项式有关的各种计算,包括多项式的四则运算、导函数运算、求值、求根以及分部展开。
  
 多项式的加减运算并无特别,可以使用向量的加减运算实现。多项式的乘除运算比较复杂,为此MATLAB提供了专门的运算函数 conv 和 deconv 。
   函数 conv 用于求多项式P1和P2的乘积,它的调用格式如下:
  
 其中,P1、P2是两个多项式系数向量。
   函数 deconv 用于对多项式P1和P2作除法运算,它的调用格式如下:
  
 其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。返回的Q和r仍是多项式系数向量。
  
 可以将除法运算deconv看作是乘法运算conv的逆运算,即有P1=conv(P2,Q)+r。
  
 下面通过示例介绍多项式的表示和多项式的四则运算。
  
 MATLAB提供了polyder函数,用于求多项式的导函数。该函数的格式如下:
  
 其中,参数P和Q是多项式的系数向量,返回结果p和q也是多项式的系数向量。
  
 MATLAB提供了两种求多项式值的函数:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x,但是两者是有很大区别的,前者是按数组运算规则对多项式求值,而后者是按矩阵运算规则对多项式求值。具体的调用格式如下所示。
  
 n次多项式具有n个根,这些根可能是实根,也可能含有若干对共轭复根。MATLAB提供了roots函数用于求多项式的全部根,该函数的调用格式为:
  
 其中,P为多项式的系数向量,返回向量x为多项式的根,即x(1),x(2),…,x(n)分别代表多项式的n个根。
  
 另外,如果已知多项式的全部根,MATLAB还提供了函数poly用来建立该多项式,该函数的调用格式为:
  
 其中,x为多项式的根,返回向量P为多项式的系数向量。
  
 对于一个方阵s,可以用函数poly来计算矩阵的特征多项式的系数。特征多项式的根即为特征值,可以用roots函数来计算。
  
 MATLAB提供函数 residue 可以实现将分式表达式进行多项式的部分分式展开。
   对于  ,函数的调用格式如下:
  
 其中,b和a分别是分子和分母多项式系数行向量;返回值r是[r1 r2 …rn]留数行向量,p为[p1 p2 …pn]极点行向量,k为直项行向量。下面通过示例来讲述该函数的使用。
  
 多项式的微分MATLAB提供了函数 polyder 来实现,前面介绍多项式的导函数时已经介绍了该函数的具体使用。但是对于多项式的积分运算MATLAB没有提供专门的函数,但可以用 [p./length(p):-1:1,k] 的方法来完成积分,其中k为常数。下面通过示例讲解如何进行多项式的积分运算。

MATLAB编程与应用系列-第5章 多项式与数据分析(1)

2. matlab编程问题、考察点:a) 多项式的表示方法;b) 多项式拟合; c)多项式求值。

从上图,我们可以看到,当拟合多项式的阶数越高,拟合精度也越精确。