MATLAB二元隐函数绘图命令fimplicit3详解

article/2025/7/15 8:58:21

一、引言

fimplicit3功能是绘制二元隐函数的曲面图形。
类似于一元函数分为显函数和隐函数,二元函数也有显函数和隐函数之分。形如z=f(x,y)的二元函数称为显函数,而由三元方程f(x,y,z)=0确定的二元函数称为隐函数。
二元函数对应的几何图形是空间曲面,也称为三维曲面。
对于二元显函数绘图,可以使用matlab命令mesh、fmesh、surf和fsurf以及相应的扩展函数来实现。
对于隐函数,有些可以显化,此时可以使用上述matlab绘图命令来绘图,但是仍旧有很多二元函数不易显化,这就需要使用fimplicit3实现曲面的绘制。

二、implicit3基本语法

fimplicit3基本语法主要包括以下几种:
1)fimplicit3(@(varibles)function)
其中varibles是方程f( ·, ·, · ) = 0中全部的变量,function是确定隐函数的三元方程f( ·, ·, · ) = 0中左端项,也就是三元函数f( ·, ·, · )。
此语法没有给出自变量的取值范围,如果因变量|z|的最大值可以达到5,则以此来限制自变量的取值范围,否则限制自变量的取值范围为[-5,5]。
2)fimplicit3(@(varibles)function, interval, linespec)
其中:
varibles是方程f( ·, ·, · ) = 0中全部的变量,function是确定隐函数的三元方程f( ·, ·, · ) = 0中左端项,也就是三元函数f( ·, ·, · );
interval表示方程中三个变量的区间;
linespec表示图元的属性。
补充:当f( ·, ·, · )中只给出一组取值范围时,是表示三个变量的取值范围相同,以竖坐标z优先。
3)fimplicit3(@(varibles)function, name,value)
其中
varibles是方程f( ·, ·, · ) = 0中全部的变量,function是确定隐函数的三元方程f( ·, ·, · ) = 0中左端项,也就是三元函数f( ·, ·, · );
name表示曲面属性的名称;
value是name的取值。
★★★ 参数name的常见取值有
‘EdgeColor’ 表示曲面上网格线的颜色
‘FaceAlpha’ 表示透明度
‘FaceColor’ 表示曲面的颜色
‘MeshDensity’ 表示每个方向上的计算点数
‘LineStyle’ 表示网格线的线型
‘LineWidth’ 表示网格线的线条宽度
补充:
fimplicit3参数function的定义形式即可以是使用@法定义的,也可以是通过syms定义符号变量而得到的符号函数,
例如:
fun = @(x,y,z)x.^2 + y.^2 - z.^2
或者:
syms x y z;
fun = x^2 + y^2 - z^2;
注意:使用@法生成的符号函数,必须在变量的后面加. ,表示数组元素的运算,否则会提示告警信息。

三、implicit3绘图示例

Demo1:绘制如下方程表示的曲面图形。
在这里插入图片描述

%示例代码
fimplicit3( @(x,y,z)x.^2 + y.^2 - z ); 
axis equal
title( 'x^2 + y^2 - z = 0:旋转抛物面' );
%运行结果

在这里插入图片描述

Demo2:绘制如下方程表示的曲面图形。
在这里插入图片描述

%示例代码
fun = @(x,y,z)x.^2 + y.^2 + z
fimplicit3( fun ); 
axis equal
title( 'x^2 + y^2 + z = 0:旋转抛物面' );
%运行结果

在这里插入图片描述
从以上两个demo可以发现,|z|的最大值达到了5,此时由z限制了x和y的取值范围。

Demo3:绘制如下方程表示的椭球面曲面图形。
在这里插入图片描述

%示例代码
syms x y z;
fun = x^2/16 + y^2/9 - z
fimplicit3( fun ); 
axis equal
title( 'x^2/16 + y^2/9 - z = 0:椭圆抛物面' );
%运行结果

在这里插入图片描述
由此图可以看出,x和y的取值范围是[-5,5],而z的取值最大值小于5,曲面图形看起来也不够美观,为了改善这个问题,可以使用下面的语法来实现。

Demo4:绘制如下方程表示的旋转抛物面图形,给定变量的取值范围,并指定绘图的颜色。
在这里插入图片描述

%示例代码
fimplicit3( @(x,y,z)x.^2 + y.^2 - z, [-5, 5, -5, 5, 0, 25], 'r' ); 
axis equal
title( 'x^2 + y^2 - z = 0:旋转抛物面' );
%运行结果

在这里插入图片描述
Demo5:绘制如下方程表示的曲面图形,给定一组变量取值范围,并指定绘图的线元。
在这里插入图片描述

%示例代码
fimplicit3( @(x,y,z)x.^2 + y.^2 + z, [-20, 5], 'o' ); 
axis equal
title( 'x^2 + y^2 + z = 0:旋转抛物面' );
%运行结果

在这里插入图片描述
Demo6:绘制如下方程表示的曲面图形,指定绘图的线元颜色。
在这里插入图片描述

