matlab多项式

2024-10-13 14:32:18

Matlab的应用-多项式函数及多项式拟合

本节将向大家简要介绍matlab在多项式处理方面的应用。

多项式函数主要有:

roots求多项式的根

poly特征多项式

polyval多项式的计算

poly2str(p,'x')多项式代换

polyfit多项式曲线拟合

conv多项式乘法

deconv多项式除法

polyder微分多项式

polyint 多项式积分

下面我们将介绍这些函数的用法:

1,roots---求多项式的根

格式:roots(c)

说明:它表示计算一个多项式的根,此多项式系数是向量c的元素.如果c有n+1个元素,那么此多项式为:

c(1)*x^n+c(2)*x^(n-1)+c(3)*x^(n-2)+--+c(n)*x+c(n+1)

2,poly---特征多项式

格式:poly(a)

说明:(1)如果a是一个n阶矩阵,poly(a)是一个有n+1个元素的行向量,这n+1个元素是特征多项式的系数(降幂排列).

(2)如果a是一个n维向量,则poly(a)是多项式(x-a(1))*(x-a(2))*..(x-a(n)),即该多项式以向量a的元素为根。

3,polyval—多项式计算

格式:polyval(v,s)

说明:

如果v是一个向量,它的元素是一个多项式的系数,那麽polyval(v,s)是多项式在s处的值.

如果s是一个矩阵或是一个向量,则多项式在s中所有元素上求值

例如:

v=[1234];vv=poly2str(v,’s’)

(即v=s^3+2*s^2+3*s+4)

s=2;

x=polyval(v,s)

x=

26

例如:

v=[1234];

s=[24];

polyval(v,s)

ans=26112

4,conv-多项式乘法

例:as=[123]

as=

123

>>az=[2421]

az=

2421

>>conv(as,az)

ans=

28161783

conv(az,as)

ans=

28161783

5,deconv-多项式除法

例:deconv(az,as)%返回结果是商式的系数

ans=

20

[awwq,qw]=deconv(az,as)%awwq是商式的系数,qw是余式的系数

awwq=

20

qw=

00-41

6,polyder微分多项式

polyder(as)

ans=

22

7,polyfit--多项式曲线拟合

格式::polyfit(x,y,n)

说明:polyfit(x,y,n)是找n次多项式p(x)的系数,这些系数满足在最小二乘法意义下p(x(i))~=y(i).

“人口问题”是我国最大社会问题之一,估计人口数量和发展趋势是我们制定一系列相关政策的基础。有人口统计年鉴,可查到我国从1949年至1994年人口数据资料如下:

matlab多项式

试求浓度y与时间t的经验函数关系。并推断第20、40分钟时的浓度值。

本题是一个可以用数据的曲线拟合来解决的问题。下面是利用matlab编的一段程序。

clear;

%录入数据

xy=[14

26.4

38.0

48.4

59.28

69.5

79.7

89.86

910

1010.2

1110.32

1210.42

1310.5

1410.55

1510.58

1610.6];

x=xy(:,1);

y=xy(:,2);

plot(x,y,'r*');%画出散点图,观察曲线走势

holdon;t=0:.3:10;pxdxs=polyfit(x,y,2);

pxd=poly2str(pxdxs,'x')

pxdx=polyval(pxdxs,t);plot(t,pxdx,'-k')

方法2:解下述方程组:(这是超定方程组(方程个数大于未知数个数的方程),这个方程组没有普遍意义下的解,但可以在最小二乘法意义下求解)

把它写成矩阵乘法的形式:

y=a*[a,b,c]'

其中,a=[1,1,1;122^2;133^2;144^2;155^2;166^2;177^2;188^2;199^2;11010^2;…

11111^2;11212^2;11313^2;11414^2;11515^2;11616^2];

y=[46.48.08.49.289.59.79.861010.210.3210.4210.510.5510.5810.6]';

于是,abc=a\y

猜你喜欢