[整理]matlab绘制二元函数图形.
Matlab二元函数拟合

表格一表格一数据整理ρ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,回归模型成立。
MATLAB图形工具箱

一、二维曲线的绘制
对于图形坐标的控制,请看图片自 己在上机实习的时候学会!
一、二维曲线的绘制
绘制函数的图形: 语法: fplot(‘fun’,lim,’s’):绘制函数fun的图形. 说明:fun为要绘制图形的函数,lim为图形的 范围,如:[0,2*pi],s为图形所用的点型,线 型和颜色的设定,与plot命令相同.
二、三维图形的绘制
2‘ 三维曲面图 语法:surf(z) surf(x,y,z) 说明:意义与mesh命令相同,只是图形不 是网线而是曲面。
三、特殊图形的绘制
1、条形图 语法:bar(x,y,width) %画条形图 bar3(x,y,width,’参数’) %画三维条形图 说明:x是横坐标向量,省略时默认值是1:m,m为y的向 量长度;y是纵坐标,当y是向量时,每个元素对应一 个竖条,当y是矩阵时,将画出m组竖条,每组包含n 条;width是竖条的宽度。默认时为0.8,(把bar命令 改为barh命令时将绘制出水平的条形图)。 三维的条形图中的参数可以detached, grouped,stacked三个,分别表示不同的显示方式.
一、二维曲线的绘制
数据点形 实点标记:. 圆圈标记:。 等等,其他更多的可以查相关的资料。 例如:>>x=0:0.1:2*pi; >>plot(x,sin(x),’r-.’) :用红色点划线 画出曲线 >>plot(x,cos(x),’b:*’)
一、二维曲线的绘制
6、交互式图形命令 (1)ginput命令 ginput命令与其他图形命令的原理不同, 不是把数据表现在图形上,而是从图上 获取数据。因此,ginput命令在数值优化、 工程设计中十分有用,仅适用于二维图 形。
1. Matlab使用入门

1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
24/32
绘网面命令mesh()使用格式: mesh(x,y,z) 或 mesh(z) 例1.12 绘二元函数 z = x exp( –x2 – y2)的图形。 [x,y]=meshgrid(-2:0.2:2); z=x.*exp(-x.^2-y.^2); mesh(x,y,z) colormap([0 0 1]) 注记: x,y是维数相同的矩阵; 表达式中“.*”和“.^”运算 使得z是与x,y维数相同矩阵。 功能相同的绘图命令:surf, meshc, meshz,· · · · · · · ·
11/32
三角函数与双曲函数
sin asin cos acos tan atan cot acot sec asec csc acsc 正弦函数 反正弦函数 余弦函数 反余弦函数 正切函数 反正切函数 余切函数 反余切函数 正割函数 反正割函数 余割函数 反余割函数 sinh asinh cosh acosh tanh atanh sech asech csch acsch coth acoth 双曲正弦函数 反双曲正弦函数 双曲余弦函数 反双曲余弦函数 双曲正切函数 反双曲正切函数 双曲正割函数 反双曲正割函数 双曲余割函数 反双曲余割函数 双曲余切函数 反双曲余切函数
1/3 1/4 1/5
19/32
————矩阵创建常用方法————
1.直接输入法; 2.特殊矩阵函数法; 3. 数据文件输入 注意事项 矩阵元素必须在方括号[ ]之内; 同一行相邻元素间用逗号或空格分隔; 矩阵的行与行之间用分号分隔. A=hilb(3) B=invhilb(3) A*B
掌握MATLAB程序设计方法
以MATLAB为操作平台完成实验作业
数学2-用MATLAB绘制二维-三维图形(lq)

[i,j,v]=find(A) 返回矩阵A中非零元素所在的行i,
列j,和元素的值v(按所在位置先后 顺序输出)
A=[3 2 0; -5 0 7; 0 0 1]; [i,j,v]=find(A)
i= 1 2 1 2 3 j= 1 1 2 3 3 v = 3 -5 2 7 1
[X,Y]=meshgrid(x,y) 3)根据函数表达式生成全部网格节点出对应的函数值矩阵z: z=f(X,Y) 4)顺序连接已经产生的空间点(x,y,z)绘制相应曲面: mesh(X,Y,Z) surf(X,Y,Z) shading flat %去除网格线。
例2-7画出矩形域[-1,1]×[-1,1]旋转抛物面:z=x2+y2. x=linspace(-1,1,100); y=x; [X,Y]=meshgrid(x,y); %生成矩形区[-1,1]×[-1,1]的网格坐标矩阵 Z=X.^2+Y.^2; subplot(1,2,1) mesh(X,Y,Z); subplot(1,2,2) surf(X,Y,Z); shading flat; %对曲面z=x2现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
用matlab绘制二维、三维图形
2.1二维图形的绘制
2.1.1 二维绘图的基本命令 matlab中,最常用的二维绘图命令是plot。
使用该命令,软件将开辟一个图形窗口,并 画出连接坐标面上一系列点的连线。
例2-5 采用不同形式(直角坐标、参数、极坐标),画出 单位圆x2+y2=1的图形。
分析:对于直角坐标系方程,y= 1 x2,对于参数方 程x=cost,y=sint,t[0,2 pi] ,利用plot(x,y)命令可以实现。 而在极坐标系中单位圆为r=1(1+0t),利用polar(t,r)命 令实现。
一绘制二元熵函数曲线报告

实验一绘制二元熵函数曲线实验报告一、实验目的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(即二元信源的输出是确定的),则该信源不提供任何信息。
Matlab绘图

第二章绘图要画一个函数的图像,先是选取一堆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的终点。
MATLAB课后习题及练习7.6

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中函数图形的三种绘制方法

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]中的最小值,看看它们四个有什么不同?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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')-------------。