7.1.1 分段线性插值

所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理。实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要用法如下:

interp1(x,y,xi) 一维插值

◆ yi=interp1(x,y,xi)

对一组点(x,y) 进行插值,计算插值点xi的函数值。x为节点向量值,y为对应的节点函数值。如果y 为矩阵,则插值对y 的每一列进行,若y 的维数超出x 或 xi 的维数,则返回NaN。

◆ yi=interp1(y,xi)

此格式默认x=1:n ,n为向量y的元素个数值,或等于矩阵y的size(y,1)。

◆ yi=interp1(x,y,xi,’method’)

method用来指定插值的算法。默认为线性算法。其值常用的可以是如下的字符串。

● nearest 线性最近项插值。

● linear 线性插值。

● spline 三次样条插值。

● cubic 三次插值。

所有的插值方法要求x是单调的。x 也可能并非连续等距的。

正弦曲线的插值示例:

>> x=0:0.1:10;

>> y=sin(x);

>> xi=0:0.25:10;

>> yi=interp1(x,y,xi);

>> plot(x,y,’0’,xi,yi)

则可以得到相应的插值曲线(读者可自己上机实验)。

Matlab也能够完成二维插值的运算,相应的函数为interp2,使用方法与interpl基本相同,只是输入和输出的参数为矩阵,对应于二维平面上的数据点,详细的用法见Matlab联机帮助。

7.1.2 最小二乘法拟合

在科学实验的统计方法研究中,往往要从一组实验数据中寻找出自变量x 和因变量y之间的函数关系y=f(x) 。由于观测数据往往不够准确,因此并不要求y=f(x)经过所有的点 ,而只要求在给定点上误差按照某种标准达到最小,通常采用欧氏范数作为误差量度的标准。这就是所谓的最小二乘法。在MATLAB中实现最小二乘法拟合通常采用polyfit函数进行。

函数polyfit是指用一个多项式函数来对已知数据进行拟合,我们以下列数据为例介绍这个函数的用法:

>> x=0:0.1:1;

>> y=[ -0.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2 ]

为了使用polyfit,首先必须指定我们希望以多少阶多项式对以上数据进行拟合,如果我们指定一阶多项式,结果为线性近似,通常称为线性回归。我们选择二阶多项式进行拟合。

>> P= polyfit (x, y, 2)

P=

-9.8108 20.1293 -0.0317

函数返回的是一个多项式系数的行向量,写成多项式形式为:

为了比较拟合结果,我们绘制两者的图形:

>> xi=linspace (0, 1, 100); %绘图的X-轴数据。

>> Z=polyval (p, xi); %得到多项式在数据点处的值。

当然,我们也可以选择更高幂次的多项式进行拟合,如10阶:

>> p=polyfit (x, y, 10);

>> xi=linspace (0, 1,100);

>> z=ployval (p, xi);

读者可以上机绘图进行比较,曲线在数据点附近更加接近数据点的测量值了,但从整体上来说,曲线波动比较大,并不一定适合实际使用的需要,所以在进行高阶曲线拟合时,“越高越好”的观点不一定对的。

7.2 符号工具箱及其应用

在数学应用中,常常需要做极限、微分、求导数等运算,MATLAB称这些运算为符号运算。MATLAB的符号运算功能是通过调用符号运算工具箱(Symbolic Math Toolbox)内的工具实现,其内核是借用Maple数学软件的。MATLAB的符号运算工具箱包含了微积分运算、化简和代换、解方程等几个方面的工具,其详细内容可通过MATLAB系统的联机帮助查阅,本节仅对它的常用功能做简单介绍。

7.2.1 符号变量与符号表达式

MATLAB符号运算工具箱处理的对象主要是符号变量与符号表达式。要实现其符号运算,首先需要将处理对象定义为符号变量或符号表达式,其定义格式如下:

格式1: sym (‘变量名’) 或 sym (‘表达式’)

功能: 定义一个符号变量或符号表达式。

例如:

>> sym (‘x’) % 定义变量x为符号变量

>> sym(‘x+1’) % 定义表达式x+1为符号表达式

格式2: syms 变量名1 变量名2 …… 变量名n

功能: 定义变量名1、变量2 ……、变量名 n为符号变量。

例如:

>> syms a b x t % 定义a,b, x,t 均为符号变量

7.2.2 微积分运算

1、极限

格式:limit (f, t, a, ‘left’ or ‘right’)

功能:求符号变量t 趋近a 时,函数f 的(左或右)极限。‘left’ 表示求左极限,‘right’ 表示求右极限,省略时表示求一般极限;a省略时变量t 趋近0; t省略时默认变量为x ,若无x则寻找(字母表上)最接近字母x 的变量。

例如:求极限的命令及结果为:

>> syms x t

>> limit ((1+2*t/x)^(3*x) , x, inf )

ans=

exp(6*t)

再如求函数x / |x| ,当时的左极限和右极限,命令及结果为:

