[整理]matlab绘制二元函数图形.
- 格式:doc
- 大小:382.50 KB
- 文档页数:21
表格一表格一数据整理ρ1为密度,ρ2为干密度,s为含沙量,w为含水量s= [0 0 0 0 0 0,20 20 20 20 20 20,40 40 40 40 40 40,60 60 60 60 60 60,70 70 70 70 70 70,80 80 80 80 100,100 100 100];w=[10 11.5 13.5 15 20 25,10 11.5 13.5 15 20 25,10 11.5 13.5 15 20 25,10 11.5 13.5 15 20 25,10 11.5 13.5 15 20 25,10 11.5 13.5 15 10,11.5 13.5 15];ρ1=[ 1.46 1.516 1.589 1.64 1.87 1.84,1.732 1.765 1.827 1.896 1.912 1.91,1.785 1.924 2.036 2.033 2.059 1.967,2.033 2.141 2.15 2.164 2.103 2.138,2.068 2.21 2.242 2.234 2.141 2.204,2.034 2.185 2.179 2.186 1.652,1.654 1.641 1.643]’; % 密度ρ2=[ 1.33 1.36 1.4 1.425 1.558 1.47,1.574 1.583 1.61 1.649 1.593 1.528,1.623 1.726 1.794 1.767 1.716 1.574,1.848 1.92 1.894 1.882 1.752 1.71,1.88 1.982 1.975 1.943 1.784 1.763,1.849 1.96 1.92 1.9 1.502,1.483 1.446 1.429]’; %干密度表格一模拟结果b1 = 0.98470.01880.0663-0.0002-0.0016stats1 =0.7597 26.0775 0.0000 0.0138b2 = 1.08260.01650.0417-0.0001-0.0014stats2 = 0.7391 23.3665 0.0000 0.0111故密度ρ1与含砂量S和含水率W的关系式回归模型为:221w 0016.0-s 0002.0w 0663.0s 0188.09847.0w)f(s,=-++=ρ 与F 对应的概率p=0.0138<0.05,故而拒绝H 0,回归模型成立。
实验一绘制二元熵函数曲线实验报告一、实验目的1.熟悉MATLAB工作环境及工具箱2.理解熵函数表达式及其性质二、实验内容用MATLAB软件编程绘制二元熵函数曲线三、实验过程1.复习二元熵函数,理解二元信源的熵H(w)=-wlogw-(1-w)log(1-w)表达式。
2.熟悉MATLAB软件。
1)MATLAB的操作界面MATLAB操作界面主要分为:任务栏、命令窗、命令历史窗、当前目录浏览器、工作空间浏览器及一个“启动按钮”。
任务栏:位于软件的正上方。
各个菜单分别为:文件、编辑、视窗、调试、桌面、窗体、帮助这几个窗口,点击每个窗口可以选择需要的操作。
命令窗(Command Window):位于软件操作界面的右侧。
在此窗口里,可以输入各种指令、函数、变量表达式并进行各种操作。
该窗口用于输入命令并显示除图形以外的所有执行结果。
窗口中的“>>”为命令提示符,直接在其后面输入命令并按下回车键后,会出现计算结果在命令后面。
命令历史窗(Command History):位于软件操作界面的左下方。
这个窗口记录了命令窗口已经运行过的所有命令(指令、函数等),允许用户对这些命令进行选择、复制。
2)MATLAB的函数绘制二维图形最常用的就是plot函数,调用plot函数的三种形式:plot(x)、plot(x,y)、plot(x,y,’r:x’)。
还有就是如何添加横坐标和纵坐标标题的命令语句。
3.实验程序。
w=0.000001:0.0001:0.999999999 %定义w的取值范围y=-w.*log2(w)-(1-w).*log2(1-w) %定义二元熵函数的表达式plot(w,y,'r') %画出二元熵函数的曲线图xlabel('w') %x轴的名称ylabel('H(w)') %y轴的名称grid on %给图形加上网格title('二元熵函数H(w)') %函数曲线的名称运行结果如下:四、实验结果分析从图中可以看出熵函数的一些性质,如果二元信源的输出概率是1或0(即二元信源的输出是确定的),则该信源不提供任何信息。
第二章绘图要画一个函数的图像,先是选取一堆x,求出相对应的y值,然后按照数值描点,接着用光滑的曲线把点连接起来。
和数学课讲的一样,在matlab中,我们画图也分为三步1. 建立一个x的点集;2. 根据函数关系式算出每个x对应y的点集;3. 将这些点用平滑的曲线连接起来。
例如要画y=sinx在[0,10]区间内的图像,首先我们要确定出x的区间>>x = [0:0.1:10];命令的意思是,产生一个数集,它从0开始,每次加0.1,一直加到10为止注意,命令后面的分号记得加上,否则matlab会把x的元素都打印出来,下面就是不加分号的后果:有了x的数集后,我们再根据函数关系式y=sinx得出y的点集>>y = sin(x);同样的,别忘了把分号加上抑制程序输出y的具体值,以及sin(x)的括号别忘了加到这里,我们已经把x和y确定下来,接下来只需用plot(x,y)命令即可绘制出图像>>plot(x,y)当然,如果你不定义y,而直接用一下嵌套命令也是可以的>>plot(x,sin(x))我们将x的增量变大一点,改为0到10,每次增幅为1,即>>x = [0:1:10];然后我们输入>>plot(x,y)我们会得到错误信息:原因是之前我们定义的y是由之前的x决定的,当x改变后,y依然没有改变,为了解决这个问题,我们要把y重新定义一遍,即命令要完整再输入一遍>>x = [0:1:10];>>y = sin(x);>>plot(x,y)然后程序会绘制出和我们预期相同的图像没错,我们将看到不光滑的曲线,这告诉我们,当使用plot(x,y)画图的时候x的增加幅度尽可能小一些,画出的图像才精确(跟数学里点越多图像越精确原理一样的)为了美化图像(有时是为了更清楚的辨析图像),我们经常要为图像加上网格,为坐标轴命名,改变曲线的颜色、形状这些命令2.1 加上网格我们使用grid on 命令我们这样书写:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),grid on这样就画出了带网格的图像当然,也可以先画出没有网格的图像,再把窗口切回matlab命令输入窗口,输入grid on,这样图像就会加上网格,即>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>grid on2.2 为坐标轴命名为x坐标轴命名的命令是xlabel(),显然,y的就应该是ylabel()比如这里,我想让x命名为x,y命名为sinx,则如下输入:>>x=[0:0.1:10];y=sin(x);>>plot(x,y),xlabel(‘x’),ylabel(‘sinx’)注意,坐标轴的名字要用引号括起来,表示字符串当然也可以画图后再标坐标轴,即:>>x=[0:0.1:10];y=sin(x);>>plot(x,y)>>xlabel(‘x’)>>ylabel(‘sinx’)然后我们就可以看到坐标轴带命名的图像:2.3 绘制多条曲线绘制多条曲线有两种情况,一种是在同一个坐标面内画多条曲线,另一种是在一个面内画多个独立的曲线我们先讲第一种,假设我们要在一个坐标面内画sinx,cosx,tanx的图像先定义x,y>>x=[0:0.1:10]>>y1=sin(x);>>y2=cos(x);>>y3=tan(x);接着画图>>plot(x,y1)这时候函数绘制出了sinx的图像接着我们继续画>>plot(x,y2)我们会发现程序会把之前的sinx图像抹掉,然后绘制cosx的图像为了让他们同时存在,我们使用hold on命令,即画完一个图后,hold on,继续画当我们再加上tanx后会得到这个图像这是因为函数显示区间设置的原因,后面讲2.4 更改图像显示区间从楼上我们已经在一个图中画出了sinx、cosx、tanx的图像,但是我们知道tanx的值域是负无穷到正无穷,而sin,cos的值域是-1到1,这导致了我们基本上看不到sin,cos的图像,为了解决这个问题,我们只需用axis命令即可,命令格式为axis([xmin xmax ymin ymax])即括号内跟一个区间,四个数字分别是x的起点,x的终点,y的起点,y的终点。
7.6 课后作业1.分别绘制下列函数图形:(1) r=3(1-cosθ) (极坐标)>> t=0:.01:2*pi;>> figure>> polar(t,abs(3*(1-cos(t))));运行结果:(2) y (t)=1.25e-0.25t +cos(3t)>> x=0:pi/180:2*pi;>> y1=1.25*exp(-0.25*x);y2=cos(3*x);>> plot(x,y1+y2)运行结果:2 .绘制函数y (t)=1-2e-tsint (0 ≤t≤8)的图形,且在x 轴上标注“Time”,y 轴上标注“Amplitude”,图形的标题为“Decaying Oscillating Exponential”。
>> x=0:0.01:8;>> y=1-2*exp(-1*x).*sin(x);>> figure>> plot(x,y)>> xlabel('Time');ylabel('Amplitude');>> title('Decaying Oscillating Exponential');运行结果:3 .在同一图中绘制下列两条曲线(x ∈[0,25]内) :(1) y 1(t)=2.6e(-0.5x) cos(0.6x)+0.8 ;(2) y 2(t)=1.6cos(3x)+sin(x)要求用不同的颜色和线型分别表示y 1(t) 和y 2(t) ,并给图形加注解。
>> x=0:0.1:25;>> y1=2.6*exp(-0.5*x).*cos(0.6*x)+0.8;>> y2=1.6*cos(3*x)+sin(x);>> figure>> plot(x,y1,'r-X',x,y2,'b--.');>> legend('y1=2.6*exp(-0.5*x).*cos(0.6*x)+0.8','y2=1.6*cos(3*x)+sin(x)')4 .在一个图形窗口下绘制两个子图,分别显示下列曲线:(1)y =sin2xcos3x ;(2) y =0.4 x要求给x 轴、y 轴加标注,每个子图加标题。
Matlab中函数图形的三种绘制方法及局部和全局解
绘制函数的图形2
x
fπ区间[-1,2]
=x
)
10
sin(+
1 利用plot绘制
x=linspace(-1,2,1000);
y=x.*sin(10*pi*x)+2;
plot(x,y)
/ 函数的显式表达式,先设置自变量向量,然后根据表达式计算出函数向量/
2 利用fplot绘制
f='x.*sin(10*pi*x)+2';或f='x*sin(10*pi*x)+2';
fplot(f,[-1,2],1e-4)
/fplot函数可以自适应地对函数进行采样,能更好地反映函数的变化规律/
3 利用ezplot绘制
f='x*sin(10*pi*x)+2';
ezplot(f,[-1,2])
/隐函数绘图:如果函数用隐函数形式给出,可以利用ezplot函数绘制隐函数图形/
1和2 3的区别是2 3可以直接按照函数的原形直接写出,而1中变量相乘或除时都以点乘和点除的形式写出来的
尝试用fminbnd fminunc fminsearch及遗传算法求解上述函数在区间[-1,2]中的最小值,看看它们四个有什么不同?。
MATLAB绘制二元函数的图形【实验目的】1.了解二元函数图形的绘制。
2.了解空间曲面等高线的绘制。
3.了解多元函数插值的方法。
4.学习、掌握MA TLAB软件有关的命令。
【实验内容】画出函数22y=的图形,并画出其等高线。
z+x【实验准备】1.曲线绘图的MA TLAB命令MA TLAB中主要用mesh,surf命令绘制二元函数图形。
主要命令mesh(x,y,z)画网格曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。
surf(x,y,z)画完整曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。
【实验重点】1. 二元函数图形的描点法2. 曲面交线的计算3. 地形图的生成【实验难点】1. 二元函数图形的描点法2. 曲面交线的计算【实验方法与步骤】练习1画出函数22y=的图形,其中]3,3xz+⨯-yx。
∈,[]3,3[(-)用MA TLAB作图的程序代码为>>clear;>>x=-3:0.1:3; %x的范围为[-3,3]>>y=-3:0.1:3; %y的范围为[-3,3]>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z>>mesh(X,Y,Z)运行结果为图5.3如果画等高线,用contour,contour3命令。
contour画二维等高线。
contour3画三维等高线。
画图5.3所示的三维等高线的MA TLAB 代码为>>clear;>>x=-3:0.1:3;>>y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(X.^2+Y.^2);>>contour3(X,Y,Z,10); %画10条等高线>>xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); %三个坐标轴的标记>>title('Contour3 of Surface') %标题>>grid on %画网格线运行结果为图5.4如果画图5.4所示的二维等高线,相应的MA TLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour (X,Y,Z,10);>>xlabel('X-axis'),ylabel('Y-axis');>>title('Contour3 of Surface')>>grid on运行结果为如果要画z=1的等高线,相应的MATLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour(X,Y,Z,[1 1])运行结果为练习2 二次曲面的方程如下222222x y z d a b c++= 讨论参数a ,b ,c 对其形状的影响。
Matlab绘图函数⼀览 要查看Matlab所有绘图函数,请从Matlab主界⾯菜单查看“绘图⽬录”,或从Matlab帮助⽂档查看“Types of MATLAB Plots”()。
本⽂的图和英⽂解释摘⾃Matlab帮助⽂档。
类别Function图维度描述曲线plot2绘制曲线,相邻点之间被插值fplot输⼊函数或函数句柄、⾃变量取值区间,绘制曲线plotyy2双纵坐标图,两个纵坐标的数量级不同plot33绘制3D曲线loglog2X,Y坐标都按对数缩放semilogx2仅X坐标按对数缩放semilogy2仅Y左边按对数缩放errorbar2误差条形图,见条形直⽅⾯域bar2条形图(垂直),分为grouped和stacked风格bar333D条形图(垂直)barh2⽔平条形图,分为grouped和stacked风格bar3h33D⽔平条形图hist2频数直⽅图histc输⼊数据和区间,返回数据落在每个区间的频数pareto2帕累托图(柏拉图),见area2填充区域图,曲线和X轴之间被填充pie2饼图,⽤于表⽰⽐例pie333D饼图极坐标polar2极坐标图,以极坐标绘制曲线rose2⾓直⽅图(频数扇形图)离散数据stem2杆图,对每个数据,从X轴伸出⼀条垂直线,顶端画圆圈stem333D杆图stairs2阶梯图,相邻点间不进⾏插值scatter2散点图(⽓泡图),绘制⼀系列散点scatter333D散点图spy2稀疏模式(sparsity pattern)图,对矩阵⾮0的地⽅绘制散点plotmatrix2将矩阵绘制为散点图或散点图和直⽅图等⾼线contour2等⾼线图,⼆维函数的等值线contour333D等⾼线图,三维函数(空间函数)的等值线contourf2填充的等⾼线图contourf2填充的等⾼线图contourc等⾼线计算曲⾯⽹格surf3曲⾯图,和mesh的区别是,surf在⼩矩形上做颜⾊插值surfl3在surf基础上,加⼊光照surfc3在surf基础上,在底部绘制等⾼线图surfnorm3在surf基础上,每个⾯绘制法线surface低层次曲⾯绘制函数mesh3⽹格图,在⾏和列上绘制⼀系列曲线,构成⽹格meshc3在mesh基础上,在底部绘制等⾼线图meshz3在mesh基础上,在⽹格四周绘制“帘⼦”waterfall3瀑布图,类似于meshz函数,但在矩阵的列之间不⽣成线ribbon3带图,绘制⼀定宽度的带,相当于将⼆维曲线沿着垂直平⾯⽅向拉开⼀定宽度形成三维图形pcolor2伪彩图,根据矩阵的“相邻四个点”的值对应颜⾊插值得到⼩矩形颜⾊peaks Example function of two variablescylinder Generate cylinderellipsoid Generate ellipsoidsphere Generate spheresurf2patch Convert surface data to patch data标量场体数据slice3体积切⽚图,对体数据进⾏切⽚观察contour-slice3切⽚等⾼线图,体数据在切⽚平⾯中的等值线flow Simple function of three variables isosurface Extract isosurface data from volume data isocaps Compute isosurface end-cap geometry isocolors Calculate isosurface and patch colors isonormals Compute normals of isosurface verticesreduce-patchReduce number of patch facesreduce-volume Reduce number of elements in volume data set shrinkfaces Reduce size of patch facessmooth3Smooth 3-D datasubvolume Extract subset of volume data setvolumeboundsCoordinate and color limits for volume data feather2⽻状图,以X轴上的点为起点绘制⼀系列向量向量场体向量数据compass2射线图,以原点为起点绘制⼀系列向量quiver2⽮量场图,以采样点为起点绘制⼀系列向量quiver333D⽮量场图streamslice3绘制流场(三维向量函数)在切⽚平⾯中的流线streamline3绘制流场的流线(类似于磁感线),起点由数据指定coneplot3绘制三维圆锥,圆锥的起点由数据指定,⽅向和⼤⼩由流场指定stream-particles3绘制流场marker粒⼦stream-ribbon3绘制流场ribbon图streamtube3绘制流场流管curl Compute curl and angular velocity of vector field divergence Compute divergence of vector fieldinterp-stream-speedInterpolate stream-line vertices from flow speedstream2Compute 2-D streamline datastream3Compute 3-D streamline data多边形fill2绘制填充的多边形fill333D填充多边形patch2,3绘制⼀个或多个填充多边形Easy-to-use ezplot2Easy-to-use版绘图函数,这类函数传⼊要绘制的函数或函数句柄,以及⾃变量的定义域,调⽤具体函数绘图。
一、介绍Matlab是一款用于科学计算和技术计算的软件,拥有强大的绘图功能,可以用于绘制各种图形、曲线和函数图像。
在Matlab中,使用plot函数可以绘制二元函数的图像,通过调整参数和设置属性,可以实现不同风格和效果的图像展示。
本文将详细介绍在Matlab中如何绘制二元函数的图像,包括基本的绘图方法和常用的设置技巧。
二、绘制二元函数图像的基本方法1. 准备数据在使用Matlab绘制二元函数的图像前,首先需要准备数据。
通常可以通过生成x、y坐标的网格点,然后计算每个点对应的函数值,从而得到二元函数在指定区域内的数据集。
2. 使用plot函数一旦准备好了数据集,就可以使用Matlab的plot函数进行绘图。
plot函数的基本语法为:plot(x, y),其中x和y分别代表要绘制的点的横坐标和纵坐标。
通过调用plot函数,可以将计算得到的数据点连接起来,形成二元函数的图像。
3. 添加标签和标题为了让图像更加清晰和直观,通常需要添加x和y轴的标签,以及整个图像的标题。
在Matlab中,可以使用xlabel、ylabel和title函数来分别添加x轴、y轴和标题标签。
4. 设置图像属性通过设置图像的属性,可以调整图像的风格和效果。
常用的属性包括线型、线宽、颜色和标记符号等。
在Matlab中,可以使用参数-字符串对的形式来设置图像的属性,例如'LineStyle'、'LineWidth'、'Color'和'Marker'等。
三、绘制常见二元函数的图像在Matlab中,可以绘制各种类型的二元函数的图像,包括线性函数、二次函数、三角函数、指数函数、对数函数等。
下面将分别介绍如何绘制这些常见二元函数的图像。
1. 绘制线性函数图像线性函数的一般形式为y=ax+b,其中a和b分别为常数。
在Matlab 中,可以通过设置a和b的值,然后使用plot函数绘制线性函数的图像。
图4-4 图4-5 数学实验四 用Matlab 软件作二元函数的图象一、空间曲线调用格式:plot3(x1,y1,z1,x2,y2,z2,…,xn,yn,zn)其中xi 、yi 和zi 为分别是长度相同的向量,用于存储xi 坐标、yi 坐标和zi 坐标数据,i=1,2,…,n .例1 在同一坐标系中分别作出三维曲线 ==x x z x x y cos sin 和+=−=2442x z x y 在]6,0[π∈x 上的图象.解 打开M文件编辑窗口,在其中输入下面命令集:x=0:pi/50:6*pi;y1=x.*sin(x);z1=x.*cos(x);y2=2*x-1;z2=4*x-8;plot3(x,y1,z1,x,y2,z2);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')legend('圆锥螺线','空间直线')取名为exa1保存,再在命令窗口中输入命令exa1,程序运行结果如图4-4.说明:若要作单根曲线,和前面plot 函数一样,只是多了一个立坐标.二、空间曲面1.三维网格图调用格式一:[x,y]=meshgrid(x1:h1:x2,y1:h2:y2)z=f(x,y)plot3(x,y,z)其中x 、y 和z 为长度相同的向量,分别用于存储x 坐标、y 坐标和z 坐标数据. 例2 作出空间平面324=+−z y x 的图象.解 打开M文件编辑窗口,在其中输入下面命令集:[x,y]=meshgrid(-3:0.1:3,-2:0.1:3); %产生一个x,y 平面上51×61的网格z=3-4*x+2*y;plot3(x,y ,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')title('4x-2y+z=3')取名为exa2保存,再在命令窗口中输入命令exa2,程序运行结果如图4-5.例3 作出空间曲面2222sin y x y x z ++=在区域图4-7图4-8}8||,8|||),{(≤≤y x y x 上的图象.解 打开M文件编辑窗口,在其中输入下面命令集:[x,y]=meshgrid(-8:0.1:8);r=sqrt(x.^2+y.^2); %产生对应的x,y 坐标用点幂z=sin(r)./r; %产生对应于x,y 的z 坐标用点除plot3(x,y,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')取名为exa3保存,再在命令窗口中输入命令exa3,程序运行结果如图4-6.调用格式二:[x,y]=meshgrid(x1:h1:x2,y1:h2:y2)z=f(x,y)mesh(x,y,z)例4 在x 、y 平面内选取一个区域,作出空间曲面22y xe z −−=的图象. 解 打开M文件编辑窗口,在其中输入下面命令集:[x,y]=meshgrid(-4:0.1:3,-3:.1:2); %产生一个x,y 平面上51×71的网格z=exp(-x.^2-y.^2);mesh(x,y,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')取名为exa2保存,再在命令窗口中输入命令exa2,程序运行结果如图4-7.2.三维曲面图调用格式:[x,y]=meshgrid(x1:h1:x2,y1:h2:y2)z=f(x,y)surf(x,y,z) 说明:surf 函数可借助shading 函数作平滑和插值处理,而shading 函数有三个参数,分别为flat (作平滑处理)、interp (去掉连接线条,在各片之间使用颜色插值)和faceted (默认值,对前面两种参数之一的作用进行还原).例5 用子图分别作出马鞍面22y x z −=在区域}2||,1|||),{(≤≤y x y x 图和经插值处理的图.解 打开M文件编辑窗口,在其中输入下面命令集:[x,y]=meshgrid(-1:0.1:1,-2:.1:2);z=x.^2-y.^2;subplot(1,2,1),surf(x,y,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')title('z=x^2-y^2');subplot(1,2,2),surf(x,y,z);图4-9 图4-10xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')shading interp %插值处理title('z=x^2-y^2的插值处理图')取名为exa5保存,再在命令窗口中输入命令exa5,程序运行结果如图4-8.3.柱面图调用格式一:[x,y,z]=cylinder(R,N)mesh(x,y,z)其中,R 是一个向量,其坐标分量依次对应柱面各横截面的半径,N是多边形的边数.默认值是R=[1,1],N=20.例6 作出正六棱柱在R=[2,2]的图象.解 打开M文件编辑窗口,在其中输入下面命令集:[x,y,z]=cylinder([2,2],6);mesh(x,y,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')hidden off %显示隐含线,若不想显示隐含线,则取消此命令或设置为hidden on取名为exa6保存,再在命令窗口中输入命令exa6,程序运行结果如图4-9. 调用格式二:[x,y,z]=cylinder(R,N)surf(x,y,z)其中,R 、N的意义和上面一样.例7 作出正十棱台在R=[1,2]的图象.解 打开M文件编辑窗口,在其中输入下面命令集:[x,y,z]=cylinder([1,2],10);surf(x,y,z);xlabel('x 轴'),ylabel('y 轴'),zlabel('z 轴')取名为exa7保存,再在命令窗口中输入命令exa7,程序运行结果如图4-10.说明:若要作正棱锥,只须取R的某个分量为0即可.4.球面图调用格式:[x,y,z]=sphere(N)surf(x,y,z) 其中,N (N>2)是球面的边数.默认值是N=20.sphere(N)不返回坐标,直接绘出球面.例8 以子图形式分别作出N=5、20、40和40并作平滑处理的球.解 打开M文件编辑窗口,在其中输入下面命令集:subplot(2,2,1)sphere(5);title('子图1')subplot(2,2,2),sphere;title('子图2')subplot(2,2,3)[x,y,z]=sphere(40);surf(x,y,z);title('子图3')subplot(2,2,4)[x,y,z]=sphere(40);surf(x,y,z);shading flat %对球面作平滑处理title('子图4') 取名为exa8保存,再在命令窗口中输入命令exa8,程序运行结果如图4-11.三、上机实验1.用help 命令查看函数plot3,mesh 和surf 等的用法.2.上机验证上面各例.3.作相关小节练习中空间曲线和曲面的图象.图4-11。
I. 隐函数f(x,y)=0, f(x(t),y(t),z(t))=0; z=f(x,y)ezplot, ezplot3, ezcontour, conctourf, ezpolar, ezmesh, ezmeshc, ezsurf, ezsurfc1. ezplot:画符号函数图形ezplot(f):对于显式函数f=f(x),在默认的范围[-pi<x<pi]上画函数f(x);对于隐函数f=f(x,y),在默认的平面区域[-pi<x<pi,-pi<y<pi]上画函数f(x,y)的图像。
ezplot(f,[min,max]):在指定的范围[min<x<max]内画函数表达式f=f(x)。
若没有图形窗口存在,则该函数先生成标题为Figure No.1的新窗口,再在该窗口中操作;若已经有图形窗口存在,这在标号最该的图形窗口中进行操作。
ezplot(f,[xmin xmax],fing):在指定标号为fign的窗口中、指定范围[xmin xmax]内画函数f=f(x)的图形。
ezplot(f,[xmin,xmax,ymin,ymax]):在平面矩形区域[xmin<x<xmax,ymin<y<ymax]上画出f(x,y)=0的图像。
ezplot(x,y):在默认范围0<t<2pi内画出参数形式函数x=x(t)与y=y(t)的图形。
ezplot(x,y,[tmin,tmax)]:在指定范围[tmin<t<tmax]内画参数形式函数x=x(t)与y=y(t)的图形。
ezplot(…,figure):在由参量文件figure句柄指定的图形窗口中画函数图形。
例如:画下面的隐函数>> syms x y>> ezplot(2*x^4-y^9)2. ezplot3:三维曲线图ezplot3(x,y,z):在默认的范围0<t<2pi内画参数形式的曲线x=x(t),y=y(t),z=z(t)图像。
de算法计算二元函数matlab代码二元函数是指具有两个自变量和一个因变量的函数。
在数学中,我们可以使用不同的算法来计算二元函数的值。
其中一个常用的算法是使用离散值的方法来计算二元函数。
以下是一个使用MATLAB编写的示例代码,用于计算二元函数: ```matlab% 创建一个二元函数的离散值矩阵[x, y] = meshgrid(-5:0.1:5); % 定义自变量的范围及步长z = sin(x) + cos(y); % 定义二元函数% 绘制二元函数图像figure;surf(x, y, z);xlabel('x');ylabel('y');zlabel('z');title('二元函数图像');% 计算给定点的函数值point_x = 1; % 给定点的x坐标point_y = 2; % 给定点的y坐标point_z = sin(point_x) + cos(point_y); % 计算给定点的函数值disp(['给定点的函数值为:', num2str(point_z)]);```在上述代码中,我们首先通过使用`meshgrid`函数创建了一个离散值的网格,其中包括了自变量`x`和`y`的范围和步长。
然后,我们定义了一个二元函数`z`,通过使用自变量`x`和`y`进行计算。
接下来,我们使用`surf`函数绘制了二元函数的图像。
最后,我们给定了一个点的坐标,并计算了该点处的函数值。
您可以根据需要修改上述代码中的函数和自变量的定义,以计算不同的二元函数。
此外,您还可以使用其他算法来计算二元函数的值,例如使用插值方法或数值方法等。
03 函数作图1 平面图形(1)竖直条形图调用格式为:bar(x,y)(2)用描点法绘制函数y f ( x) 随x 从a 到b 间的图形.调用格式为:x=a:h:b ;y=f(x) ;plot(x,y)(3)在同一坐标系下绘制多个函数图形.调用格式为:x=a:h:b ;plot(x,y1,x,y2,…)(4)绘制函数y=f(x)随x 从a 到b 间的图形.调用格式为:explo t(‘f(x)’, [a,b])(5)x 从xa 到xb和y 从ya到yb间隐函数 f ( x, y) 0 的图形.调用格式为:ezplo t(‘x’,’y’,[xa, x b , y a , y b ])(6)绘制t 从ta 到tb间参数方程x x(t ),y y(t )的函数图形.调用格式为:ezplo t(‘x’,’y’,[ta, t b ])(7)在一坐标系下可以绘制一个或多个显函数图形,对变化剧烈的函数,用此命令来进行较精确的绘画.调用格式为:fplot(’fun(x)’,[a,b])fplo t (‘[f1(x),f2(x),…]’,[a,b])其中fun(x)可以是自定义函数,[f1(x),f2(x),…]是函数组.(8)绘制散点图.调用格式为:scatter(x,y)2 空间图形(1)空间曲线.调用格式为:plot3(x,y,z)(2)产生一个以向量x 为行,向量y 为列的矩阵.调用格式为:meshgrid(x,y)(3)空间曲面.调用格式为:surf(x,y,z)(4)网格曲面.调用格式为:mesh(x,y,z)例 1 一次考试成绩0~10 分有0 人,10~20 分有0 人,20~30 分1 人,30~40 分有1 人,50~60 分有2 人,60~70 分有18 人,70~80 分有20 人,80~90 分有9 人,90~100 分有6 人.绘出成绩分析竖直条形图.【matlab 命令】>> x=0:10:90;>> y=[0,0,1,1,0,2,18,20,9,6];>> bar(x,y)【输出结果】20002图1例1输出图像例 2 绘制显函数图形.x(1)设 y 1x 3 2x , y2000 cos2sin x请分别作出这两个函数在区间 x[20,40] 的图像,然后将它们的图像在一个平面直角坐标系中,并判断方程 y 1x 3 2 x 1500cos x2sin x 有几个实数解.(2)在 x[0,4] 上画出分段函数方法一:【matlab 命令】>> x=-20:0.1:40;>> y1=x.^3-35*x.^2+100*x+1500; >> y2=2000*(cos(x/2)-sin(x)); >> figure(1)>> plot(x,y1,'b-'); >> figure(2) >> plot(x,y2,'k');f ( x )32 x 2x 20 x 2 x 2的图像>> figure(3)>> plot(x,y1,'b-',x,y2,'k')【输出结果】图2例2(1)函数y1图3 例 2(1)函数 y 2 输出图像图4例 2(1)函数 y 1 和 y 2 输出图像 从图中知:有 7 个交点,也就是有 7 个实数根.说明:绘制图形着色时,g 表示绿色,r 表示红色,b 表示蓝色,k 表示黑色.方法二:【matlab 命令2】%自定义函数M文件fx1 function y1=fx1(x)y1=x^3-35*x.^2+100*x+1500%自定义函数M文件fx2 function y2=fx2(x)y2=2000*(cos(x/2)-sin(x));Matlab命令窗口输入以下命令: >> figure(1)>> fplot('fx1(x)',[-20,40]); >> figure(2)>> fplot('fx2(x)',[-20,40]); >> figure(3)>> fplot('[fx1(x) , fx2(x)] ', [-20,40]); 【输出结果2】结果同上.【matlab 命令3】>> x=0:0.01:2;>> y=(2*x-x.^2).^(1/3);>> plot(x,y,'k','linewidth',2)>> hold on>> x=2:0.01:4;>> y=x-2;>> plot(x,y,'k','linewidth',2)【输出结果3】图5例2(2)函数f(x)的输出图像例3绘制隐函数和参数方程所确定函数的图形.(1)在x [3,3] 上画隐函数x 2 2 9 的图像.(2)在t [0,2] 上画参数方程x cos3 t ,y sin 3 t 的图像.【matlab 命令1】>> ezplot('x^2+y^2-9',[-3,3])>> axis equal【输出结果1】图6例3(1)输出图像说明:axis on 显示坐标轴,axis off 取消坐标轴,grid on 表示加网格线,grid off 表示不加网格线,clf 清楚图形窗口中的图形.也可以通过编辑图像的方法改变或增加设置,比如在图形窗口中,菜单栏Tools中鼠标选中Edit-Plot,可改变图像的颜色.【matlab 命令2】>> ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果2】图7例3(2)输出图像例4将图4,5,6,7在同一个图形窗口表现出来.【matlab 命令】clfsubplot(2,2,1)x=-20:0.1:40;y1=x.^3-35*x.^2+100*x+1500;y2=2000*(cos(x/2)-sin(x));plot(x,y1,'b-',x,y2,'k');subplot(2,2,2)x=0:0.01:2;y=(2*x-x.^2).^(1/3);plot(x,y) holdon x=2:0.01:4;y=x-2;plot(x,y)subplot(2,2,3)ezplot('x^2+y^2-9',[-3,3])axis equal subplot(2,2,4)ezplot('cos(t)^3','sin(t)^3',[0,2*pi])【输出结果】图8 例4输出图像例5已知平面内8个散点的坐标(1,15,2,20(3,27(4,36(5,49,(6,65(7,87(8,117,在直角坐标系中绘制点图.【matlab 命令】 clf x=1:8; y=[15.3,20.5,27.4,36.6,49.1,65.6,87.8,117.6]; scatter(x,y,'ko') 【输出结果】图9例6 在区间[0,10] 上画出参数曲线x sin t, y cos t, z t .【matlab 命令】clft=0:pi/50:10*pi;plot3(sin(t),cos(t),t)【输出结果】图10例7画函数Z ( X Y) 2 的图形.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=(X+Y).^2;surf(X,Y,Z)shading flat【输出结果】图11例8画出马鞍曲面Z X 2 Y2 在不同视角的网格图.【matlab 命令】clfx=-3:0.1:3; y=1:0.1:5;[X,Y]=meshgrid(x,y);Z=X.^2-Y.^2;mesh(X,Y,Z)【输出结果】图123 习题1.某城市一年12个月的日平均气温(单位: 0C )分别为:-10,-6,5,10,20,25,30,24,22,19,10,6,试画出条形图. 2.作出函数 f ( x )cos(e x ) e x / 2) 在区间 x [4,4] 的图形3.作隐函数 sin( xy ) 0 在 [6,6] 内的图形.cos x 2 x 2 4.已知分段函数 y x x 1 ,作出 15 x 15 的函数图形. 2 sin( x 1) 1x 15.在同一直角坐标系中,作出函数 y5 的图形和函数 x 3 的图形.6.已知sin( x 2 2 )7.绘制空间图形:(墨西哥帽子).x 2 2。
MATL AB绘制二元函数的图形【实验目的】1.了解二元函数图形的绘制。
2.了解空间曲面等高线的绘制。
3.了解多元函数插值的方法。
4.学习、掌握MATLAB软件有关的命令。
【实验内容】画出函数22yz+=的图形,并画出其等高线。
x【实验准备】1.曲线绘图的MATLAB命令MATLAB中主要用mesh,surf命令绘制二元函数图形。
主要命令mesh(x,y,z)画网格曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点在空间中描出,并连成网格。
surf(x,y,z)画完整曲面,这里x,y,z是数据矩阵,分别表示数据点的横坐标,纵坐标和函数值,该命令将数据点所表示曲面画出。
【实验重点】1. 二元函数图形的描点法2. 曲面交线的计算3. 地形图的生成【实验难点】1. 二元函数图形的描点法2. 曲面交线的计算【实验方法与步骤】练习1画出函数22y=的图形,其中]3,3xz+⨯-yx。
∈,[]3,3[(-)用MATLAB作图的程序代码为>>clear;>>x=-3:0.1:3; %x的范围为[-3,3]>>y=-3:0.1:3; %y的范围为[-3,3]>>[X,Y]=meshgrid(x,y); %将向量x,y指定的区域转化为矩阵X,Y >>Z=sqrt(X.^2+Y.^2); %产生函数值Z>>mesh(X,Y,Z)运行结果为图5.3如果画等高线,用contour,contour3命令。
contour画二维等高线。
contour3画三维等高线。
画图5.3所示的三维等高线的MA TLAB 代码为>>clear;>>x=-3:0.1:3;>>y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);>>Z=sqrt(X.^2+Y.^2);>>contour3(X,Y,Z,10); %画10条等高线>>xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis'); %三个坐标轴的标记>>title('Contour3 of Surface') %标题>>grid on %画网格线运行结果为图5.4如果画图5.4所示的二维等高线,相应的MATLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour (X,Y,Z,10);>>xlabel('X-axis'),ylabel('Y-axis');>>title('Contour3 of Surface')>>grid on运行结果为如果要画z=1的等高线,相应的MATLAB代码为>>clear;x=-3:0.1:3;y=-3:0.1:3;>>[X,Y]=meshgrid(x,y);Z=sqrt(X.^2+Y.^2);>>contour(X,Y,Z,[1 1])运行结果为练习2 二次曲面的方程如下222222x y z d a b c++= 讨论参数a ,b ,c 对其形状的影响。
相应的MATLAB 代码为>>a=input('a='); b=input('b='); c=input('c=');>>d=input('d='); N=input('N='); %输入参数,N 为网格线数目 >>xgrid=linspace(-abs(a),abs(a),N); %建立x 网格坐标 >>ygrid=linspace(-abs(b),abs(b),N); %建立y 网格坐标>>[x,y]=meshgrid(xgrid,ygrid); %确定N ×N 个点的x,y 网格坐标 >>z=c*sqrt(d-y.*y/b^2-x.*x/a^2);u=1; %u=1,表示z 要取正值 >>z1=real(z); %取z 的实部z1>>for k=2:N-1; %以下7行程序的作用是取消z中含虚数的点>>for j=2:N-1>>if imag(z(k,j))~=0 z1(k,j)=0;end>>if all(imag(z([k-1:k+1],[j-1:j+1])))~=0 z1(k,j)=NaN;end>>end>>end>>surf(x,y,z1),hold on %画空间曲面>>if u==1 z2=-z1;surf (x,y,z2);%u=1时加画负半面>>axis([-abs(a),abs(a),-abs(b),abs(b),-abs(c),abs(c)]);>>end>>xlabel('x'),ylabel('y'),zlabel('z')>>hold off运行程序,当a=5,b=4,c=3,d=1,N=50时结果为当a=5i,b=4,c=3,d=1,N=15时结果为当a=5i,b=4i,c=3,d=0.1,N=10时结果为【练习与思考】 1. 画出空间曲面22221sin 10yx y x z +++=在30,30<<-y x 范围内的图形,并画出相应的等高线。
解:clear;close; u=-30:0.5:30; v=-30:0.5:30;[x,y]=meshgrid(u,v);z=10*sin(sqrt(x.^2+y.^2))./sqrt(1+x.^2+y.^2); subplot(1,2,1);mesh(x,y,z) subplot(1,2,2); contour(x,y,z,10)2. 根据给定的参数方程,绘制下列曲面的图形。
a) 椭球面v u x sin cos 3=,v u y cos cos 2=,u z sin =; 解:clear;close;v=-4:0.1:4;[U,V]=meshgrid(u,v); X=3.*cos(U).*sin(V); Y=2.*cos(U).*cos(V); Z=sin(U); surf(X,Y,Z); axis equalb) 椭圆抛物面v u x sin 3=,v u y cos 2=,24u z =; 解:clear;close; u=-4:0.1:4;[U,V]=meshgrid(u,v);X=3.*U.*sin(V);Y=2.*U.*cos(V);Z=4.*U.^2;surf(X,Y,Z);shading interp;colormap(hot);axis equalc) 单叶双曲面vz tan2,usec=;4x sinuu cossec3=,v解:clear;close;v=-2:0.1:2;[U,V]=meshgrid(u,v); X=3*sec(U).*sin(V); Y=2*sec(U).*cos(V); Z=4*tan(U); mesh(X,Y,Z); shading interp; colormap(jet); axis equald) 双叶抛物面u x =,v y =,322v u z -=;解:clear;close;u=-4:0.1:4;v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U;Y=V;Z=(U.^2-V.^2)/3; mesh(X,Y,Z);shading interp; colormap(jet);axis equale) 旋转面v u x sin ln =,v u y cos ln =,u z =; 解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=log(U).*sin(V); Y=log(U).*cos(V); Z=U;mesh(X,Y,Z); shading interp; colormap(jet); axis equalf) 圆锥面v u x sin =,v u y cos =,u z =; 解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U.*sin(V); Y=U.*cos(V); Z=U;mesh(X,Y,Z); shading interp; colormap(jet);axis equalg) 环面vcos)y sin3(+=,vu4.0x cosu=,v)cos3(+4.04.0=;z sin 解:clear;close;u=-4:0.1:4;v=-4:0.1:4;[U,V]=meshgrid(u,v);X=(3+0.4*cos(U)).*cos(V);Y=(3+0.4*cos(U)).*sin(V);Z=0.4*sin(V);mesh(X,Y,Z);shading interp;colormap(jet); axis equalh) 正螺面v u x sin =,v u y cos =,v z 4=。
解:clear;close; u=-4:0.1:4; v=-4:0.1:4;[U,V]=meshgrid(u,v); X=U.*sin(V); Y=U.*cos(V); Z=4*V; mesh(X,Y,Z);shading interp;colormap(jet);axis equal3. 在一丘陵地带测量高程,x和y方向每隔100米测一个点,得高程见表5-2,试拟合一曲面,确定合适的模型,并由此找出最高点和该点的高程。
表5-2 高程数据解:clear;close;x=[100 100 100 100 200 200 200 200 300 300 300 300 400 400 400 400];y=[100 200 300 400 100 200 300 400 100 200 300 400 100 200 300 400];z=[636 697 624 478 698 712 630 478 680 674 598 412 662 626 552 334];xi=100:5:400;yi=100:5:400;[X,Y]=meshgrid(xi,yi);H=griddata(x,y,z,X,Y,'cubic');surf(X,Y,H);view(-112,26);hold on;maxh=vpa(max(max(H)),6)-------------[r,c]=find(H>=single(maxh)); stem3(X(r,c),Y(r,c),maxh,'fill')-------------。