用matlab绘制三维图_家系图绘制的基本规则

用matlab绘制三维图_家系图绘制的基本规则情形一:函数有显式表达式z=f(x,y)z=f(x,y)z=f(x,y)例1:圆锥面:z=x2+y2z=\sqrt{x^2+y^2}z=x2+y2​clc,clear,closeallx=-5:0.1:5;[X,Y]=meshgrid(x);Z=sqrt(X.^2+Y.^2);mesh(X,Y,Z)例2:旋转抛物面z=2−x2−y2z=2-x^2-y^2z=2−x2−y2clc,clear,closeallx=-5:0.1:5;[X,Y]=meshgrid(x);Z=2-X

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

情形一:函数有显式表达式 z = f ( x , y ) z=f(x,y) z=f(x,y)
主要使用函数:meshgrid,mesh,fmesh

例1:圆锥面: z = x 2 + y 2 z=\sqrt{x^2+y^2} z=x2+y2

clc,clear,close all
x=-5:0.1:5;
[X,Y]=meshgrid(x);
Z=sqrt(X.^2+Y.^2);
mesh(X,Y,Z)

在这里插入图片描述

例2:旋转抛物面 z = 2 − x 2 − y 2 z=2-x^2-y^2 z=2x2y2

clc,clear,close all
x=-5:0.1:5;
[X,Y]=meshgrid(x);
Z=2-X.^2-Y.^2;
mesh(X,Y,Z)

在这里插入图片描述

例3:抛物柱面 z = 1 − x 2 z=1-x^2 z=1x2

clc,clear,close all
x=-5:0.1:5;
[X,Y]=meshgrid(x);
Z=1-X.^2;
mesh(X,Y,Z)

在这里插入图片描述
例3:平面 z = 1 z=1 z=1

clc,clear,close all
x=-5:0.1:5;
[X,Y]=meshgrid(x);
Z=zeros(size(X))+1;
mesh(X,Y,Z)

在这里插入图片描述

此外,还可利用 fmesh 函数

例1: z = e y sin ⁡ x − e x cos ⁡ y + e x + e y z=e^y\sin x-e^x\cos y+e^x+e^y z=eysinxexcosy+ex+ey

clc,clear,close all
syms x y
f=sin(x)*exp(y)-cos(y)*exp(x)+exp(x)+exp(y);
fmesh(f)

在这里插入图片描述

情形二:

情形三:函数表达式不含有 z z z
主要使用函数:meshgrid,isosurface

例1:抛物柱面 x = 2 y 2 x=2y^2 x=2y2

clc,clear,close all

x=-5:0.1:5;
y=-5:0.1:5;
z=[-5,5];

[X,Y,Z] = meshgrid(x,y,z);
v = 2*Y.^2-X;
isosurface(X,Y,Z,v,0)
grid on

在这里插入图片描述
例2:平面 y = 0 y=0 y=0

clc,clear,close all
x=-5:0.1:5;
y=-5:0.1:5;	
z=[-5,5];	
[X,Y,Z] = meshgrid(x,y,z);
v = Y;	
isosurface(X,Y,Z,v,0)

在这里插入图片描述

例3:平面 x + y = 0 x+y=0 x+y=0

clc,clear,close all
x=-5:0.1:5;
y=-5:0.1:5;
z=[-5,5];
[X,Y,Z] = meshgrid(x,y,z);
v = X+Y-1;
isosurface(X,Y,Z,v,0)

在这里插入图片描述
情形3:函数有参数表达式
主要使用函数 fplot3

例1:
x = sin ⁡ ( t ) y = cos ⁡ ( t ) z = t \begin{aligned} x&=\sin(t)\\ y&=\cos(t)\\ z&=t \end{aligned} xyz=sin(t)=cos(t)=t

clc,clear,close all
xt = @(t) sin(t);
yt = @(t) cos(t);
zt = @(t) t;
fplot3(xt,yt,zt)

在这里插入图片描述
例2:
x = e − t / 10 sin ⁡ ( 5 t ) y = e − t / 10 cos ⁡ ( 5 t ) z = t \begin{aligned} x&=e^{-t / 10} \sin (5 t) \\ y&=e^{-t / 10} \cos (5 t) \\ z&=t \end{aligned} xyz=et/10sin(5t)=et/10cos(5t)=t

clc,clear,close all
xt = @(t) exp(-t/10).*sin(5*t);
yt = @(t) exp(-t/10).*cos(5*t);
zt = @(t) t;
fplot3(xt,yt,zt,[-10 10])

在这里插入图片描述

特殊情形1:取定 x , y x,y x,y 后, z z z 的值不唯一

这种情况往往需要分别求出每一个z,然后多次利用 mesh 函数绘图,比较复杂。(也可能有别的方法,但我不是很懂)

