数学建模社区-数学中国

标题: Matlab中fplot函数! [打印本页]

作者: 残伤    时间: 2011-3-16 20:36
标题: Matlab中fplot函数!
Matlab中fplot函数是怎么回事啊,求高手解释!
作者: 厚积薄发    时间: 2011-3-16 21:16
fplot函数

fplot

函数功能
在指定的范围内绘制函数图像

使用方法
fplot在指定的范围内绘制函数图像,函数必须是y=f(x)的形式,其中x是一个指定范围limits的向量,y是和x有相同大小的向量并包含在点x处的值。如果对一个给定的x值,函数返回多于一个值,则y是每列包含f(x)的每一个分量的矩阵。

fplot(fun,limits)
在指定的范围limits内画出函数名为fun的图像。其中limits是一个指定x轴范围的向量[xmin xmax]或者是x轴和y轴范围的向量[xmin xmax ymin ymax]。
fun可能为:
1、M文件函数名字。
2、可能传递给eval函数的带变量x的字符串,比如'sin(x)', 'diric(x,10)'或 '[sin(x),cos(x)]'。
3、M文件函数或匿名函数的函数句柄。
对于向量x的每个元素,函数f(x)必须返回一个行向量。比如,如果f(x)返回向量[f1(x),f2(x),f3(x)],输入参量为x=[x1;x2],则函数f(x)返回矩阵:
f1(x1) f2(x1) f3(x1)
f1(x2) f2(x2) f3(x2)

fplot(fun,limits,LineSpec)
用指定的线型LineSpec画出函数fun。

fplot(fun,limits,tol)
用相对误差值为tol画出函数fun。(默认相对误差为2e-3,0.2%de精度)

fplot(fun,limits,tol,LineSpec)
用指定的相对误差值为tol和指定的线型LineSpec画出函数fun。

fplot(fun,limits,n)
当n>=1时,则至少画出n+1个点,默认的n为1。最大步长不超过(1/n)*(xmax-xmin)。

fplot(fun,lims,...)
允许可选参数tol,n,和LineSpec以任意组合方式输入。

fplot(axes_handle,...)
用指定句柄axes_handle代替当前坐标轴句柄来画图。

[X,Y] = fplot(fun,limits,...)
返回横坐标与做坐标的值赋给X和Y,此时 fplot不给出图形,若想画出,可用命令plot(X,Y)。

应用举例
画[-2,2]区间的双曲正切函数:
fnch = @tanh;
fplot(fnch,[-2 2])

建一个M文件,myfun,函数返回一个两列的矩阵:
function Y = myfun(x)
Y(:,1) = 200*sin(x(:))./x(:);
Y(:,2) = x(:).^2;
创建一个myfun函数句柄:
fh = @myfun;
画带区间的图:
fplot(fh,[-20 20])

附加示例
通过函数句柄画图的例子,一个是MATLAB自带的函数,另一个是匿名函数:
hmp = @humps;
subplot(2,1,1);fplot(hmp,[0 1])
sn = @(x) sin(1./x);
subplot(2,1,2);fplot(sn,[.01 .1])

作者: 厚积薄发    时间: 2011-3-16 21:17
fplot函数

fplot

函数功能
在指定的范围内绘制函数图像

使用方法
fplot在指定的范围内绘制函数图像,函数必须是y=f(x)的形式,其中x是一个指定范围limits的向量,y是和x有相同大小的向量并包含在点x处的值。如果对一个给定的x值,函数返回多于一个值,则y是每列包含f(x)的每一个分量的矩阵。

fplot(fun,limits)
在指定的范围limits内画出函数名为fun的图像。其中limits是一个指定x轴范围的向量[xmin xmax]或者是x轴和y轴范围的向量[xmin xmax ymin ymax]。
fun可能为:
1、M文件函数名字。
2、可能传递给eval函数的带变量x的字符串,比如'sin(x)', 'diric(x,10)'或 '[sin(x),cos(x)]'。
3、M文件函数或匿名函数的函数句柄。
对于向量x的每个元素,函数f(x)必须返回一个行向量。比如,如果f(x)返回向量[f1(x),f2(x),f3(x)],输入参量为x=[x1;x2],则函数f(x)返回矩阵:
f1(x1) f2(x1) f3(x1)
f1(x2) f2(x2) f3(x2)

fplot(fun,limits,LineSpec)
用指定的线型LineSpec画出函数fun。

fplot(fun,limits,tol)
用相对误差值为tol画出函数fun。(默认相对误差为2e-3,0.2%de精度)

fplot(fun,limits,tol,LineSpec)
用指定的相对误差值为tol和指定的线型LineSpec画出函数fun。

fplot(fun,limits,n)
当n>=1时,则至少画出n+1个点,默认的n为1。最大步长不超过(1/n)*(xmax-xmin)。

fplot(fun,lims,...)
允许可选参数tol,n,和LineSpec以任意组合方式输入。

fplot(axes_handle,...)
用指定句柄axes_handle代替当前坐标轴句柄来画图。

[X,Y] = fplot(fun,limits,...)
返回横坐标与做坐标的值赋给X和Y,此时 fplot不给出图形,若想画出,可用命令plot(X,Y)。

应用举例
画[-2,2]区间的双曲正切函数:
fnch = @tanh;
fplot(fnch,[-2 2])

建一个M文件,myfun,函数返回一个两列的矩阵:
function Y = myfun(x)
Y(:,1) = 200*sin(x(:))./x(:);
Y(:,2) = x(:).^2;
创建一个myfun函数句柄:
fh = @myfun;
画带区间的图:
fplot(fh,[-20 20])

附加示例
通过函数句柄画图的例子,一个是MATLAB自带的函数,另一个是匿名函数:
hmp = @humps;
subplot(2,1,1);fplot(hmp,[0 1])
sn = @(x) sin(1./x);
subplot(2,1,2);fplot(sn,[.01 .1])

作者: Sad___Loyal__    时间: 2011-3-16 23:39
看我照片。你认识我吗?
作者: 残伤    时间: 2011-3-17 15:56
回复 厚积薄发 的帖子

多谢,fplot和plot有什么不一样的吗?
作者: 吴潇漾    时间: 2011-3-26 16:21
回复 残伤 的帖子

不一样的,fplot是直接画出函数图像,而plot是先生成图像上的一系列点,再将这些点连起来。图像最终看起来差不多,但是若是plot函数点的间隔大的话就会看到出来。
作者: 残伤    时间: 2011-3-26 17:50
回复 吴潇漾 的帖子

谢谢!




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5