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

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.6 6 672.0 9 704.9 9 806.7 1 908.5 9 975.4 2 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 个点(x i ,y i ),i=1,2,….,n,找出一条曲线使之与这些点 相当吻合,这个过程称之为曲线拟合。最常 见的曲线拟合是使用多项式来作拟合 曲线。曲线拟合最常用的方法是最小二乘法。其原理是求 f(x),使 达到最小。matlab 提供了基本的多项式曲线拟合函数命令 2 1 ] ) ( [ i n i i y x f      polyfit 格式::polyfit(x,y,n) 说明:polyfit(x,y,n)是找 n 次多项式 p(x) 的系数,这些系数 满足在最小二乘法意义 下 p(x(i)) ~= y(i). 已知一组数据,用什么样的曲线拟合最好呢? 可以根据散点 图进行直观观察,在 此基础上,选择几种曲线分别拟合,然后比 较, 观察那条曲 线的最小二乘指标最 小。 下面我们给出常用的曲线(下面的 为变量, 等为参数) , x y , a b 直线:y ax b   多项式:(一般情况下,n 不宜过高,n=2,3) 1 2 1 2 3 1 n n n n n y a x a x a x a x a          双曲线:y= a y b x   指数曲线: bx y ae  幂函数: b y ax 有些曲线的拟合,为了利用数学软件,在 拟合前需作变量替换,化 为对未知数的 线性函数。 思考:如果根据经验,曲线是双曲线 或指数曲线 及幂函数 a y b x   bx y ae  等,如何利用 matlab 的多项式拟合函数来作曲线拟合? b y ax  例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.45 9.286 9.57 9.7 8 9.86 9 1010 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(:

多项式在matlab中的应用,matlab的应用-多项式函数及多项式拟合相关推荐

  1. matlab中select,[转载]MATLAB阈值获取函数ddencmp、thselect、wbmpen和w

    crit(t) wdcbm的调用格式有以下两种: (1)[THR,NKEEP]=wdcbm(C,L,ALPHA); (2)[THR,NKEEP]=wdcbm(C,L,ALPHA,M); 函数wdcbm ...

  2. matlab中fval函数,请问matlab中[x,fval,exitflag,output] = simulannealbnd(fun,...)函数怎么调用...

    请问matlab中[x,fval,exitflag,output] = simulannealbnd(fun,...)函数怎么调用,有相应的实例吗?或者帮我看一下下面的程序,怎么改. function ...

  3. matlab中插入希腊,matlab中希腊字母打法

    如何在matlab中输入希腊字母_数学_自然科学_专业资料.matlab数据可视化处理,绘图技巧 如何在 matlab 中输入希腊字母 matlab 中用转义符来输入希腊字母的方法 上标用 ..... ...

  4. matlab 不允许函数定义,MATLAB中此上下文中不允许出现函数定义,急求~

    点击查看MATLAB中此上下文中不允许出现函数定义,急求~具体信息 答:从你讲的问题,虽然没讲太清楚,但我推测,你可能写了个脚本程序文件,其中定义了子函数,在运行时就弹出了这个提示.一般情况下,在函数 ...

  5. matlab excel导入矩阵,如何将excel中数据导入到matlab中!Excel导入matlab生成矩阵

    如何将excel中数据导入matlab并存入数组中 使用Matlab中的Excel Link就可以了. 如果使用Excel 2003版本,操作如下: 1 打开Excel. 2 在菜单栏中选择→加载项→ ...

  6. matlab中特殊字符6,matlab中特殊字符

    matlab特殊字符_工学_高等教育_教育专区.本文说明了matlab中如何输入特殊字符,如希腊字母字符映射表 C:\\WINDOWS\\system32\\charmap.exe M 文件里是可以输 ...

  7. 关于MATLAB中M文件如何解决“未定义函数或变量”的若干办法

    MATLAB的M文件分为两种:一种为脚本文件,另一种为函数文件. 脚本文件很简单,就是由一堆命令构成的,里面第一行不是 function 开头,这种文件比如是encrypt.m编写好后直接点F5或者运 ...

  8. matlab10的阶层怎么输入,在Matlab中编写阶乘函数,并调用该函数来生成一个1!,......,10!的阶乘表...

    点击查看在Matlab中编写阶乘函数,并调用该函数来生成一个1!,......,10!的阶乘表具体信息 答:Matlab 2015R 及以后版本,都自带阶乘函数,代码为: >> facto ...

  9. 如何将Matlab中“模糊控制设计器”的隶属度函数导出图片(figure)

    如何将Matlab中"模糊控制设计器"的隶属度函数导出图片(figure) 详情参考matlab官方帮助手册:plotmf()函数 https://www.mathworks.co ...

最新文章

  1. Extjs4 actioncolumn只能显示图标,不能显示文字的暂时解决方法
  2. Django + Uwsgi + Nginx 的生产环境部署
  3. linux 输入是否为数字,【shell】Linux shell 之 判断用户输入的变量是否为数字
  4. 土城战役_避免使用FOR –反假战役
  5. 宝塔nginx运行vue项目刷新404问题解决
  6. 18c分布式事务 oracle_浅谈ORACLE的分布式事务
  7. diy无感无刷电机霍尔安装_从工作原理来了解意大利Brusatori无刷电机
  8. Asp.net发布的CheckList
  9. jenkins配置记录(1)--添加用户权限
  10. AcWing 893. 集合-Nim游戏(SG函数)
  11. gridview中手工排序
  12. 一文详解Attention机制
  13. java实时百分比进度条_Java 进度条百分比简单算法,根据数据量计算
  14. RS485模块的介绍及引脚连线说明
  15. linux centos 光盘修复,CentOS 系统修复
  16. 无法打开计算机分区,电脑硬盘分区打不开怎么办
  17. Samsung 6818平台首次编译遇到的问题
  18. 战地5未能达到服务器带宽,《战地5》游戏bug汇总以及解决方案介绍
  19. linux 清除dns缓存
  20. 大漠穷秋:一个写代码的浪人|码云封面人物第 17 期

热门文章

  1. ISO、快门、光圈、曝光
  2. 百度AI的时代献礼:与央视搭AI秀台,让万物智能样貌清晰可见
  3. 马丁富勒微服务论文连接
  4. python 操作微信_利用 Python 实现微信半自动化操作
  5. 关于Google Pay JAVA后端处理
  6. systemctl 是管制服务的主要工具
  7. idea里面解决jsp,html,xml黄色背景的方法
  8. Activiti6.0(三)实现一个请假流程
  9. 调制与变频、基带信号与射频信号中的IQ调制(又称矢量调制)
  10. wps透视表列总计移到顶部_数据透视表运行总计百分比