例1: x 2 + y 2 + z 2 = 1 x^2+y^2+z^2=1 x2+y2+z2=1 (此例也可利用参数方程来绘图,此处使用mesh函数仅做示例用,效果并不如fplot3函数好用)

clc,clear,close all
x=-1:0.01:1;
[X,Y]=meshgrid(x);
Z=1-X.^2-Y.^2;
Z(Z<0)=nan; %这一步是为了后面对Z取根号的时候不会得到虚数
Z1=sqrt(Z);
Z2=-sqrt(Z);
mesh(X,Y,Z1)
hold on
mesh(X,Y,Z2)

在这里插入图片描述

一个比较复杂的例子

1 ⩽ x 2 ⩽ y < 4 1\leqslant x^2\leqslant y <4 1x2y<4
z 2 ⩽ x 2 + y 2 z^2\leqslant x^2+y^2 z2x2+y2

clc,clear,close all
x = -2:0.01:2;
y = 1:0.01:4;
[X,Y]=meshgrid(x,y);
index1 = X.^2-Y>0;
X(index1) = nan;
Y(index1) = nan;
index2 = X.^2<1;
X(index2) = nan;
Y(index2) = nan;
Z1 = sqrt(X.^2+Y.^2);
mesh(X,Y,Z1)
hold on 
Z2 = -sqrt(X.^2+Y.^2);
mesh(X,Y,Z2)
hold on
x = -2:0.01:-1;
z = linspace(-5,5,length(x));
[X,Z] = meshgrid(x,z);
Y = ones(length(x))*4;
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)
x = 1:0.01:2;
z = linspace(-5,5,length(x));
[X,Z] = meshgrid(x,z);
Y = ones(length(x))*4;
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)
y = 1:0.01:4;
z = linspace(-5,5,length(y));
[Y,Z] = meshgrid(y,z);
X = ones(length(y))*(-1);
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)
y = 1:0.01:4;
z = linspace(-5,5,length(y));
[Y,Z] = meshgrid(y,z);
X = ones(length(y))*(1);
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)
x = -2:0.01:-1;
z = linspace(-5,5,length(x));
[X,Z] = meshgrid(x,z);
Y = X.^2;
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)
x = 1:0.01:2;
z = linspace(-5,5,length(x));
[X,Z] = meshgrid(x,z);
Y = X.^2;
index = Z.^2-X.^2-Y.^2>0;
X(index) = nan;
Y(index) = nan;
Z(index) = nan;
mesh(X,Y,Z)

在这里插入图片描述


2022年5月16日18:23:26

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/183096.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • css中100vh 加减运算[通俗易懂]

    css中100vh 加减运算[通俗易懂]vh/vwvh:相对于视窗的高度,视窗被均分为100单位的vh;vw:相对于视窗的宽度,视窗被均分为100单位的vw;vmax:相对于视窗的宽度或高度中较大的那个。其中最大的那个被均分为100单位的vmax;vmin:相对于视窗的宽度或高度中较小的那个。其中最小的那个被均分为100单位的vmin;视区所指为浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小。calcca…

  • Android4.2.2启动动画前播放视频

    Android4.2.2启动动画前播放视频

    2021年11月13日
  • cas6.2整合springboot入坑指南

    cas6.2整合springboot入坑指南

  • Docker技术( 容器虚拟化技术 )「建议收藏」

    Docker虚拟化容器技术第一章Docker简介诞生背景Docker介绍虚拟机技术容器虚拟化技术官方网址第二章Docker安装前提条件安装DockerDocker底层原理Docker结构图工作原理Docker为什么比VM快第三章Docker常用命令帮助命令镜像命令容器命令第一章Docker简介诞生背景一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发…

  • ActiveMQ入门系列一:认识并安装ActiveMQ(Windows下)

    一、什么是ActiveMQ度娘给出的定义:ActiveMQ的官网打出的标语(如上图):大意是:兼容性好并且功能强大的开源多协议消息中间件,那具体是怎么体现的呢?1.兼容性好:ActiveMQ可以

  • XXE攻击与防御

    XXE攻击与防御XXEXXE是一种很常见的漏洞类型危害也挺大的,如果一个web服务器通过用户上传处理XML文件或POST请求时,那么可能就会存在漏洞。前段时间比较出名的微信支付的xxe漏洞漏洞简历XXE就是XML外部实体注入,当服务器允许引用外部实体时,同过构建恶意内容来攻击网站产生原因解析xml文件时允许加载外部实体,并且实体的URL支持file://和PHP://等协议,没有过滤用户提交的参数危害读取任意文件执行系统命令探测内网端口攻击内网网站DOS攻击…漏洞检测利用burp检测那些接

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号