写在前面
首先,我们是来学习怎么使用MatLab的,不是来学习高数的,我们只要知道图形对应的表达式就好了,其他的就不用管这么多了。
其次,不用一开始就强迫自己把相应的函数给记住,我们只要记住哪有,要用的时候“模仿”一下就好了,还有要学会使用help。
一、心型线
1.表达式
极坐标方程:
水平方向: ρ=a(1-cosθ) 或 ρ=a(1+cosθ) (a>0)
垂直方向: ρ=a(1-sinθ) 或 ρ=a(1+sinθ) (a>0)
默认a = 1 ,θ范围为[0,2Π]
直角坐标方程:
心形线的平面直角坐标系方程表达式分别为
x^2+y^2+a*x=a*sqrt(x^2+y^2)
x^2+y^2-a*x=a*sqrt(x^2+y^2)
x^2+y^2+a*y=a*sqrt(x^2+y^2)
x^2+y^2-a*y=a*sqrt(x^2+y^2)
参数方程
x=a*(2*cos(t)-cos(2*t))
y=a*(2*sin(t)-sin(2*t))
同理改变对应符号和x和y参数方程的第二项符号可以得出另外三幅图
2.程序
2.1极坐标系作图
将会用到的函数有
| subplot(n1,n2,n) | 将幕布划分为n1行n2列,选择第n个 |
| title('标题名') | 在''中输入标题名字 |
| polar(θ,ρ,'图线条设定') | θ为极角,ρ为极径,线条设定先不管(不影响使用) |
θ 即为 程序中的变量 theta
r1,r2,r3,r4为相应的极径ρ
close all;%关闭图像 theta = linspace(0,2*pi); %生成极角范围为 0 - 2*pi 的100个等间距点的行向量 r1 = 1 + cos(theta);%图一的极径 r2 = 1 + sin(theta); r3 = 1 - cos(theta); r4 = 1 - sin(theta); subplot(2,2,1);%图1 polar(theta,r1,'r');%polar函数:极坐标系作图 图1 红色 title('r = 1 + cos(t)');%设置标题名字 subplot(2,2,2);%图2 polar(theta,r2,'b');%蓝色 title('r = 1 + sin(t)'); subplot(2,2,3);%图3 polar(theta,r3,'g');%绿色 title('r = 1 - cos(t)'); subplot(2,2,4);%图4 polar(theta,r4,'k');%黑色 title('r = 1 - sin(t)');
讯享网
执行代码,得到下面的图像
2.2参数方程作图
将会用到的函数有

| subplot(n1,n2,n) | 将幕布划分为n1行n2列,选择第n个 |
| axis equal | 沿每个坐标轴使用相同的数据单位长度 |
| plot(x,y,'图线条设定') | x为横坐标,y为纵坐标,线条设定同样不管 |
下面程序有四幅图,研究代码时先选择其中一个即可
讯享网close all;%关闭图像 theta = linspace(0,2*pi); %生成参数范围为0-2*pi的100个等间距点的行向量 x1 = 2*cos(theta) + cos(2*theta); y1 = 2*sin(theta) + sin(2*theta); x2 = 2*sin(theta) + sin(2*theta); y2 = 2*cos(theta) + cos(2*theta); x3 = 2*cos(theta) - cos(2*theta); y3 = 2*sin(theta) - sin(2*theta); x4 = 2*sin(theta) - sin(2*theta); y4 = 2*cos(theta) - cos(2*theta); subplot(2,2,1);%画第一幅图 plot(x1,y1,'r');%红色 axis equal; %沿每个坐标轴使用相同的数据单位长度 (下同) subplot(2,2,2);%画第二幅图 plot(x2,y2,'b');%蓝色 axis equal; subplot(2,2,3);%画第三幅图 plot(x3,y3,'g');%绿色 axis equal; subplot(2,2,4);%画第四幅图 plot(x4,y4,'k');%黑色 axis equal;
执行代码,得到下面的图像

2.3隐函数作图
这是我觉得最简单,最方便,最强大的一种作图方式了
将会用到的函数有
| ezplot('表达式',[xMIN,xMAX,yMIN,yMAX]) | ''中填入对应的应函数即可,后面为参数的取值范围,默认为-2Π到2Π |
程序为
%隐函数的图像的绘制 close all;%关闭所有图像 subplot(2,2,1);%第一幅图 %使用ezplot函数,在''中输入隐函数即可 ezplot('x^2 + y^2 - x - sqrt(x^2 + y^2)',[-0.6,2.2,-1.5,1.5]); %后面数组为x和y轴的范围 [x最小,x最大,y最小,y最大] axis equal;%沿每个坐标轴使用相同的数据单位长度 (下同) subplot(2,2,2); ezplot('x^2 + y^2 - y - sqrt(x^2 + y^2)',[-1.5,1.5,-0.6,2.2]); axis equal; subplot(2,2,3); ezplot('x^2 + y^2 + x - sqrt(x^2 + y^2)',[0.6,-2.2,-1.5,1.5]); axis equal; subplot(2,2,4); ezplot('x^2 + y^2 + y - sqrt(x^2 + y^2)',[1.5,-1.5,0.6,-2.2]); axis equal;
得到下图

二、马鞍面
1.表达式
马鞍面,是一种曲面,又叫双曲抛物面,形状类似于马鞍。
函数解析式为: z=x2/a2-y2/b2
2.程序
将会用到的函数
| meshgrid(x,y) | 生成区域为x,y范围内的矩形网格 |
| mesh(X,Y,Z) | 填充线条绘图 |
| surf(X,Y,Z) | 填充网格绘图 |
| plot3(X,Y,Z) | 三维曲线构成曲面 |
| view(az,el) | 调整视角,az为方位角,el为仰角 |
1.定义x,y的取值范围
2.使用meshgrid生成相应的矩形网格
3.写出对应的关于Z的表达式
4.利用绘图函数画出图像
讯享网close all; x = linspace(-10,10); y = linspace(-10,10); [X,Y] = meshgrid(x,y);%生成网格 Z = X.^2 - Y.^2;%a = b = 1 subplot(2,2,1);%图1 mesh(X,Y,Z);%填充线条绘图 view(20,40);%调整视角 subplot(2,2,2);%图1 surf(X,Y,Z);%填充网格绘图 view(20,50);%调整视角 subplot(2,2,3);%图1 plot3(X,Y,Z);%三维曲线构成曲面 view(20,60);%调整视角
得到下面三幅图

三、总结
通过对心形图和马鞍面的绘制,已经基本掌握MATLAB曲线和曲面的绘制方法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/50068.html