>> syms x

>> limit(x/abs(x), x, 0, ’left’) ans = -1

>> limit(x/abs(x),x, 0, ’right’) ans = 1

2、导数

格式: diff (f,t,n)

功能: 求函数f 对变量 t的n 阶导数。当n省略时,默认 n=1;当t省略时,默认变量x, 若无x时则查找字母表上最接近字母x 的字母。

例如:求函数f=a*x^2+b*x+c对变量 x的一阶导数, 命令及结果为

>> syms a b c x

>> f=a*x^2+b*x+c;

>> diff(f)

ans=

2*a*x+b

求函数f 对变量b的一阶导数(可看作求偏导), 命令及结果为

>> diff(f,b) ans=x

求函数f 对变量x的二阶导数, 命令及结果为

>> diff(f,2) ans=2*a

3、积分

格式: int(f,t,a,b)

功能: 求函数f 对变量 t从a 到b的定积分. 当a和b省略时求不定积分;当t省略时, 默认变量为(字母表上)最接近字母x的变量。

例如:求函数f=a*x^2+b*x+c对变量x不定积分, 命令及结果为

>> syms a b c x

>> f=a*x^2+b*x+c;

>> int(f)

ans=

1/3*a*x^3+1/2*b*x^2+c*x

求函数f 对变量b不定积分, 命令及结果为

>> int(f,b)

ans=

a*x^2*b+1/2*b^2*x+c*b

求函数f 对变量x 从 1到5的定积分, 命令及结果为

>> int(f,1,5)

ans=

124/3*a+12*b+4*c

4、级数求和

格式: symsum (s,t,a,b)

功能:求表达式s中的符号变量t从第a项到第b项的级数和。

例如: 求级数的前三项的和, 命令及结果为

>> symsum(1/x,1,3) ans=11/6

7.2.3 化简和代换

MATLAB符号运算工具箱中,包括了较多的代数式化简和代换功能,下面仅举出部分常见运算。

simplify 利用各种恒等式化简代数式

expand 将乘积展开为和式

factor 把多项式转换为乘积形式

collect 合并同类项

horner 把多项式转换为嵌套表示形式

例如:进行合并同类项执行

>> syms x

>> collect(3*x^3-0.5*x^3+3*x^2)

ans=

5/2*x^3+3*x^2)

进行因式分解执行

>> factor(3*x^3-0.5*x^3+3*x^2)

ans=

1/2*x^2*(5*x+6)

7.2.4 解方程

1、代数方程

格式:solve (f,t)

功能:对变量t 解方程f=0,t 缺省时默认为x 或最接近字母x 的符号变量。

例如:求解一元二次方程f=a*x^2+b*x+c的实根,

>> syms a b c x

>> f=a*x^2+b*x+c;

>> solve (f,x)

ans=

[1/2/a*(-b+(b^2-4*a*c)^ (1/2))]

[1/2/a*(-b-(b^2-4*a*c)^ (1/2))]

2、微分方程

格式:dsolve(‘s’, ’s1’, ’s2’,…, ’x’)

其中s为方程;s1,s2,……为初始条件,缺省时给出含任意常数c1,c2,……的通解;x为自变量,缺省时默认为t 。

例如:求微分方程的通解

>> dsolve(‘Dy=1+y^2’)

ans=

tan(t+c1)

7.3 优化工具箱及其应用

在工程设计、经济管理和科学研究等诸多领域中,人们常常会遇到这样的问题:如何从一切可能的方案中选择最好、最优的方案,在数学上把这类问题称为最优化问题。这类问题很多,例如当设计一个机械零件时如何在保证强度的前提下使重量最轻

或用量最省(当然偷工减料除外);如何确定参数,使其承载能力最高;在安排生产时,如何在现有的人力、设备的条件下,合理安排生产,使其产品的总产值最高;在确定库存时如何在保证销售量的前提下,使库存成本最小;在物资调配时,如何组织运输使运输费用最少。这些都属于最优化问题所研究的对象。

MATLAB的优化工具箱被放在toolbox目录下的optim子目录中,其中包括有若干个常用的求解函数最优化问题的程序。MATLAB的优化工具箱也在不断地完善。不同版本的MATLAB,其工具箱不完全相同。在MATLAB5.3版本中,对优化工具箱作了全面的改进。每个原有的常用程序都重新编制了一个新的程序。除fzero和fsolve外都重新起了名字。这些新程序使用一套新的控制算法的选项。与原有的程序相比,新程序的功能增强了。在MATLAB5.3和6.0版本中,原有的优化程序(除fzero和fsolve外)仍然保留并且可以使用,但是它们迟早会被撤消的。鉴于上述情况,本书将只介绍那些新的常用的几个优化程序。

◆◆

评论读取中....

请登录后再发表评论!

◆◆

修改失败,请稍后尝试