%示例代码
fimplicit3( @(x,y,z)x.^2 + y.^2 - z.^2 - 1, 'b' ); 
axis equal
title( 'x^2 + y^2 - z^2 - 1 = 0:旋转单叶双曲面' );
%运行结果

在这里插入图片描述
Demo7:绘制如下方程表示的曲面图形,指定绘图的线元颜色。
在这里插入图片描述

%示例代码
fimplicit3( @(x,y,z)-x.^2 + y.^2 + z.^2 + 1, 'c' ); 
axis equal
title( '-x^2 + y^2 + z^2 + 1 = 0:旋转双叶双曲面' );
%运行结果

在这里插入图片描述
Demo8:绘制如圆锥面的曲面图形,指定绘图的线元颜色、曲面颜色和变量取值范围。
在这里插入图片描述

%示例代码
syms x y z
fun = x^2 + y^2 - z^2;
fimplicit3( fun,[ -1, 1 ], 'EdgeColor', 'c', 'Facecolor', [ 1, 0.5, 0.5 ] );
axis equal
title( ' x^2 + y^2 - z^2 = 0:圆锥面' )
%运行结果

在这里插入图片描述
Demo9:绘制如下方程对应的马鞍面图形。

在这里插入图片描述

%示例代码
fun = @(x,y,z)x.*y - z;
fimplicit3( fun, 'FaceColor', 'b', 'FaceAlpha', 0.5 ); 
axis equal
title( 'z = x * y:马鞍面' );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
view( [-0.2, 0.8, 0.5] );%调整视角
%运行结果

在这里插入图片描述
Demo10:绘制马鞍面图形。
在这里插入图片描述

%示例代码
fun = @(x,y,z)x.^2 - y.^2 - z;
fimplicit3( fun, [ -10, 10 ], 'EdgeColor', 'None', 'FaceAlpha', 0.8 ); 
axis equal
title( 'z = x^2 - y^2:马鞍面' );
xlabel( 'x' )
ylabel( 'y' )
zlabel( 'z' )
view( [-0.2, 0.8, 0.5] );%调整视角
cmap = colorbar
%运行结果

在这里插入图片描述
Demo11:采用不同的颜色和网格数绘制单位球面。

%示例代码
subplot( 1, 3, 1 )
syms x y z
fun = x^2 + y^2 + z^2 - 1;
fimplicit3( fun, 'EdgeColor', 'c', 'Facecolor', 'm', 'MeshDensity', 20 );
subplot( 1, 3, 2 )
fimplicit3( fun, 'EdgeColor', 'b', 'Facecolor', 'm', 'MeshDensity', 50 );
subplot( 1, 3, 3 )
fun = @(x,y,z)x.^2 + y.^2 + z.^2 - 1;
fimplicit3( fun, 'EdgeColor', 'None', 'Facecolor', 'c' );
suptitle( 'x^2 + y^2 + z^2 = 1:单位球面' )
%运行结果

在这里插入图片描述


http://chatgpt.dhexx.cn/article/HxEbIs2q.shtml

相关文章

隐函数的求导

目录 隐函数的定义: 例题: 参数方程确定函数的导数 例题: 相关变化率 ​编辑 隐函数的定义: 有隐函数就有显函数,我们首先要了解显函数的定义: 隐函数: 例如: 对于有些隐函数&a…

4.1 显函数曲线的动画

例 4.1.1 作出幂函数 yx^k 的动画 (k从0.1变到3)。 解 输入以下命令: with(plots): K:30: a:0.1: L:seq(plot(x^(a*k), x0…4), k0…K): display(L, insequencetrue, scalingconstrained, tickmarks[2,2], view[-0.2…4, -0.2…4]); 输出动画: 例 4.1.2…

095: 复习习题 求导题型 Case1:显函数求导;Case2:隐函数求导;Case3:参数方程确定的函数

095: 复习习题 求导题型 Case1:显函数求导;Case2:隐函数求导;Case3:参数方程确定的函数

《高数》笔记 一

为什么学高数? 锻炼自己的思维,以防老年痴呆。 如何服用高等数学?(学习方法) 做题不盲目做,一点点增加难度,难题一定要自己做出来不急于求成知道答案,过程对你很重要。 课程目标…

2.1 显函数曲面

二元函数 zf(x, y) 的图形一般是曲面。 曲面 作图的基本格式: plot3d(f(x,y), xa…b, yc…d); 例 2.1.1 作出以下函数的图形 (定义域是一个正方形区域) 解 输入以下命令: plot3d(x^ 2y^2, x-2…2, y-2…2); 输出图形&#xff1…

matlab符号函数作图,matlab制图—符号函数(显函数、隐函数和参数方程)画图

