MATLAB在图形绘制与函数单调性和最极值中的应用.docx
- 文档编号:8698162
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:18
- 大小:288.67KB
MATLAB在图形绘制与函数单调性和最极值中的应用.docx
《MATLAB在图形绘制与函数单调性和最极值中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在图形绘制与函数单调性和最极值中的应用.docx(18页珍藏版)》请在冰豆网上搜索。
MATLAB在图形绘制与函数单调性和最极值中的应用
《MATLAB语言》课程论文
MATLAB在图形绘制与函数单调性和最极值中的应用
姓名:
学号:
学院:
班级:
日期:
指导老师:
MATLAB在图形绘制与函数单调性和最极值中的应用
摘要:
MATLAB是一套非常强大的数值计算软件,可靠的数值计算和符号计算功能、优越的绘图功能等突出的优点,使其风靡全球,运用MATLAB中强大的函数工具箱可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图形、图像处理等若干个领域的计算和图形显示功能。
毫无疑问,对于图形绘制及数学中关于函数单调性和最极值中的问题,也可以通过MATLAB轻松的解决。
关键词:
MATLAB 图形绘制 函数单调性 最值 极值
在如今的科学研究和工程应用中,我们会遇到各种各样的问题,其中最基本的就是关于图形绘制和各种数学方面的问题,而MATLAB中强大的绘图功能以及可靠的数值计算和符号计算功能,将使这些问题可以得到更好的解决,下面我们就分别对MATLAB在此方面的应用进行分析:
一、MATLAB在图形绘制中的应用
1、MATLAB的二维曲线绘制
(1)基本绘图指令plot
MATLAB软件中指令plot是最简单且使用最广泛的一个线性绘图指令,利用该指令可以会出折线、曲线和参数方程曲线的图形。
Plot绘图命令有如下一些常用形式:
命令形式1:
plot(y)
问题1.绘出向量[3,8,6,4,1]的图形。
解 MATLAB的命令为
y=[3,8,6,4,1]; %数据
plot(y) %绘图
图1.问题1程序图形
命令形式2:
plot(x,y)
问题2.绘出函数
在区间-4≤x≤4的图形.
解 MATLAB的命令为
x=-5:
1:
5; %设置x的取值
y=cos(x.^2); %原函数
plot(x,y); %绘图
gridon; %显示网格
图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; %命令符
x=-2:
1:
2; %取值范围
y1=cos(2*x); %原函数1
y2=x; %原函数2
plot(x,y1,'-r',x,y2,'-.m'); %绘制图形
gridon; %显示网格
title('曲线y=cos(2x)与y=x'); %标注标题
xlabel('x轴'); %x轴标注
ylabel('y轴'); %y轴标注
x00=-2:
2; %取值范围
y00=[1.5,1.0,0,0.56,-1.5]; %取值范围
holdon; %图形保持
plot(x00,y00,'bp'); %绘制5点图
legend('y=cos(2x)','y=x','5点图'); %图形标注
执行命令文件exam5.m,其程序运行结果如图。
图4.问题4程序图形
(3)一个图形中多个子图的绘制
可以在MATLAB图形窗口中显示多个图形,要实现该功能就要利用函数subplot.
命令形式:
subplot(m,n,p)
例5.把一个图形窗口分为两个子图,每个子图绘制不同的图形。
解 MATLAB的命令如下:
clf; %命令符
x=-2:
0.2:
2; %取值范围
y1=x+sin(x); %原函数1
y2=sin(x)./x; %原函数2
subplot(1,2,1); %窗口分割
plot(x,y1,'-m.'); %绘制图形
gridon; %显示网格
title('y=x+sinx'); %标注标题
subplot(1,2,2); %窗口分割
plot(x,y2,'-rp'); %绘制图形
gridon; %显示网格
title('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’)
命令形式3:
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'); %绘制曲线
title('螺旋线'); %标注标题
xlabel('x轴'); %x轴标注
ylabel('y轴'); %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命令,生成图形的同时,生成曲面的等高线
title('meshc'),axis([-88-88-0.50.8]);%标题标注及坐标控制
subplot(1,3,2); %图形分割
meshz(x,y,z); %用meshz命令,生成图形的同时,生成曲面下方的长方形的台柱
title('meshz'),axis([-88-88-0.50.8]);
subplot(1,3,3); %图形分割
mesh(x,y,z); %用mesh命令,生成三维网格图形
title('mesh'),axis([-88-88-0.50.8]);%标题标注及坐标控制
图8.问题8程序图形
(3)三维表面图命令surf
Surf的调用方式与mesh相同,与mesh不同的是surf绘制的是曲面而不是网格。
问题9、绘出函数
,-1≤x,y≤1的三维网格图和三维表面图。
解 MATLAB的命令为:
t=-1:
0.1:
1; %取值范围
[x,y]=meshgrid(t); %生成网格
z=3-x.^2-y.^2; %原函数
subplot(1,2,1),mesh(x,y,z); %分区域绘图
title('网格图'); %标注标题
subplot(1,2,2),surf(x,y,z); %分区域绘图
title('表面图'); %标注标题
图9.问题9程序图形
(4)球面的绘制
在MATLAB中用命令sphere来绘制球面,其使用形式为:
命令形式1:
sphere(n)
命令形式2:
[x,y,z]=sphere(n)
问题10、试绘制函数
与
的图形。
解 MATLAB中的命令如下:
%绘制半径为1的球面
v=[-22-22-22]; %设置参数
subplot(1,2,1); %图形分割
sphere(30),title('半径为1的球面'); %绘制图形及标注标题
axis(v); %对图形坐标进行设置
%绘制半径为2的球面
[x,y,z]=sphere(30); %设置参数
subplot(1,2,2); %图形分割
surf(2*x,2*y,2*z); %绘制图形
title('半径为2的球面'); %标注标题
axis(v); %对图形坐标进行设置
图10.问题10程序图形
(5)色彩控制
①colormap
命令形式:
colormap(m)
问题11、着色性能的例子
解 在MATLAB中的命令如下:
z=peaks(20);colormap(copper);
subplot(1,3,1);surf(z);
subplot(1,3,2);surf(z);shadingflat;
subplot(1,3,3);surf(z);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)
求多元函数极值问题
命令形式1:
fminsearch(fun,x0)
命令形式2:
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 ;所以 的单调增加区间为: 和 ,单调减少区间为: 。 问题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. 求函数的单调区间,可用以下程序: symsx %定义符号变量 f=x-log(1+x) %原函数 df=diff(f); %利用diff函数求导 s=solve(df) %求解导函数 ezplot(f) %绘制图形 gridon %显示网格 可得结果s=0.其程序运行结果如图。 图13.2问题13程序图形 从图上看,f(x)的单调增区间为(0,+∞),单调减区间是(-∞,0),极小值f(0)=0. 问题14、用Matlab求函数 的极值。 解 函数的定义域为 ,函数为奇函数. 先用fplot语句绘出函数的图形 fplot('x/(1+x^2)',[-4,4]) %绘制图形 图14.问题14程序图形 易见函数既有极小值点(在-1附近),又有极大值点(在1附近).先求极小值,输入程序: Clear %清除变量 x=fminbnd('x/(1+x^2)',-3,0) %用fminbnd函数求解极小值点 得出极小值点x=-1.0000,又由 subs('x/(1+x^2)',-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.数 在区间 和 的最小值点。 解MATLAB命令为: f=inline('x-1/x+5'); %定义一个语句函数 fminbnd(f,-10,-1) %求函数在(-10,1)内的最小值点 fminbnd(f,1,10) %求函数在(1,10)内的最小值点 其运行结果如下: ans=-9.9999 ans=1.0001 问题17.函数 在区间 内的极小值点和极小值。 解 MATLAB命令为: f='(x-3)^2-1'; %原函数 fminbnd(f,0,5) %运用函数求解极小值点 其结果为: ans=3 即极小值点为x=3 [x,y]=fminbnd(f,0,5) %求解极小值 其结果为: x=3 y=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图形 绘制 函数 调性 极值 中的 应用