matlab找多项式最值,如何利用matlab计算最小多项式相关推荐

  1. matlab系列之(一)——利用matlab实现任意两个多项式相加

    上课时的课程作业,后续我会持续整理出来注释好,供大家共同学习!致谢课程老师! 一.问题描述 输入任意两个多项式,相加后输出结果: 二.问题分析 输入多项式可以采用输入系数矩阵或完整多项式的方式,为了符 ...

  2. matlab 随机相位的正弦信号,利用MATLAB绘制随机相位正弦波.docx

    实验二 利用MATLAB绘制随机相位正弦波的均值,方差和自相关函数的图像[实验目的]通过绘制图像,深入理解随机相位正弦波的均值,方差和自相关函数.[实验学时]课外完成[实验准备]1.熟悉随机相位正弦波 ...

  3. matlab 画三条曲线,如何利用MATLAB(plot 3函数和fplot3函数)绘制三维曲线?

    文章目录 0 前言 1 plot3函数 1.1 plot3函数的基本用法 1.2 plot3(x,y,z)函数参数的变化形式 1.3 含多组输入参数的plot3函数 1.4 含选项的plot3函数 2 ...

  4. matlab中电压幅值不对,基于MATLAB的SPWM电压型逆变器的仿真与分析

    龙源期刊网 http://www.doczj.com/doc/b1455622f6ec4afe04a1b0717fd5360cba1a8da1.html 基于MATLAB的SPWM电压型逆变器的仿真与 ...

  5. 在matlab中实现累乘,如何利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现...

    设计要求 利用matlab设计一个线性相位FIR带通滤波器,并在FPGA上实现. 1.滤波器指标:过渡带带宽分别为100~300HZ,500~700HZ,阻带允许误差为0.02,通带允许误差为0.01 ...

  6. matlab 图像读取默认值,实验一MATLAB数字图像处理

    昆明理工大学信息工程与自动化学院学生实验报告 ( 2012 -2013 学年第二学期) 课程名称:图形图像处理开课实验室:信自444 2013年 5月 22日 一.实验目的与要求 1.熟悉及掌握在MA ...

  7. 利用MATLAB进行系统时域分析,实验二 利用matlab进行系统的时域分析

    实验二 利用matlab进行系统的时域分析 实验二 利用MATLAB进行系统的时域分析 1.实验目的 在理论学习的基础上,通过本实验熟悉LTI连续时间系统的时域分析方法, 熟悉系统的零输入响应.零状态 ...

  8. matlab求多元函数的极小值,[转载]利用MATLAB求多元函数的极值(2)

    利用MATLAB求多元函数的极值分两种情况,(1)无约束条件:(2)有约束条件. (2)有约束条件下求极小值的方法: 假设多变量非线性函数的数学模型为 min f(x) c(x)<=0 ceq( ...

  9. matlab抓取网页信息,如何利用Matlab抓取网页数据

    如何利用Matlab抓取网页数据 2019-01-01 %朋友需要做金融方面的分析,要求从网站上下载大量的数据,一个一个复制粘贴太费事.我写了一个简单的网络爬虫,主要用到正则表达式,可以自动下载网页源 ...

最新文章

  1. 微软WSUS服务器 3.0安装配置详解
  2. 2017程序员该为自己制定的12个小目标
  3. C# 6.0的字典(Dictionary)的语法
  4. 动态规划的Matlab实现和实例分析
  5. c语言 字符串分隔,c语言字符串分割–strtok | 逗号分隔-huangea的博客
  6. windows下,linux下elasticsearch安装插件head插件的步骤
  7. python起简易http server
  8. 联想小新潮7000-13 型号:LENOVO 81BS 制作黑苹果,MACos 10.14.2+WIN 10 双系统
  9. 十天学会php chm,【div+css】十天学会div+css---第一天_html/css_WEB-ITnose
  10. windows 域,windows domain
  11. 方大东莞新材:实习总结报告PPT讲稿
  12. Photoshop教程五:图层混合模式
  13. excel冻结窗口_excel中使用快捷方式锁定单元格,冻结某些单元格、公式或单元格...
  14. java ruby 比较_java和ruby的一些比较
  15. Wannacrypt蠕虫老树开花?又见Wannacrypt
  16. MTTF,MTBF,MTRF的概念
  17. 如何成为一名出色SEO从业人员
  18. 沐圣moolsun:做真正的民族品牌
  19. QNX修改程序最终生成的名字
  20. GPU CUDA Python笔记

热门文章

  1. web网站的注销功能实现
  2. 基于.net的大型web开源免费erp
  3. ASP.NET2.0关于BIN目录下DLL文件访问的问题
  4. 街机游戏linux模拟器_适用于Linux的5种街机风格游戏
  5. 在apache和php安装之后进行连接配置,
  6. isDebugEnabled作用
  7. 简洁的PHP图床源码烟雨图床程序源码
  8. alias实现VREP/Coppeliasim等软件在任意路径以自定义名称启动
  9. Android自定义导览地图组件(一)
  10. 中值滤波matlab