收藏 分销(赏)

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

上传人:精**** 文档编号:2452161 上传时间:2024-05-30 格式:DOC 页数:11 大小:170.04KB 下载积分:8 金币
下载 相关 举报
Matlab的应用-多项式函数及多项式拟合.doc_第1页
第1页 / 共11页
Matlab的应用-多项式函数及多项式拟合.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
Matlab的应用-多项式函数及多项式拟合 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 2 个人收集整理 勿做商业用途 Matlab的应用—多项式函数及多项式拟合 本节将向大家简要介绍matlab 在多项式处理方面的应用. 多项式函数主要有: roots 求多项式的根 poly 特征多项式 polyval 多项式的计算 poly2str(p,'x’)多项式代换 polyfit 多项式曲线拟合 conv 多项式乘法 deconv 多项式除法 polyder 微分多项式 下面我们将介绍这些函数的用法: 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年人口数据资料如下: 年份 1949 1954 1959 1964 1969 1974 1979 1984 1989 1994 人口数 (百万) 541.67 602。66 672.09 704.99 806。71 908.59 975.42 1034.75 1106.76 1176.74 如何确定我国人口的发展变化规律呢? 一般地,我们采用下面的分析处理方法: 首先,在直角坐标系上作出人口数与年份的散点图象。观察随着年份的增加人口数与年份变化关系,初步估计出他们之间的关系可近似地可看做一条直线。那么我们如何把这条直线方程确定出来呢?并用他来估计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:在化学反应中,为研究某化合物的浓度随时间的变化规律。测得一组数据如下表所示: x(分) 1 2 3 4 5 6 7 8 浓度y 4 6.4 8.0 8。4 9.28 9。5 9。7 9.86 x(分) 9 10 11 12 13 14 15 16 浓度y 10 10。2 10.32 10.42 10.5 10.55 10.58 10.6 试求浓度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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服