MATLAB R2018b学习笔记(10)

系列文章目录

第1章 MATLAB R2018b环境
第2章 MATLAB 数值计算
第3章 MATLAB符号计算
第4章 MATLAB计算的可视化和GUI设计
第5章 MATLAB程序设计
第6章 线性控制系统分析与设计
第7章 Simulink仿真环境
第8章 MATLAB高级应用



第二章、MATLAB数值计算


前言

在 MATLAB中多项式可以用长度为n+1的行向量表示为: p=[an an-1…a1 a0],即把多项式的各项系数按降幂次序排放成为行向量,如果多项式中缺某幂次项,则用0代替该幂次项的系数。
例如,多项式p(x)= x3+21x2+20x可以表示为:
p1=[1 21 20 0] %常数项为0


10、多项式

10.1多项式求值、求根和部分分式展开

1.多项式求值
函数 polyval可以用来计算多项式在给定变量时的值,是按数组运算规则进行计算的。
语法:polyval(p,s)
说明:p为多项式,s为给定矩阵。
在这里插入图片描述
也可以用polyvalm(p,s)函数计算多项式的值,但与polyval不同的是polyvalm 函数按矩阵运算规则计算,s必须为方阵。
2.多项式求根
多项式求根的方法如下。
( 1 ) roots用来计算多项式的根。
语法:r=roots§
说明:p为多项式;r为计算的多项式的根,以列向量的形式保存。
(2)与函数roots 相反,可以用poly函数根据多项式的根计算多项式的系数。
**语法:p=poly ®**r为多项式的根。
在这里插入图片描述
3.特征多项式
对于1个方阵S,其特征多项式为det(S-XI),可以用函数 poly计算矩阵的特征多项式的系数。特征多项式的根即为特征值,用roots函数计算。
语法:p=poly (s)
说明:s 必须为方阵;p为特征多项式。
在这里插入图片描述
4.部分分式展开
在控制系统的分析中,经常需要将由分母多项式和分子多项式构成的传递函数进行部分分式展开。可以用residue函数实现将分式表达式进行多项式的部分分式展开。
在这里插入图片描述
语法:[r,p,k]=residue(b,a)
说明: b和a分别是分子和分母多项式系数行向量;r为[r1 r2…rn]留数行向量; p为[p1 p2…pn]极点行向量;k为直项行向量
在这里插入图片描述在这里插入图片描述

10.2多项式的乘除法和微积分

1.多项式的乘法和除法
多项式的乘法和除法运算分别使用函数conv和 deconv实现,这两个函数也可以对应于卷积和解卷运算。
(1)多项式的乘法。
语法:p=conv(p1,p2)
说明:p是多项式p1和 p2的乘积多项式。
(2)多项式的除法。
语法:[q,r]=deconv(p1,p2)
说明:除法不一定会除尽,可能会有余子式。多项式p1被p2除的商为多项式q,而余子式是r。
在这里插入图片描述在这里插入图片描述

10.3多项式拟合和插值

1.多项式拟合(重点)
多项式拟合使用1个多项式逼近一组给定的数据,是数据分析上常用的方法,使用polyfit函数实现。拟合的准则是最小二乘法。
在这里插入图片描述 语法:p=polyfit(x,y,n)
说明:x、y向量分别为n个数据点的横、纵坐标;n是用来拟合的多项式阶次; p为拟合的多项式,它是n+1个系数构成的行向**

%对多项式y1=2x3-x2+5x+10曲线拟合。经过一阶二阶和三阶拟合的曲线如图
x1=1:10
x1 =
1 2 3 4 5 6 7 8 9 10
p=[2 -1 5 10];
y0=polyval(p,x1)
y0 =
1 至 6 列
16 32 70 142 260 436
7 至 10 列
682 1010 1432 1960
p1=polyfit(x1,y0,1)
p1 =
204.8000 -522.4000
p2=polyfit(x1,y0,2)
p2 =
32.0000 -147.2000 181.6000
p3=polyfit(x1,y0,3)
p3 =
2.0000 -1.0000 5.0000 10.0000
plot(x1,y0,‘o’)
hold on
y1=polyval(p1,x1)
y1 =
1.0e+03 *
1 至 8 列
-0.3176 -0.1128 0.0920 0.2968 0.5016 0.7064 0.9112 1.1160
9 至 10 列
1.3208 1.5256
plot(x1,y1)
y2=polyval(p2,x1)
y2 =
1.0e+03 *
1 至 8 列
0.0664 0.0152 0.0280 0.1048 0.2456 0.4504 0.7192 1.0520
9 至 10 列
1.4488 1.9096
plot(x1,y2)
y3=polyval(p3,x1)
y3 =
1.0e+03 *
1 至 8 列
0.0160 0.0320 0.0700 0.1420 0.2600 0.4360 0.6820 1.0100
9 至 10 列
1.4320 1.9600
plot(x1,y3)
在这里插入图片描述
2.插值运算
插值运算根据数据点的规律,找到1个多项式表达式可以连接的2个点,插值得出相邻数据点之间的数值。当工程中有一些离散点的数值,通过插值运算可以得到近似的连续过程,插值运算广泛使用于信号和图像处理领域。
插值运算时有2个条件:只能在自变量的取值范围内进行插值;自变量必须是单调的。
(1)一维插值。一维插值是指对1个自变量的插值,interp1函数是用来进行一维插值的。
语法:
yi=interp1(x.y,xi,‘method’")
说明: x、y为行向量;xi是插值范围内任意点的x坐标,yi则是插值运算后的对应y坐标。method是插值函数的类型,“linear”为线性插值(默认);“nearest”为用最接近的相邻点插值;“spline”为三次样条插值;“cubic”为三次插值。

在这里插入图片描述
在这里插入图片描述由上图可以看出三次样条插值的结果更精确,线性插值是用直线连接两个相邻的点估计出中间的数据取值的,三次样条插值计算较复杂。
(2)二维插值。二维插值是指对两个自变量的插值,可以简单地理解为连续三维空间函数的取值计算。interp2函数是用来进行二维插值的,常用来计算随平面位置变化的温度、压力和湿度等。
语法:zi=interp2(x,y,z,xi,yi, ‘method’)
说明: method为插值函数的类型,“linear”为双线性插值(默认);“nearest”为用最接近点插值;“cubic”为三次插值。
3.拟合与插值运算图形界面
在这里插入图片描述

在这里插入图片描述在MATLAB界面的“APPS”面板中有拟合和插值的图标按钮,可以在图形界面中进行拟合与插值运算。
如上图所示为拟合图形界面,在左侧“X data”选择变量x1,“Y data”选择变量yo,在右边“Degree”选择2(2阶拟合),则在左侧下面“Results”中就显示出2阶拟合的多项式表达式,在右侧的坐标系中绘制了相应的曲线,在最下面的表格中显示了拟合的各种参数;在右边还可以选择不同的拟合算法,图中选择的是多项式“Polynomial”。
可以将拟合的结果进行保存,保存的文件为“. sfit”扩展名。


总结

本次学习内容:
1、多项式的求值、求根和部分分式展开
2、多项式的乘除法和微积分
3、多项式拟合和插值
文章内容来自MATLAB实用教程/郑阿奇主编,ISBN 978-7-121-29138-8。若有侵权行为,请联系我自行删除。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力努力再努力@李

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值