MATLAB在图形绘制与函数单调性和最极值中的应用.docx

上传人:b****7 文档编号:8698162 上传时间:2023-02-01 格式:DOCX 页数:18 大小:288.67KB
下载 相关 举报
MATLAB在图形绘制与函数单调性和最极值中的应用.docx_第1页
第1页 / 共18页
MATLAB在图形绘制与函数单调性和最极值中的应用.docx_第2页
第2页 / 共18页
MATLAB在图形绘制与函数单调性和最极值中的应用.docx_第3页
第3页 / 共18页
MATLAB在图形绘制与函数单调性和最极值中的应用.docx_第4页
第4页 / 共18页
MATLAB在图形绘制与函数单调性和最极值中的应用.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

MATLAB在图形绘制与函数单调性和最极值中的应用.docx

《MATLAB在图形绘制与函数单调性和最极值中的应用.docx》由会员分享,可在线阅读,更多相关《MATLAB在图形绘制与函数单调性和最极值中的应用.docx(18页珍藏版)》请在冰豆网上搜索。

MATLAB在图形绘制与函数单调性和最极值中的应用.docx

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=

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1