Python实现:绘制二元函数的函数曲线与等高线
实验五二元函数的图形
【实验目的】
1.了解二元函数图形的绘制。
2.了解空间曲面等高线的绘制。
3.了解多元函数插值的方法。
4.学习、掌握 MATLAB 软件有关的命令。
【实验内容】
画出函数 zx2y 2 的图形,并画出其等高线。
【实验准备】
1.曲线绘图的 MATLAB 命令
MATLAB 中主要用 mesh,surf命令绘制二元函数图形。 主要命令
mesh(x,y,z)画网格曲面,这里x,y,z 是数据矩阵,分别
表示数据点的横坐标, 纵坐标和函数值, 该命令将数据点在空间中描
出,并连成网格。
surf(x,y,z)画完整曲面,这里x,y,z 是数据矩阵,分别表
示数据点的横坐标, 纵坐标和函数值, 该命令将数据点所表示曲面画
出。
【实验重点】
二元函数图形的描点法
曲面交线的计算
地形图的生成【实验难点】
二元函数图形的描点法
曲面交线的计算
【实验方法与步骤】
练习 1 画出函数 zx 2y 2 的图形,其中(x, y)[ 3, 3][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 所示的三维等高线的MATLAB
代码为
>>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 二次曲面的方程如下
x
2
y2
z2
d
a
2
b2
c2
讨论参数 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),-a
上一篇: 用Python绘制二次函数曲线的简单教程
下一篇: 用R语言绘制函数曲线图的实例教程
推荐阅读
-
卷积的意义--我见过最生动易懂的解释--就是在图像处理中,将两组分辨率不同的图像进行卷积处理,从而形成易于处理的平滑图像。卷积甚至可以用在考试作弊中,为了让照片中的两个人同时像,只要对两个人的图像进行卷积处理就可以了,这是一种平滑处理,但我们如何才能真正把这个公式与实际建立一种联系,也就是说我们能不能从生活中找到一个很方便具体的例子来表达这个公式的物理意义呢? 有一个七品县令,喜欢打骂无赖,并有一个惯例:只要不犯大罪,只打一顿就放他回家,以示爱民如子。 有一种无赖,想扬名立万却又不抱多大希望,心想:既然扬不了好名,出了臭名也成啊。怎样才能出恶名呢?炒作!怎么炒作?找名人!他自然而然地想到了自己的长官--县令。 无赖于是在光天化日之下,站在县衙门口撒了泡尿,后果可想而知,自然是被请进堂上挨了板子,然后昂首挺胸地回家,躺了一天,哎!身体并无大碍!第二天照样如此,全然不顾行政长管的仁慈和衙门的尊严,第三天、第四天 ......每天去县衙领板子回来,还兴高采烈,坚持了一个月之久!这个无赖的名声像衙门口的臭气一样传遍了八方! 县太爷噤了噤鼻子,愣愣地望着惊堂木案,皱了皱眉头,思考着一个问题:这三十块大木板怎么会不好用呢?......想想也是,当年这位大人金榜题名的时候,我数学考了满分,所以这道题至少今天得解出来: --人(系统!)会怎么样(系统!)之后会怎么样(输出!)人(系统!)被打之后会怎么样? --有什么用,很疼! --我问的是:会发生什么? --取决于有多疼。就像这个无赖的体质,每天挨一板什么事都不会发生,连哼哼两声都不行,你看他那得意洋洋的样子(输出 0);如果一次连打他十板,他可能会皱着眉头,咬着牙,硬是不哼一声(输出 1);打到二十板,他会疼得脸都变形了,像猪一样哼哼唧唧(输出 3);打到三十板,他可能会像驴一样嚎叫,一把鼻涕一把泪,求你饶他一命(输出 5);打到四十板,他会大小便失禁,勉强哼哼(输出 1);打到五十板,他连哼哼都不能哼一下(输出 0)--死! 县官摊开坐标纸,绘制了一条以挨打次数为 X 轴、哼唱程度(输出)为 Y 轴的曲线: --"呜呼!这条曲线就像一座山,想不通,想不通。为什么那个无赖被打了三十天也不喊救命? --哦,你打的时间间隔(Δτ=24小时)太长了,这样无赖一天承受的痛苦程度,没有叠加,始终是个常数;如果缩短时间间隔(建议Δτ=0。5 秒),那么他的疼痛程度就可以迅速叠加;等到无赖挨了三十下(t=30)时,疼痛程度已经达到他叫喊能力的极限,就会收到最好的惩戒效果,再多挨几下也不会手下留情。 --还是不太明白,为什么疼痛程度会在小时间间隔内叠加? --这跟人(线性时变系统)对木板(脉冲、输入、激发)的反应有关。什么是响应?人收到板子后,疼痛的感觉会在一天内(假设,因人而异)慢慢消失(衰减),而不是突然消失。这样,只要中风的时间间隔较小,每次中风造成的疼痛就没有时间完全衰减,都会对最终的疼痛程度产生不同的影响: t 块大板造成的疼痛程度 = Σ(第 τ 块大板造成的疼痛程度 * 衰减系数)[衰减系数是 (t - τ) 的函数,请仔细品味] 数学表达式为:y(t) = ∫T(τ)H(t-τ)
-
Python实现的外点惩罚函数法编程实例与作业解析
-
用Python绘制数学函数曲线的方法(2020年5月23日)
-
Python实现幂函数曲线拟合与回归模型
-
Python实现:绘制二元函数的函数曲线与等高线
-
用Python绘制二次函数曲线的简单教程
-
用Python 3绘制函数曲线并实现Softmax算法
-
如何在pheatmap中绘制包含NA的热力图:与image函数实现三角统计分析图的对比
-
玩转Python与经济学:轻松探索无差异曲线与效用函数的可视化世界
-
Python Pygame实战:绘制sin函数曲线的学习笔记第14篇