matlab多项式

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=[1 2 3 4];vv=poly2str(v,’s’)

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

s=2;

x=polyval(v,s)

x =

26

例如:

v=[1 2 3 4];

s=[2 4];

polyval(v,s)

ans=26    112

4,conv-多项式乘法

例:as=[1 2 3]

as =

1     2     3

>> az=[2 4 2 1]

az =

2     4     2     1

>> conv(as,az)

ans =

2     8    16    17     8     3

conv(az,as)

ans =

2     8    16    17     8     3

5,deconv-多项式除法

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

ans =

2     0

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

awwq =

2     0

qw =

0     0    -4     1

6,polyder   微分多项式

polyder(as)

ans =

2     2

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

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

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

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

如何确定我国人口的发展变化规律呢?

一般地,我们采用下面的分析处理方法:

首先,在直角坐标系上作出人口数与年份的散点图象。观察随着年份的增加人口数与年份变化关系,初步估计出他们之间的关系可近似地可看做一条直线。那么我们如何把这条直线方程确定出来呢?并用他来估计1999年我国的人口数。

方法一:先选择能反映直线变化的两个点,如(1949,541.67),(1984,1034.75)二点确定一条直线,方程为 N = 14.088 t – 26915.842  ,代入t =1999,得N »12.46亿

方法二:可以多取几组点对,确定几条直线方程,将t = 1999代入,分别求出人口数,在取其算数平值。

方法三:可采用“最小二乘法”求出直线方程。这就是曲线拟合的问题。

方法一与方法二都具有一定的局限性,下面我们重点介绍数据的曲线拟合。所谓曲线拟合是指给定平面上的n个点(xi,yi),i=1,2,….,n,找出一条曲线使之与这些点相当吻合,这个过程称之为曲线拟合。最常见的曲线拟合是使用多项式来作拟合曲线。曲线拟合最常用的方法是最小二乘法。其原理是求f(x),使达到最小。matlab提供了基本的多项式曲线拟合函数命令polyfit

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

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

已知一组数据,用什么样的曲线拟合最好呢?可以根据散点图进行直观观察,在此基础上,选择几种曲线分别拟合,然后比较,观察那条曲线的最小二乘指标最小。

下面我们给出常用的曲线(下面的为变量,等为参数)

直线:

多项式:(一般情况下,n不宜过高,n=2,3)

双曲线:y=

指数曲线:

幂函数:

有些曲线的拟合,为了利用数学软件,在拟合前需作变量替换,化为对未知数的线性函数。

思考:如果根据,曲线是双曲线或指数曲线及幂函数等,如何利用matlab的多项式拟合函数来作曲线拟合?

例2:在化学反应中,为研究某化合物的浓度随时间的变化规律。测得一组数据如下表所示:

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

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

clear;

%录入数据

xy=[1 4

2 6.4

3 8.0

4 8.4

5 9.28

6 9.5

7 9.7

8 9.86

9 10

10 10.2

11 10.32

12 10.42

13 10.5

14 10.55

15 10.58

16 10.6];

x=xy(:,1);

y=xy(:,2);

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

hold on;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;1 2 2^2;1 3 3^2;1 4 4^2;1 5 5^2;1 6 6^2;1 7 7^2; 1 8 8^2;1 9 9^2;1 10 10^2; …

1 11 11^2;1 12 12^2;1 13 13^2;1 14 14^2;1 15 15^2;1 16 16^2];

y=[4 6.4 8.0 8.4 9.28 9.5 9.7 9.86 10 10.2 10.32 10.42 10.5 10.55 10.58 10.6]';

于是,abc=a\y

(0)

相关推荐

  • matlab之多项式运算

    在matlab中,用行向量表示多项式,降幂排列. 操作方法 01 多项式乘法:conv() 多项式除法:deconv() 02 由根求多项式:poly() 多项式求根:roots() 03 多项式求导 ...

  • MATLAB中多项式的计算方法

    在本篇里面,为大家介绍MATLAB中多项式的计算方法,MATLAB是一种十分强大的工具,在日常学习和工程实践中都具有重要的意义. 操作方法 01 如图所示,打开软件,建立工程文件,这在前面介绍过了,在 ...

  • 如何用matlab实现多项式拟合

    实例 01 先看一个具体的例子,通过构造一系列离散的二维点集,然后用不同阶次的多项式来拟合,比较哪个效果更好.最后说明多项式拟合在matlab中的用法. 02 首先启动matlab,选择编辑器,再新建 ...

  • MATLAB求多项式的根和通过根构建多项式

    MATLAB提供的函数roots( )可以求多项式的根.同时,函数poly( )又可以通过根反算出多项式. 操作方法 01 第一,通过MATLAB求下图多项式的根. 02 第二,启动MATLAB,新建 ...

  • matlab中poly函数是什么,怎么使用?

    有时候我们在使用matlab进行数学运算的时候,想知道poly函数是什么,怎么使用,下面来分享一下方法 操作方法 01 第一步我们首先需要知道matlab中poly函数可以构造多项式,也可以生成矩阵的 ...

  • MATLAB中的数据拟合和插值

    我们在测量到的数据中,由于实验误差或不确定性,通常会与实际结果产生一定的偏差,通过数据拟合,可以假定数据符合某些规律,然后通过拟合得到这些未知参数.本介绍如何用MATLAB进行拟合. 操作方法 01 ...

  • matlab中polyfit与polyval的功能?

    有时候我们在使用matlab进行运算的时候,想知道polyfit与polyval的功能,怎么使用,下面来分享一下方法 操作方法 01 第一步我们首先需要知道polyfit是多项式曲线拟合函数,poly ...

  • MATLAB合并同类项(collect)和因式分解(factor)

    在MATLAB中,函数collect(f,x)和factor(f),分别具有对符号表达式进行合并同类项和因式分解的功能,其中f为符号表达式,x为指定的未知数. 操作方法 01 第一,MATLAB合并同 ...

  • 如何使用matlab实现数据的曲线拟合

    MATLAB是很多科研工作处理数据的基本工具,在实验获得数据之后,如何更好的处理数据,拟合成曲线帮助我们找到规律呢?下面介绍如何使用matlab实现数据拟合. 操作方法 01 打开Matlab软件,在 ...