用MatLab制作的几个数学函数图像
实验二用matlab绘制一元函数与二元函数的图象

实验二 用matlab 绘制一元函数与二元函数的图象1.平面曲线的表示形式对于平面曲线,常见的有三种表示形式,即以直角坐标方程],[),(b a x x f y ∈=,以参数方程],[),(),(b a t t y y t x x ∈==,和以极坐标],[),(b a r r ∈=ϕϕ表示等三种形式。
2.曲线绘图的MATLAB 命令MATLAB 中主要用plot,fplot 二种命令绘制不同的曲线。
可以用help plot, help fplot 查阅有关这些命令的详细信息例16.2.1 作出函数x y x y cos ,sin ==的图形,并观测它们的周期性。
先作函数x y sin =在]4,4[ππ-上的图形,用MA TLAB 作图的程序代码为:>>x=linspace(-4*pi,4*pi,300); %产生300维向量x >>y=sin(x);>>plot(x,y) %二维图形绘图命令结果如图1.1,上述语句中%后面如“%产生300维向量x ”是说明性语句,无需键入。
图1.1 的图形此图也可用fplot 命令,相应的MATLAB 程序代码为: >>clear; close; %clear 清理内存;close 关闭已有窗口。
>>fplot('sin(x)',[-4*pi,4*pi]) 结果如图1.2.图1.2xy sin=的图形如果在同一坐标系下作出两条曲线xy sin=和xy cos=在]2,2[ππ-上的图形,相应的MA TLAB程序代码为:>>x=-2*pi:2*pi/30:2*pi; %产生向量x>>y1=sin(x); y2=cos(x);>>plot(x,y1,x,y2,’:’)%’:’表示绘出的图形是点线结果如图1.3其中实线是xy sin=的图形,点线是xy cos=的图形。
第三章 利用MATLAB绘制函数图形

四、特殊平面图形的绘制
五、三维曲线图形
plot3
如果输入自变量是三个大小相同的矩阵 x、y、z,那么 plot3 会
依序画出每个行矢量在三维空间所对应的曲线
格式:plot3(x1,y1,z1,S1, x2,y2,z2,S2,…) 说明:一次和绘制多条曲线
ezplot3
空间曲线的简易绘图命令
polar(theta,rho,'--r')
% 进行极坐标绘图
用ezpolar作图,输入: ezpolar('5*(1-sin(theta)')
四、特殊平面图形的绘制
hist指令
绘制统计直方图,对大量的资料,显示资料的分布情况和统计特性 格式:hist(Y, n) %n是一个标量,表明使用n个箱子. 将资料依大小分成数堆,将每堆的个数画出 例12:>> x=randn(500,1); %产生500个正态分布随机数 hist(x,25) %将数据绘制成25个直方
>> x= 0:0.1:4*pi; subplot(2, 2, 1); plot(x, sin(x)); subplot(2, 2, 2); plot(x, cos(x)); subplot(2, 2, 3); plot(x, exp(-x/3)); subplot(2, 2, 4); plot(x, x.^2);
注:还可直接输入 ezplot3('x','x*sin(x)*cos(x)','x*cos(x)*cos(x)',[0,20]).
举例—三维绘图
例15:同时绘制两条空间曲线. >> t = linspace(0, 10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t); % 同时画两条曲线
MATLAB绘图函数代码及图形

第一题定积分极限微分function y=f1F=1while F~=0syms x y zF=input('请输入表达式:(变量为x,y,z) 退出-0 ')if F~=0Sel=input('请选择要进行的计算:1-微分 2-极限 3-定积分其他-返回 ') switch Selcase 1Var=input('请输入进行微分的变量: ')N=input('请输入阶数: ')disp('结果为: ')diff(F,Var,N)case 2Var=input('请输入进行极限的变量: ')Val=input('请输入极限要趋近的值: ')disp('结果为: ')limit(F,Var,Val)case 3Var=input('请输入积分变量: ')Val_1=input('请输入积分下限: ')Val_2=input('请输入积分上限: ')disp('结果为: ')int(F,Var,Val_1,Val_2)endendF=input('0-退出,其他-继续')end第二题矩阵的运算function y=f2%syms result;while(1)disp('--------------------------------------');disp('1 -Add');disp('2 -Sub');disp('3 -Multi');disp('4 -Divide');disp('0 -Exit');ch = input('Choose an item to continue:');if( ch == 0)return;endM1 = input('Enter the first Matrix:');M2 = input('Enter the second Matrix:');switch(ch)case 1,result = M1+M2;case 2,result = M1-M2;case 3,result = M1*M2;case 4,result = M1/M2;enddisp('The result is :');disp(result);end%End function第三题矩阵的操作function y=f3while(1)disp('--------------------------------------');disp('1 -转置');disp('2 -求秩');disp('3 -求逆');disp('4 -行列式');disp('0 -Exit');ch = input('Choose an item to continue:');if( ch == 0)return;endM = input('Enter the Matrix:');switch(ch)case 1,result = M';case 2,result = rank(M);case 3,result = inv(M);case 4,result = det(M);enddisp('The transform result is :');disp(result);end%End functionendendend第四题向量的判定function y=f4(vec_1,vec_2,dem_1)vec_1=input('第一个向量:')vec_2=input('第二个向量:')Sel_2=input('选择: 1-判断两向量是否共线 2-判断三向量是否共面') if Sel_2==1A=[vec_1;vec_2]if rank(A)==1disp('两向量共线!')elsedisp('两向量不共线!')endelse if Sel_2==2vec_3=input('请输入第三个向量:')dem_3=length(vec_3)if dem_3==dem_1if cro(vec_1,vec_2)*vec_3'==0disp('三向量共面!')elsedisp('三向量不共面!')endelsedisp('输入向量维数不一致!')endendend第五题向量的长度,方向角的计算点积叉积混合积及投影的计算function y=f5n=1while n~=0vec_1=input('请输入第一个向量:')dem_1=length(vec_1)Sel=input('请选择:1-计算向量的方向角,长度 2-计算向量其他运算其他-返回')if Sel==2vec_2=input('请输入第二个向量:')dem_2=length(vec_2)if dem_1==dem_2Sel_1=input('请选择运算:1-点积 2-向量积(三维) 3-投影(三维) 4-混合积(三维) 5-判断共线,共面')switch Sel_1case 5JUDGE(vec_1,vec_2,dem_1)case 1vec_1*vec_2'case 2PAN(vec_1,vec_2)case 3vec_1*vec_2'./sqrt(vec_2*vec_2')case 4vec_3=input('请输入第三个向量(三维):')dem_3=length(vec_3)if dem_3==dem_1A=PAN(vec_1,vec_2)*vec_3'else disp('维数不一致!')endendelsedisp('输入错误!')endelseif Sel==1disp('模为:')Mol=sqrt(vec_1*vec_1')A=eye(dem_1)m=1while m~=dem_1+1acos(A(m,:)*vec_1'./(sqrt(A(m,:)*A(m,:)')*Mol))*180/pim=m+1endelsen=0endendSel=input('继续计算向量的长度、方向角的计算','向量的点积、叉积、混合积及投影-1,退出-2: ')if Sel==2n=0endend第六题点到直线,平面的距离的计算function y=f6n=1while n~=0Point=input('请输入一个三维点坐标向量:')Sel=input('请选择: 1-点到直线的距离 2-点到面的距离 ')switch Selcase 1LinVec=input('请输入直线方程的方向向量:(三维)')LinPot=input('请输入直线方程所经过的点:(三维)')if length(LinVec)==length(LinPot) & length(LinVec)==length(Point)A=p(LinVec,LinPot-Point)disp('点到直线的距离为:')A*A'./(LinVec*LinVec')else disp('输入数值是非法数值!确认后请重新输入!')endPoint=input('1-继续 2-退出')if Point==2n=0endcase 2PlantVec=input('请输入平面法向量:')PlantPot=input('请输入平面上任意一点:')if length(PlantVec)==length(PlantPot) & length(PlantVec)==length(Point)disp('点到平面的距离为:')[PlantPot-Point]*PlantVec'./(PlantVec*PlantVec')disp('输入数值是非法数值!确认后请重新输入!') end endend第七题 椭圆球 function y=pic1 a = 10; b = 20; c = 10;[x,y] = meshgrid(-2:0.1:2,-2:0.1:2);xa = x.^2/a^2; yb = y.^2/b^2;xyz = (ones(size(x))-xa-yb)*c^2; z = xyz.^0.5; mesh(x,y,z);第八题 双曲抛物面 function []=pic2 a = 5; b = 5;[x,y] = meshgrid(-2:0.1:2,-2:0.1:2);xa = x.^2/a^2; yb = y.^2/b^2; z = yb-xa; mesh(x,y,z);第九题 椭圆抛物面 function y=pic3 a = 2; b = 2;[x,y] = meshgrid(-2:0.1:2,-2:0.1:2);xa = x.^2/a^2; yb = y.^2/b^2; z = xa+yb; mesh(x,y,z);第十题 单页双曲面 function y=pic4 theta=0:pi/20:2*pi rho=1:0.05:3[theta,rho]=meshgrid(theta,rho) r=sqrt(rho.^2-1)[x,y,z]=pol2cart(theta,rho,r)figure(1)hold on z=-zsurf(x,y,z) axis off第十一题 双叶双曲面 function k=pic5t1=[-2*pi:0.05:2*pi]; t2=[-1*pi:0.05:1*pi];[t1,t2]=meshgrid(-2*pi:0.05:2*pi,-1*pi:0.05:1*pi); z=0.2*sqrt(sin(t2).*sin(t2)+1);h1=mesh(2*cos(t1).*sin(t2),sin(t1).*sin(t2),z);hold onh2=mesh(2*cos(t1).*sin(t2),sin(t1).*sin(t2),-z);第十二题椭圆锥面function k=tupian4(x,y)x=[-3:0.01:3];y=[-2:0.01:2];[x,y]=meshgrid(-3:0.01:3,-2:0.01:2); z=sqrt((x/3).^2+(y/2).^2); mesh(x,y,z); hold onmesh(x,y,-z);第十三题 常见二维图形theta=0:0.1:2*pi figure(1) rho=2*thetapolar(theta,rho) title('r=at')t=-2*pi:0.1:2*pi figure(1)x=2*(t-sin(t)) y=2*(1-cos(t)) plot(x,y,'g') xlabel('x') ylabel('y') title('摆线')theta=0:0.1:10*pi figure(1)rho=sqrt(4*sin(2*theta)) polar(theta,rho,'g') hold on rho=-rhopolar(theta,rho,'g')legend('r^2=a^2sin2t',2) hold onrho=sqrt(4*cos(2*theta)) polar(theta,rho,'r') hold on rho=-rhopolar(theta,rho,'r')legend('r^2=a^2cos2t',2)theta=0:0.1:4*pi figure(1)rho=exp(0.2*theta) polar(theta,rho) title('r=exp(at)')x=-5:0.1:5y=(1/sqrt((2*pi)))*exp(-x.^2./2) figure(1)plot(x,y,'g') xlabel('x') ylabel('y')title('概率曲线 ')t=0:0.1:2*pi figure(1)x=2*(cos(t)).^3 y=2*(sin(t)).^3 plot(x,y,'g') xlabel('x') ylabel('y')title('x^2/3+y^2/3=a^2/3')theta=0:0.1:2*pi figure(1)rho=2*cos(3*theta) polar(theta,rho,'g')legend('r=asin3t',4)hold onrho=2*sin(3*theta) polar(theta,rho,'r')legend('r=acos3t')theta=0:0.1:2*pi figure(1)rho=2*cos(2*theta) polar(theta,rho,'g') legend('r=acos2t',4)t=0:0.1:2*pi figure(1) x=2*cos(t) y=2*sin(t) plot(x,y,'g') xlabel('x') ylabel('y')title('x^2/a^2+y^2/b^2=1')theta=0:0.1:2*pi figure(1)rho=2*(1-cos(theta)) polar(theta,rho)title('r=a(1-cos(t))')x=-1:(1/20):1 figure(1)subplot(2,2,1) y=asin(x)plot(x,y,'g') title('asin(x)') axis([-1 1 -2 2])subplot(2,2,2) y=acos(x)plot(x,y,'g') title('acos(x)') axis([-1 1 0 4])subplot(2,2,3)y=atan(x)plot(x,y,'g') title('atan(x)') hold on y=y+piplot(x,y,'--') hold on y=y-2*piplot(x,y,'--')axis([-1.5 1.5 -4 4])subplot(2,2,4) y=atan(x)plot(x,y,'g') title('acot(x)') x=-xy=y+pi/2plot(x,y,'--') hold on y=y+piplot(x,y,'--') hold on y=y-2*piplot(x,y,'--')axis([-1.5 1.5 -pi 2*pi])x=-5:0.1:5y=8*2.^3./(x.^2+4*2.^2) figure(1)plot(x,y,'g') hold on x=-2:0.1:2y=sqrt(4-x.^2)+2 plot(x,y,'r') hold ony=-sqrt(4-x.^2)+2 plot(x,y,'r')xlabel('x') ylabel('y')title('y=8a^3/(x^2+4a^2)')y=-5:0.1:5 figure(1)x=(2*(1+y.^2)).^(0.5)plot(x,y,'g')hold onx=-xplot(x,y,'g') xlabel('x') ylabel('y')title('x^2/a^2-y^2/b^2=1')x=-2:0.1:2 figure(1)subplot(2,4,1) y=x.^2plot(x,y,'g') title('x^2')subplot(2,4,2) y=x.^3plot(x,y,'g') title('x^3')subplot(2,4,3) y=x.^(-1)plot(x,y,'g') title('1/x')subplot(2,4,4) x=0:0.1:2 y=x.^0.5plot(x,y,'g')title('x^(1/2)') subplot(2,4,5) x=-2:0.1:2y=(x.^2).^(1/3) plot(x,y,'g') title('x^(2/3)')subplot(2,4,6) x=0:0.1:2 y=x.^(1/3) plot(x,y,'g') hold on x=-x y=-yplot(x,y,'g') title('x^(1/3)')subplot(2,4,7)x=0:0.1:2plot(x,y,'g')hold ony=-yplot(x,y,'g')title('x^(1/3)')x=-4*pi:(pi/20):4*pifigure(1)subplot(2,2,1)y=sin(x)plot(x,y,'g')title('sin(x)')subplot(2,2,2)y=cos(x)plot(x,y,'g')title('cos(x)')subplot(2,2,3)x=-(pi/2-0.0001):pi/20:(pi/2-0.0001)y=tan(x)plot(x,y,'g')title('tan(x)')hold onx=x+piplot(x,y,'g')hold onx=x-2*piplot(x,y,'g')axis([-(1.5*pi-0.0001) (1.5*pi-0.0001) -10 10])subplot(2,2,4)x=0:pi/20:(pi-0.0001)y=cot(x)plot(x,y,'g')title('cot(x)')hold onx=x-piplot(x,y,'g')axis([-(pi-0.0001) (pi-0.0001) -10 10])theta=0:0.1:4*pifigure(1)polar(theta,rho) title('rt=a')。
1644121用MATLAB绘制函数的图形

用MATLAB 绘制一元函数的图形众所周知,函数值的计算、函数图形的绘制对理解函数的性质有很大的帮助,而绘图正是MA TLAB 最擅长的项目.常用的绘制一元函数图形命令的调用格式和功能说明见表3-1.例1 已知函数arcsin(ln )y x =,求该函数在自变量x 等于,1,e e处的函数值. 解 >> clear>> syms x y>> x=[1/exp(1),1,exp(1)] x =0.3679 1.0000 2.7183 >> y=asin(log(x)) y =-1.5708 0 1.5708例2 绘制函数sin y x =在[]1,16区间上的图形.解 >> clear>> x=1:0.01:16; %变量在[1,16]内取值,步长(点的间隔)为0.01 >> y=sqrt(x)+sin(x); >> plot(x,y)>> xlabel('x') %添加x 坐标轴的名称为x >> ylabel('y') %添加y 坐标轴的名称为y >> title('y=sqrt(x)+sin(x)') %添加图形标题为y=sqrt(x)+sin(x) 运行结果如图3-1所示.图3-1例3 绘制分段函数23,232y x x y x x =-≥⎧⎨=-<⎩,的图形.解 >> clear >> x1=2:0.01:8; >> x2=-8:0.01:2; >> y1=2*x1-3; >> y2=3-x2;>> plot(x1,y1,x2,y2)运行结果如图3-2所示.图3-2例4 同一坐标系下绘制sin ,cos ,0y x y x y ===三条曲线的图形.解 >> clear>> x=linspace(-2*pi,2*pi,800); %生成从2π-到2π共800个数值的等差数组 >> y1=sin(x); >> y2=cos(x); >> y3=0;>> plot(x,y1,x,y2,x,y3)>> gtext('y=sinx') %用鼠标来确定字符串'y=sinx'的位置 >> gtext('y=cosx') %用鼠标来确定字符串'y=cosx'的位置 >> gtext('y=0') %用鼠标来确定字符串'y=0'的位置 运行结果如图3-3所示.图3-3例5 作出椭圆方程221259x y +=的图形. 解 >> clear>> ezplot('x^2/25+y^2/9-1',[-6,6,-4,4])>> grid %为图形添加网络 运行结果如图3-4所示.图3-4例6 将同一个画面分成两个图形区域,在每个图形区域分别画出1sin cos ,y x x =+21y x x=+两条曲线的图形. 解 >> clear>> lims=[-2*pi, 2*pi];>> subplot(1,2,1) % subplot(m,n,p)将画面分成m n ⨯个图形区域,p 为当前图形区域号 >> fplot('sin(x)+cos(x)',lims) >> gtext('y=sinx+cosx') >> subplot(1,2,2)>> ezplot('x+1./x') %比较与fplot( )命令的区别 运行结果如图3-5所示.例7 作函数sin y x =,arcsin y x =和y x =的图形,并观察直接函数与反函数的图形之间的关系.解:>> clear>> x1=-pi/2:0.1:pi/2; >> y1=sin(x1); >> x2=-1:0.1:1; >> y=asin(x2); >> x3=-2:0.1:2; >> y3=x3;>> y2=asin(x2);>> plot(x1,y1,'r*',x2,y2,'y+',x3,y3) 运行结果如下图所示.用MATLAB绘制三维图形用MA TLAB绘制空间曲线与曲面的图形是由plot3( ) 等命令来实现的,常用的绘制三维图形命令的调用格式和功能说明见表4-2.表4-2 绘制三维图形命令的调用格式和功能说明例1 绘制螺旋线sincos(010) x ty t tz tπ=⎧⎪=≤≤⎨⎪=⎩.要求:将同一个画面分成两个图形区域,分别用两种方法绘制螺旋线.解>> clear>> t=0:0.001:10*pi;>> x=sin(t); >> y=cos(t); >> z=t;>> subplot(1,2,1) >> plot3(x,y,z) >> subplot(1,2,2)>> ezplot3('sin(t)','cos(t)','t',[0,10*pi]) 运行结果如图4-1所示.图 4-1例2绘制空间曲线sin cos (010)sin cos x t y tt z t t t π=⎧⎪=≤≤⎨⎪=⎩. 要求:将同一个画面分成两个图形区域,分别用两种方法绘制该空间曲线. 提示:参考例1.例3绘制平面529z x y =-+,其中03,02x y ≤≤≤≤. 解 >> clear >> x=[0:0.1:3]; >> y=[0:0.1:2];>> [x,y]=meshgrid(x,y); >> z=5-2*x+9*y; >> subplot(1,2,1) >> mesh(x,y,z) >> subplot(1,2,2) >> surf(x,y,z)运行结果如图4-2所示.图4-2例4 绘制函数22z x y =+的图形. 解 >> clear >> x=-4:0.5:4; >> y=-4:0.5:4;>> [x,y]=meshgrid(x,y); >> z=x.^2+y.^2; >> mesh(x,y,z)运行结果如图4-3所示.图4-3例5 绘制函数22z x y =-的图形. 提示:参考例4.例6绘制函数z =的图形.提示:参考例4.例7 绘制椭球面222125161x y z ++=. 解 该曲线的参数方程为5sin cos 4sin sin (0,02)cos x u v y u v u v z u ππ=⎧⎪=≤≤≤≤⎨⎪=⎩.>> clear>> u=0:0.1*pi: pi; >> v=0:0.1*pi:2*pi; >> [u,v]=meshgrid(u,v); >> x=5*sin(u).*cos(v); >> y=4*sin(u).*sin(v); >> z=cos(u); >> surf(x,y,z)运行结果如图4-4所示.图4-4例8 绘制球面2229x y z ++=.解 该曲线的参数方程为3sin cos 3sin sin (0,02)3cos x u v y u v u v z u ππ=⎧⎪=≤≤≤≤⎨⎪=⎩.提示:参考例7.。
MATLAB曲线绘制大全

一、二维数据曲线图1.1绘制单根二维曲线plot函数的基本调用格式为:plot(x,y)其中x和y为长度相同的向量,分别用于存储x坐标和y坐标数据。
例1-1在0x2p区间内,绘制曲线y=2e-0.5xcos(4x)程序如下:x=0:pi/100:2*pi;y=2*exp(-0.5*x).*cos(4*pi*x);plot(x,y)例1-2绘制曲线。
程序如下:t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y);plot函数最简单的调用格式是只包含一个输入参数:plot(x)在这种情况下,当x是实向量时,以该向量元素的下标为横坐标,元素值为纵坐标画出一条连续曲线,这实际上是绘制折线图。
1.2绘制多根二维曲线1.plot函数的输入参数是矩阵形式(1)当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。
曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。
(2)当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
(3)对只包含一个输入参数的plot函数,当输入参数是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。
当输入参数是复数矩阵时,则按列分别以元素实部和虚部为横、纵坐标绘制多条曲线。
2含多个输入参数的plot函数调用格式为:plot(x1,y1,x2,y2,,xn,yn)(1)当输入参数都为向量时,x1和yl,x2和y2,,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。
每一向量对可以绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。
(2)当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。
例1-3分析下列程序绘制的曲线。
x1=linspace(0,2*pi,100);x2=linspace(0,3*pi,100);x3=linspace(0,4*pi,100);y1=sin(x1);y2=1+sin(x2);y3=2+sin(x3);x=[x1;x2;x3]';y=[y1;y2;y3]';plot(x,y,x1,y1-1)3.具有两个纵坐标标度的图形在MATLAB中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy绘图函数。
MATLAB画函数图像

MATLAB画函数图像CWW的博客 2019-04-19 15:56:34 43732 收藏 95展开MATLAB绘制图时设置坐标轴的一些常用函数命令Justin_YWX 2019-08-13 17:53:06 1048 收藏 1展开利用MATLAB作图时,一些常用的函数命令:、figure()----创建新图窗;subplot(121)-----创建子图,12表示创建的子图为1行2列排列,1表示其中第一幅子图;xlim,ylim----横纵坐标的范围;xlabel,ylabel-----横纵坐标的名称;xticks,yticks-----横纵坐标刻度;xticklabels,yticklabels-----横纵坐标刻度名;title ---- 有子图时,为子图标题;无子图时,为总标题;suptitle ------ 有子图时,设置总标题。
1 画图基础(1)一元一次函数1.x=0:0.1:1;2.y=x;3.plot(x,y); %图像见下图1图1图2(2)一元多次函数1. x=0:0.1:1;2.y=x.^2;3.plot(x,y); % 图像见图22 分段函数图像1.x=0:0.1:2;2.y=x.*(x>=0&x<=1)+(-(x-1).^2+1).*(x>1&x<=2);3.plot(x,y); %图像见图34.%组合函数y=y1.*(x定义域)+y2.*(x定义域)图3图43 其他小技巧(1)多条曲线画在同一个图像里tip:使用hold on 函数1.t=[0:0.01:1];2.q1=120-180*t.^2+120*t.^3;3.q2=120-600*t.^3+900*t.^4-360*t.^5;4.plot(t,q1);hold on;5.plot(t,q2);6.%图形见图4(2)改变图像中线的颜色和线条形式(针对plot函数)1.t=[0:0.01:1];2.q1=120-180*t.^2+120*t.^3;3.q2=120-600*t.^3+900*t.^4-360*t.^5;4.plot(t,q1,'r');hold on;5.plot(t,q2,'b');6.%见图5图5通过在plot()函数括号里面增加特性来改变图线,常见的颜色和类型如图6图6(3)增加图例tip:利用l egend 函数1.t=[0:0.01:1];2.q1=120-180*t.^2+120*t.^3;3.q2=120-600*t.^3+900*t.^4-360*t.^5;4.plot(t,q1,'r'); hold on;5.plot(t,q2,'b');6.legend('a)函数图像','b)函数图像') %要按函数的顺序来添加7.%见图7。
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]中的最小值,看看它们四个有什么不同?。
Matlab绘图函数一览
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 函数作图
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。
任务10.3 用MATLAB绘制函数图形
形.
一、 利用Matlab绘制平面图形
对于参数方程x = x(t)和y = y(t),ezplot函数的 调用格式为: • ezplot(x,y):在默认区间 0<t<2π 绘制 x=x(t) 和y=y(t)的图
★ Matlab中主要用plot,fplot,ezplot等命令来绘制曲线,使用 时要注意3个命令之间的区别。
一、 利用Matlab绘制平面图形
1)plot的调用格式
• plot(x) —— 缺省自变量绘图格式,x为向量, 以x元素值 为纵坐标,以相应元素下标为横坐标绘图.
• plot(x,y) —— 基本格式,以y(x)的函数关系作出直角坐标 图,如果y为n×m的矩阵,则以x 为自变量,作出m条曲线.
fplot(f,[a,b]) 在区间 [a,b] 上绘制函数f的图形
ezplot(f,[a,b]) 在区间 [a,b]上绘制函数f的图形
figure(n) 指定n号图形窗口
subplot(m,n,k) 将图形窗口分为 m*n 个子图,指向第 k 幅图
hold on/hold off 保留/释放图形窗口的图形
xmax]的函数图。 fplot(fun,lims,’s’) — 以指定线形绘图。
一、 利用Matlab绘制平面图形
例4 用fplot函数绘制 f(x)=cos(tan(πx)) 的曲线. 解 命令如下:
fplot('cos(tan(pi*x))',[ 0,1])
一、 利用Matlab绘制平面图形
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
文字加注:
x=-1.5:0.001:1.5;
y=(x.^2-1).^3+1;
plot(x,y)
title('\fontsize{14}\fontname{宋体}函数图像:y=(x^2-1)^3+1')
xlabel('\fontsize{14}x'),ylabel('\fontsize{14}y')
text(-1,1.1,'\fontsize{8}点(1,1)处倒数为零,但无极值')
x=-10:1:10;
y=-(x-5).^2+2;
[y_max,x_max]=max(y);
num2str(y_max);
num2str(x_max);
plot(x,y)
hold on
plot(y_max,t_max,'r.')
hold off
字符串的应用:
a=2;
w=3;
t=0:0.01:10;
y=exp(-a*t).*sin(w*t);
[y_max,t_max]=max(y);
t_text=['t=',num2str(t (t_max))];
y_text=['y=',num2str(y_max)];
max_text=char('maxinum',t_text,y_text);
tit=['字符串的应用:y=exp(-',num2str(a),'t)*sin(',num2str(w),'t)']; hold on
plot(t,y,'b')
plot(t(t_max),y_max,'r.')%最大值处以红点标示
text(t(t_max)+0.3,y_max+0.05,max_text)
title(tit),xlabel('t'),ylabel('y')
hold off
求近似极限,修补图形缺口:
t=-2*pi:pi/10:2*pi;
y=sin(t)./t;
tt=t+(t==0)*eps;%逻辑数组参与运算,用“机械零”代替零元素
yy=sin(tt)./tt;%用数值可算的sin(eps)/eps近似替代sin(0)/0
subplot(1,2,1),plot(t,y),title('残缺图形
'),xlabel('t'),ylabel('y'),axis([-7,7,-0.5,1.2])
subplot(1,2,2),plot(tt,yy),title('正确图形
'),xlabel('tt'),ylabel('yy'),axis([-7,7,-0.5,1.2])
三维图像:
z=peaks(50);
[x,y]=meshgrid([-4:0.1:4]);
m=peaks(x,y);
subplot(2,2,1);h=mesh(z);
subplot(2,2,2);surf(z);
subplot(2,2,3);plot3(x,y,m)
摆线方程图形:
a=1;
t=0:0.1:4*pi;
x=a*(t-sin(t));
y=a*(1-cos(t));
plot(x,y)
axis image
title('\fontsize{14}\fontname{宋体}摆线方程图形')
xlabel('x')
ylabel('y')
箕形线图形:
a=1;
x=-8:0.1:8;
y=8*a.^3./(x.^2+3*a.^2);
plot(x,y)
axis image
title('\fontsize{14}\fontname{宋体}箕形线图形');
xlabel('\fontsize{14}x'),ylabel('\fontsize{14}y')
阿基米德螺旋线
a=2;
t=0:0.1:5*pi;
m=a*t;
x=m.*cos(t);
y=m.*sin(t);
plot(x,y)
hold on
plot(-x,y,'b:')
axis image
title('\fontsize{14}\fontname{宋体}阿基米德螺旋线:m=at') xlabel('\fontsize{14}x')
ylabel('\fontsize{14}y')
四叶玫瑰线:
a=2;
t=0:0.01:2*pi;
b=a*sin(2*t);
x=b.*cos(t);
y=b.*sin(t);
plot(x,y)
axis image
title('\fontsize{14}\fontname{仿宋}四叶玫瑰线:b=a*sin(2*t)') xlabel('x')
ylabel('y')
对数螺线:
a=2;
t=-pi:0.01:pi;
b=a.*exp(t);
x=b.*cos(t);
y=b.*sin(t);
plot(x,y)
axis image
title('\fontsize{14}\fontname{仿宋}对数螺线:b=a*e^t')
xlabel('x')
ylabel('y')
渐伸线:
a=5;
t=0:0.01:1.5*pi;
x=a*(cos(t)+t.*sin(t));
y=a*(sin(t)-t.*cos(t));
plot(x,y)
hold on
t1=0:0.01:2*pi;
plot(a.*cos(t1),a.*sin(t1))
hold off
title('渐开线')
xlabel('x'),ylabel('y')
悬链线方程:
x=-10:0.1:20;
a=5;
y=a.*(exp(x./a)+exp(-x./a))./2;
plot(x,y)
title('悬链线')。