例1:在[0,pi]上画ycos x 的图形. 解:ezplot(cos(x),[0,pi]) 所制图形是: 例2:在[0,2pi]上画xcost^3,ysint^3星形图. 解:ezplot(cos(t)^3,sin(t)^3,[0,2*pi]) 所制图形是: 例3:在[-2,0.5],[0,2]上画隐函数exp^xsin(xy)0的图. 解:ezplot(exp(x)sin(x*y),[-…

1.1 显函数的图形

1.1 显函数的图形 作函数 yf(x) 的图形: 用Maple作图的基本格式: plot(f(x), xa…b); 注意: 分号(;)结束表示显示图形; 冒号(:)结束表示不显示图形。 例1.1.1 作出以下函数的图形: 解 输入以下命令,并以分号结束: plot(sin(x), x…

MATLAB显函数作图 参数方程作图 极坐标方程作图绘图实例 用 Matlab 绘制高颜值函数图像 放大看告别浓浓锯齿风

1.1 显函数作图 1.2 参数方程作图 1.3 极坐标方程作图 1.1 显函数作图 图1. 图2. % Eg001 % fplot 用法 clf x linspace(-6,6,10000); y sin(pi./x); subplot(2,1,1) plot(x,y,linewidth,0.8) hold on plot([-6 6],[0 0],:r) axis image axis equal grid on b…

R语言绘图|洛伦兹曲线

本文主要参考冯亚芬等(2017)在地理科学发表的《广东省传统村落空间分布特征及影响因素研究》 一文。演示数据来自文中表1数据 setwd("C:\\Users\\Acer\\Desktop\\R学习\\常用数据") library(tidyverse) library(reshape2) data <- readxl::read_xlsx("不均…

常见r语言绘图代码

1. PCA图 1.1 平面 PCA图 #install.packages("ggplot2") library(ggplot2) 略&#xff08;具体看资料分享&#xff09; 1.2 3D PCA图 #install.packages("scatterplot3d") library(scatterplot3d) 略&#xff08;具体看资料分享&#xff09; 1…

R语言绘图基础篇-线图

教程文档下载 文末二维码 交 流 分 享 扣 扣 群 : 925920448 \color{red}{交流分享扣扣群:925920448} <

R语言绘图--PCA图

PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。在生物信息分析中,PCA常用于分析不同样本之间的相互关系,可以基于表达量或者SNP突变类型进…

R语言绘图样式设置

R语言绘图样式设置 1、pch&#xff1a;设置绘图点的样式即标记的形状&#xff0c;默认情况下绘图标记为小的空圆圈 如&#xff1a;pch0表示无填充的正方形&#xff0c;pch1表示无填充的圆形&#xff0c;pch2表示无填充的三角形...所取范围为0~25 2、cex&#xff1a;绘图标记的…

R语言绘图大小及图例问题

R语言绘图大小及图例问题 一直对R语言绘图的布局参数不是很熟悉&#xff0c;今天了解了一下 par()函数 par()函数可以设置绘图的全局参数&#xff0c;如lty、pch等。这些设置除非被修改&#xff0c;否则在接下来的所有代码中均成立。 par(no.readonly T) 显示默认参数值 …

好程序员web前端分享:如何理解web语义化?

首先&#xff0c;在理解之前&#xff0c;我们需要先了解&#xff0c;什么是语义化。所谓语义化&#xff0c;简单来说&#xff0c;就是能够更清晰&#xff0c;更直观的理解语言所要表达的含义&#xff0c;所谓词必达意就是这个意思。那么在开发过程中的语义化指的是什么呢?就是…

Web语义

根据老师上课内容整理&#xff0c;内容有点乱 目录 语义WEB&#xff08;semantic web&#xff09;语义web针对的问题RDF本体&#xff08;ontology&#xff09; 语义WEB&#xff08;semantic web&#xff09; 是对未来网络设想&#xff0c;用xml来定义 在自然语言处理当中使用…

表现与数据分离、Web语义化

表现与数据分离&#xff1a; 也可以说是界面与数据分离&#xff0c;要体现在代码上&#xff0c;操作数据的代码和操作界面的代码&#xff0c;要分开写。 优势&#xff1a;当页面需求发生改变&#xff0c;只需要改写界面的代码&#xff0c;并且修改的代码不能影响到操作数据访问…

关于Web语义化

对于“web语义化”这个词语我相信只要是从事前端的人都不陌生&#xff0c;当然我对这个词语也是非常熟悉&#xff0c;我相信从事前端工作的同事在投简历时都会在招聘需求里面看到这句话&#xff1a;“对web语义化有深刻的理解”&#xff0c;当然我本人也是从某公司的招聘需求里…

web标准与语义化

一、WEB标准介绍 WEB&#xff08;World Wide Web万维网&#xff09;标准是一系列标准的集合。 目的&#xff1a;实现内容(结构)和表现分离&#xff0c;就是将样式剥离出来放在单独的css文件中。这样做的好处是可以分别处理内容和表现&#xff0c;也方便搜索和内容的再利用。 …

浅谈web语义化

浅谈web语义化 觉得很好的一篇文章&#xff0c;转载过来&#xff0c;原文链接https://www.cnblogs.com/p2227/p/3586725.html web语义化是什么 HTML5标准出来的时候&#xff0c;我曾经诧异为什么要定义这么多header footer nav article标准&#xff0c;DIV不挻好的嘛&#x…