欢迎来到天天文库
浏览记录
ID:9375413
大小:236.81 KB
页数:18页
时间:2018-04-29
《精通matlab—综合辅导与指南chap13 数值分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第13章数值分析每当难以对一个函数进行积分、微分或者解析上确定一些特殊的值时,就可以借助计算机在数值上近似所需的结果。这在计算机科学和数学领域,称之为数值分析。至此,可以猜到,MATLAB提供了解决这些问题的工具。本章将介绍这些工具的使用。13.1绘图说到绘图,只要计算函数在某一区间的值,并且画出结果向量,这样就得到了函数的图形。在大多数情况下,这就足够了。然而,有时一个函数在某一区间是平坦的并且无激励,而在其它区间却失控。在这种情况下,运用传统的绘图方法会导致图形与函数真正的特性相去甚远。MATLAB提
2、供了一个称为fplot的巧妙的绘图函数。该函数细致地计算要绘图的函数,并且确保在输出的图形中表示出所有的奇异点。该函数的输入需要知道以字符串表示的被画函数的名称以及2元素数组表示的绘图区间。例如:>>fplot(‘humps‘,[02])>>title(‘FPLOTOFHUMPS‘)在0和2之间计算函数humps,并显示该函数的图形。(见图13.1)。FPLOTOFHUMPS100806040200-2000.511.52图13.1函数humps的图形在这个例子中,‘humps‘是MATLAB的M文件函数
3、。functiony=humps(x)%HUMPSAfunctionusedbyQUADDEMO,ZERODEMOandFPLOTDEMO.%HUMPS(X)isafunctionwithstrongmaximanearx=.3andx=.9.%SeeQUADDEMO,ZERODEMOandFPLOTDEMO.%Copyright(c)1984-93byTheMathWorks,Inc.y=1./((x-.3).^2+.01)+1./((x-.9).^2+.04)-6;fplot适用于任何具有单输入和单输
4、出向量的函数M文件。即如同humps,输出变量y返回一个与输入x同样大小的数组,在数组到数组意义上y和x有联系。在使用fplot(以及其它数值分析函数)的过程中,最普遍犯的错误是忘记把函数名加上引号。即fplot需要知道字符串形式的函数名。如果输入fplot(humps,[0,2]),MATLAB认为humps是工作空间中的一个变量,而不是函数的名称。注意把变量humps定义为所需要的字符串,就可避免这个问题。>>humps=‘humps‘;>>fplot(hump,[02])这时,MATLAB从变量hu
5、mps中获得字符串‘humps‘。−x对于可表示成一个字符串的简单的函数,如y=2esin()x,fplot绘制这类函数的曲线时,不用建立M文件,只需把x当作自变量,把被绘图的函数写成一个完整的字符串。>>f=‘2*exp(-x).*sin(x)‘;−x式中,运用数组乘法定义了函数fx()=2esin()x>>fplot(f,[08]);>>title(f),xlabel(‘x‘)2*exp(-x).*sin(x)0.70.60.50.40.30.20.10-0.102468x−x图13.2fx()=2e
6、sin()x的曲线在区间0≤x≤8绘出上述函数,产生如图13.2所示的图形。除了这些基本特性,函数fplot还有很多强大的功能,有关详细的信息,参阅《MATLAB参考指南》或在线帮助。13.2极小化作图除了提供视觉信息外,还常常需要确定一个函数的其它更多的特殊属性。在许多应用中,特别感兴趣的是确定函数的极值,即最大值(峰值)和最小值(谷值)。数学上,可通过确定函数导数(斜率)为零的点,解析上求出这些极值点。检验humps的图形在峰值和谷值点上的斜率就很容易理解这个事实。显然,如果定义的函数简单,则这种方法
7、常常奏效。然而,即使很多容易求导的函数,也常常很难找到导数为零的点。在这种情况下,以及很难或不可能解析上求得导数的情况下,必须数值上寻找函数的极值点。MATLAB提供了两个完成此功能的函数fmin和fmins。这两个函数分别寻找一维或n维函数的最小值。这里仅讨论fmin。有关fmins的详细信息,参阅《MATLAB参考指南》。因为f(x)的最大值等于-f(x)的最小值,所以,上述fmin和fmins可用来求最大值和最小值。如果还不清楚,把上述图形倒过来看,在这个状态下,峰值变成了谷值,而谷值则变成了峰值。
8、为了解释求解一维函数的最小值和最大值,再考虑上述例子。从图13.2可知,在xmax=0.7附近有一个最大值,并且在xmin=4附近有一个最小值。而这些点的解析值为:xmax=π/4≈0785.和xmin=5π/4≈393.。为了方便,用文本编辑器编写一个脚本M文件,并用fmin寻出数值上极值点,给出函数主体如下:%ex_fmin.mfn=‘2*exp(-x)*sin(x)‘;%definefunctionforminxmin=
此文档下载收益归作者所有