MATLAB在图形绘制与函数单调性和最极值中的应用汇总Word文档格式.docx
《MATLAB在图形绘制与函数单调性和最极值中的应用汇总Word文档格式.docx》由会员分享,可在线阅读,更多相关《MATLAB在图形绘制与函数单调性和最极值中的应用汇总Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
%显示网格
图2.问题2程序图形
命令形式3:
plot(x1,y1,x2,y2,…)
问题3.在同一图像窗口绘出三个函数y=sin2x,
,
的图形,-3≤x≤2.
解MATLAB的命令为:
x=-2:
0.1:
3;
%取值范围
plot(x,sin(2*x),'
.'
x,x.^2,'
k-'
x,x,'
k'
);
%绘制图形
legend('
sin(2*x)'
'
x^2'
x'
%生成图例
图3.问题3程序图形
(2)图形的标注
MATLAB可以在绘出的图形上加各种标注级文字说明。
他们的实现命令如下:
①图名标注title
命令形式:
title(‘string’)
②坐标轴标注xlabel,ylabel,zlabel
xlabel(‘string’)或ylabel(‘string’)或zlabel(‘string’)
③图形标注text,gtext
text(x,y,’string’)或text(x,y,z,’string’)
④图例标注legend
legend(‘string’,‘string’,…)
问题4、在同一坐标系中绘出两个函数
的图形,自变量范围为-2≤x≤2;
函数
为红色实线,函数
为洋红色虚线,并加注标题、坐标轴和图例标注。
解建立命令文件exam5.m:
clf;
%命令符
2;
y1=cos(2*x);
%原函数1
y2=x;
%原函数2
plot(x,y1,'
-r'
x,y2,'
-.m'
%绘制图形
%显示网格
title('
曲线y=cos(2x)与y=x'
%标注标题
xlabel('
x轴'
%x轴标注
ylabel('
y轴'
%y轴标注
x00=-2:
%取值范围
y00=[1.5,1.0,0,0.56,-1.5];
holdon;
%图形保持
plot(x00,y00,'
bp'
%绘制5点图
y=cos(2x)'
y=x'
5点图'
%图形标注
执行命令文件exam5.m,其程序运行结果如图。
图4.问题4程序图形
(3)一个图形中多个子图的绘制
可以在MATLAB图形窗口中显示多个图形,要实现该功能就要利用函数subplot.
subplot(m,n,p)
例5.把一个图形窗口分为两个子图,每个子图绘制不同的图形。
解MATLAB的命令如下:
0.2:
%取值范围
y1=x+sin(x);
%原函数1
y2=sin(x)./x;
%原函数2
subplot(1,2,1);
%窗口分割
-m.'
%绘制图形
y=x+sinx'
subplot(1,2,2);
%窗口分割
plot(x,y2,'
-rp'
%绘制图形
y=sinx/x'
%标注标题
图5.问题5程序图形
(4)绘制数值函数二维曲线的命令fplot
fplot(fun,[xmin,xmax])
(5)绘制符号函数二维曲线的命令ezplot
ezplot(fun,[xmin,xmax])
问题6、绘出
在[0,
]间的图形.
解MATLAB命令为:
symst;
%定义符号变量
ezplot('
2/3*exp(-t/2)*cos(3/2*t)'
[0,4*pi])%符号函数绘制图形
图6.问题6程序图形
2、MATLAB的空间曲线绘图
(1)三维空间曲线命令plot3
命令形式1:
plot3(x,y,z)
命令形式2:
plot3(x,y,z,’string’)
plot3(x1,y1,z1,’string’,x2,y2,z2,’string’,…)
问题7、绘制螺旋线
的图像。
解在MATLAB中的命令如下:
t1=0:
pi/25:
10*pi;
%设置取值范围
x1=sin(t1);
%参数方程1
y1=cos(t1);
%参数方程2
z1=t1;
%参数方程3
plot3(x1,y1,z1,'
r'
%绘制曲线
螺旋线'
%x轴标注
%y轴标注
zlabel('
z轴'
%z轴标注
图7.问题7程序图形
3、MATLAB的空间曲面绘制
二元函数
的图形是三维空间曲面,空间曲面图形在帮助人们了解二元函数特性上具有较大作用。
现介绍绘制空间曲面图形的命令。
(1)meshgrid命令
Meshgrid的调用形式是:
①[X,Y]=meshgrid(x,y),绘制二维图形时生成小矩阵的格点;
②[X,Y]=meshgrid(x),等价于[X,Y]=meshgrid(x,x);
③[X,Y,Z]=meshgrid(x,y,z),绘制三维图形时生成空间曲面的格点;
④[X,Y,Z]=meshgrid(x),等价于[X,Y,Z]=meshgrid(x,x,x).
(2)三维网格图命令mesh
函数mesh的命令形式如下:
①mesh(X,Y,Z),X,Y,Z是同维的矩阵;
②mesh(x,y,Z),x,y是向量,而Z是矩阵,等价于
③mesh(Z),若提供参数x,y,等价于mesh(x,y,Z),否则默认x=1:
n,y=1:
m.
问题8、分别用指令mesh,meshc,meshz绘制函数
在-8≤x,y≤8上的图形。
解在MATLAB中的程序如下:
t=-8:
0.3:
8;
[x,y]=meshgrid(t);
%生成小矩形的格点
r=sqrt(x.^2+y.^2)+eps;
%与程序下一行共同构成所求函数
z=sin(r)./r;
%与程序上一行共同构成所求函数
subplot(1,3,1);
%图形分割
meshc(x,y,z);
%用meshc命令,生成图形的同时,生成曲面的等高线
meshc'
),axis([-88-88-0.50.8]);
%标题标注及坐标控制
subplot(1,3,2);
%图形分割
meshz(x,y,z);
%用meshz命令,生成图形的同时,生成曲面下方的长方形的台柱
meshz'
subplot(1,3,3);
%图形分割
mesh(x,y,z);
%用mesh命令,生成三维网格图形
mesh'
%标题标注及坐标控制
图8.问题8程序图形
(3)三维表面图命令surf
Surf的调用方式与mesh相同,与mesh不同的是surf绘制的是曲面而不是网格。
问题9、绘出函数
,-1≤x,y≤1的三维网格图和三维表面图。
t=-1:
1;
%取值范围
%生成网格
z=3-x.^2-y.^2;
%原函数
subplot(1,2,1),mesh(x,y,z);
%分区域绘图
网格图'
%标注标题
subplot(1,2,2),surf(x,y,z);
表面图'
图9.问题9程序图形
(4)球面的绘制
在MATLAB中用命令sphere来绘制球面,其使用形式为:
sphere(n)
[x,y,z]=sphere(n)
问题10、试绘制函数
与
的图形。
解MATLAB中的命令如下:
%绘制半径为1的球面
v=[-22-22-22];
%设置参数
%图形分割
sphere(30),title('
半径为1的球面'
%绘制图形及标注标题
axis(v);
%对图形坐标进行设置
%绘制半径为2的球面
[x,y,z]=sphere(30);
%设置参数
%图形分割
surf(2*x,2*y,2*z);
%绘制图形
半径为2的球面'
%标注标题
%对图形坐标进行设置
图10.问题10程序图形
(5)色彩控制
①colormap
colormap(m)
问题11、着色性能的例子
z=peaks(20);
colormap(copper);
surf(z);
shadingflat;
shadinginterp;
图11.问题11程序图形
二、MATLAB在函数单调性和最极值中的应用
MATLAB中提供的特殊函数diff可以很快的求出函数的导数。
diff函数用于对符号表达式求导数,其调用格式为:
①diff(f):
没有指定变量和导数阶数,则系统按findsym函数指示的默认变量对符号表达式s求一阶导数;
②diff(f,v):
以v为自变量,对符号表达式f求一阶导数;
③diff(f,n):
按findsym函数指示的默认变量对符号表达式f求n阶导数;
④diff(f,v,n):
以v为自变量对符号表达式f求n阶导数。
另外,求一元函数的极值问题:
fminbnd(fun,x1,x2)
求多元函数极值问题
fminsearch(fun,x0)
fminunc(fun,x0)
下面就以上问题分别举例说明
问题12、由导函数的图象确定函数
的单调区间。
解函数的定义域为(−∞,+∞).下面用Matlab求解
symsx%定义符号变量
f=2*x^3-9*x^2+12*x-6;
%设定函数.
f1=diff(f);
%求f的导数.
x=solve(f1)%解方程求驻点以确定绘图区间.
f1%显示f1
求得驻点x=[1][2]
函数的导数f1=6*x^2-18*x+12
fplot('
6*x^2-18*x+12'
[0,3])%绘制f1的图形
图12.问题12程序图形
由图可见,当x<
1或x>
2时,
;
当1<
x<
2时,
;
所以
的单调增加区间为:
和
,单调减少区间为:
。
问题13、求函数
的单调区间与极值。
解:
求可导函数的单调区间与极值,就是求导函数的正负区间与正负区间的分界点,利用matlab解决该问题,我们可以先求出导函数的零点,再画出函数图象,根据图象可以直观看出函数的单调区间与极值.输入命令:
symsx;
f=x.^3-6.*x.^2+9.*x+3;
df=diff(f);
%利用diff函数求导
s=solve(df)%求解导函数
gridon%显示网格
得结果:
s=[1][3]
画出函数图象:
ezplot(f,[0,4]);
gridon%绘制图形且显示网格
图13.1问题13程序图形
从图上看,f(x)的单调增区间为(-∞,1),(3,+∞),单调减区间是(1,3),极大值f
(1)=7,极小值f(3)=3.
求函数的单调区间,可用以下程序:
f=x-log(1+x)%原函数
ezplot(f)%绘制图形
gridon%显示网格
可得结果s=0.其程序运行结果如图。
图13.2问题13程序图形
从图上看,f(x)的单调增区间为(0,+∞),单调减区间是(-∞,0),极小值f(0)=0.
问题14、用Matlab求函数
的极值。
解函数的定义域为
,函数为奇函数.
先用fplot语句绘出函数的图形
x/(1+x^2)'
[-4,4])%绘制图形
图14.问题14程序图形
易见函数既有极小值点(在-1附近),又有极大值点(在1附近).先求极小值,输入程序:
Clear%清除变量
x=fminbnd('
-3,0)%用fminbnd函数求解极小值点
得出极小值点x=-1.0000,又由
subs('
-1)%求极小值
求出极小值
,再求极大值,输入程序
[x,f]=fminbnd('
-x/(1+x^2)'
0,3)%求极大值点及极大值
得出极大值点x=1,极大值
问题15.区间
内的最小值。
解ATLAB命令如下:
ff='
x+3*(x^2+cos(x))'
xmin=fmin(ff,-1,1)%求最小值
其运行结果为xmin=-0.3275
问题16.数
在区间
的最小值点。
f=inline('
x-1/x+5'
%定义一个语句函数
fminbnd(f,-10,-1)%求函数在(-10,1)内的最小值点
fminbnd(f,1,10)%求函数在(1,10)内的最小值点
其运行结果如下:
ans=-9.9999ans=1.0001
问题17.函数
内的极小值点和极小值。
f='
(x-3)^2-1'
fminbnd(f,0,5)%运用函数求解极小值点
其结果为:
ans=3
即极小值点为x=3
[x,y]=fminbnd(f,0,5)%求解极小值
x=3y=-1
即函数在x=3处取得极小值-1
三、总结
通过以上对“matlab在图形绘制及函数单调性和极值的应用”的分析。
我们可以认识到MATLAB中强大的绘图功能以及可靠的数值计算和符号计算功能,,它的应用几乎涉及各个领域。
因为它的存在很多的问题也变得十分简单了。
在绘制图形时我们可以用它的各种绘图函数,其中最常用的有绘制二维曲线函数plot,在三维图形中用到了mesh函数和surf函数,当然也有其他的函数。
对于函数的单调性,我们主要用到的就是MATLAB中的求导函数diff(f),而关于函数最极值的问题中主要用到的就是函数fminbnd(fun,x1,x2)。
四、课程体会
终于我完成了本次课程论文,通过这次完成论文的过程我学到了许多东西。
第一次写课程论文,所以起初我真的不知道该从何写起,连老师那句要有自己的思想也无法体会。
慢慢的经过资料的查阅,自己思考,以及同学的帮助,我开始有了自己的想法。
经过一周的努力,我的论文也慢慢成形。
起初我以为matlab和我们所学的C语言应该没多大的差距,可是通过这一学期的学习和这次论文的完成,我认识到了MATLAB的功能强大性,以及运用的广泛性,而且我相信本次论文经历会在我以后的学习中会有很大的帮助。
最后,向老师的辛勤指导及教学表示深深地谢意!
参考文献
1.刘卫国.MATLAB程序设计与应用[M].北京:
高等教育出版社.2006.7
2.王文波.数学建模及其基础知识详解[M].武汉:
武汉大学出版社.2006.5
3.赵静,但琦.数学建模与数学实验[M].北京:
高等教育出版社.2008.1
4.曾庆柏.应用高等数学[M].北京:
高等教育出版社.2008.6
5.MATLAB平台上函数单调性与凹凸性判定的数学实验[M].洛阳工业高等专科学校学报.2003.6