matlab中区分fplot和plot,以及作图时sin(1./x)需要点除而不是除

fplot命令也是MATLAB提供的一个画图命令,它是一个专门用于画一元函数图像的命令。

它的基本用法如下
matlab中区分fplot和plot,以及作图时sin(1./x)需要点除而不是除_第1张图片

plot命令也可以画一元函数图像,为什么还要引入fplot 命令呢?

关于plot命令的描述请看我的上一篇文章https://blog.csdn.net/qq_45721778/article/details/107449589

这是因为plot命令是依据我们给定的数据点来作图的,而在实际情况中,一般并 不清楚函数的具体情况,因此依据我们所选取的数据点作的图像可能会忽略真实函数的某些重要特性,给科研工作造成不可估计的损失。MATLAB提供了专门绘制一元函数图像的fplot 命令,它用来指导数据点的选取,通过其内部自适应算法,在函数变化比较平稳处,它所取的数据点就会相对稀疏一点,在函数变化明显处所取的数据点就会自动密一些,因此用fplot 命令所作出的图像要比用plot命令作出的图像光滑准确。

下面我们看一个例子

分别用fplot命令与plot命令作出函数y=sin(1/x),x∈[ 0.01,0.02 ]的图像。

>> x=linspace(0.01,0.02,50);
>> y=sin(1./x);
>> subplot(2,1,1),plot(x,y)
>>> subplot(2,1,2),fplot(@(x)sin(1./x),[0.01,0.02])

做出来的图形为
matlab中区分fplot和plot,以及作图时sin(1./x)需要点除而不是除_第2张图片

从图中我们可以看出,在曲线平缓处,两个曲线相似,但是在函数变化明显处,使用fplot作图就比plot作图要精确的多

第二个问题,为什么要使用点除而不是除

如果使用除,就会发生如下情况
matlab中区分fplot和plot,以及作图时sin(1./x)需要点除而不是除_第3张图片
这是因为linspace命令的具体使用格式为linspace(a,b,n), 作用是将已知区间[a,b]作n等分,返回值为各节点的坐标。

matlab中区分fplot和plot,以及作图时sin(1./x)需要点除而不是除_第4张图片

除是对一个矩阵整体的运算,点除是对矩阵中每一个元素的运算

sin(1/x)是对区间中的每一个x都做了运算,所以要进行点除

你可能感兴趣的:(matlab,matlab)