matlab模拟黑洞包含吸积盘和喷流,简单模拟

本文介绍

黑洞的简单实现和模拟

代码

% Black Hole Simulation in 3D

% Clear workspace and figures
clear; close all; clc;

% Create figure and set axis properties
figure;
axis([-10 10 -10 10 -10 10]);
hold on;
grid on;
view(3);

% Parameters for the black hole and accretion disk
numParticles = 1000;  % Number of particles in the accretion disk
diskRadius = 5;       % Radius of the accretion disk
diskHeight = 0.5;     % Height of the accretion disk
jetHeight = 10;       % Height of the jet
jetRadius = 1;        % Radius of the jet

% Create particles for the accretion disk
theta = 2*pi*rand(numParticles,1);
r = diskRadius * sqrt(rand(numParticles,1));
x = r .* cos(theta);
y = r .* sin(theta);
z = diskHeight * (rand(numParticles,1) - 0.5);

% Create particles for the jet
jetParticles = 500;
jetX = jetRadius * (rand(jetParticles,1) - 0.5);
jetY = jetRadius * (rand(jetParticles,1) - 0.5);
jetZ = linspace(0, jetHeight, jetParticles)';

% Plot the black hole
[xSphere, ySphere, zSphere] = sphere(20);
surf(0.5*xSphere, 0.5*ySphere, 0.5*zSphere, 'FaceColor', 'k', 'EdgeColor', 'none');

% Plot the accretion disk
hDisk = scatter3(x, y, z, 1, 'r');

% Plot the jet
hJet = scatter3(jetX, jetY, jetZ, 1, 'b');

% Animation loop
numFrames = 200;
for t = 1:numFrames
    % Update accretion disk particles (simple circular motion)
    theta = theta + 0.1;
    x = r .* cos(theta);
    y = r .* sin(theta);
    set(hDisk, 'XData', x, 'YData', y, 'ZData', z);
    
    % Update jet particles (move upwards)
    jetZ = jetZ + 0.1;
    set(hJet, 'XData', jetX, 'YData', jetY, 'ZData', jetZ);
    
    % Loop jet particles back to start
    jetZ(jetZ > jetHeight) = 0;
    
    % Pause to create animation effect
    pause(0.05);
end

效果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/683179.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据库】SQL--DDL(初阶)

文章目录 DDL1. 数据库操作1.1. 表操作1.1.1 创建1.1.2. 查询 2. 数据类型及案例2.1 数值类型2.2 字符串类型2.3 日期时间类型2.4 案例练习 3. 表操作--修改3.1 添加字段3.2 修改字段3.3 修改表名 4. 表操作-删除4.1 删除字段4.2 删除表 5. DDL小结 更多数据库MySQL系统内容就在…

MySQL经典面试题:谈一谈对于数据库索引的理解~~

文章目录 什么是索引?为什么要引入索引?引入索引的代价操作索引的SQL语句索引背后的数据结构B树B 树 回顾思考☁️结语 什么是索引? 数据库中的索引,就相当于一本书的目录。 什么是书的目录?相信大家都并不陌生&#…

【三】Linux网络配置详解

在RHEL 7系统中配置网络的方法有好几种,咱们这边先讲一下使用图形化工具和修改配置文件这两种方法来配置,其他方法大家可以下去自己研究研究。 一、使用图形化方式配置: 在电脑左上角开始一次点击Applications、System Tools、Settings&…

【Flask-项目运行】解决用本机IP访问不到flask项目而用localhost可以访问到的问题

文章目录 一、问题描述二、解决办法 一、问题描述 使用 localhost 或 127.0.0.1 能访问到项目: 但是使用局域网 IP 访问不到: 二、解决办法 只需要在 app.py 中修改一行代码: run方法添加 host 参数指明全部 ip 可访问。

B端数据看板,其实数据可以更美的。

B端数据看板可以通过设计来提升其美观度。 色彩和配色方案: 选择适合品牌和数据类型的色彩搭配方案。使用渐变色、明亮的色调和对比度来突出重要的数据指标。 数据可视化: 使用图表、图形和数据图像来呈现数据,使其更易于理解和解读。选择…

2024会声会影全新旗舰版,下载体验!

在当今数字时代,视频内容已成为最受欢迎的媒介之一。无论是个人娱乐、教育还是商业推广,优秀的视频制作都是吸引观众的关键。为了满足广大用户对高质量视频制作软件的需求,我们隆重推出了会声会影2024最新旗舰版。这款软件不仅集成了最先进的…

手撸 串口交互命令行 及 AT应用层协议解析框架

在嵌入式系统开发中,命令行接口(CLI)和AT命令解析是常见的需求。CLI提供了方便的调试接口,而AT命令则常用于模块间的通信控制。本文将介绍如何手动实现一个串口交互的命令行及AT应用层协议解析框架,适用于FreeRTOS系统…

【数据结构】顺序表专题(学习记录)

正文开始 课前预备 1. 课程目标 C语言语法基础到数据结构与算法,前⾯已经掌握并具备了扎实的C语言基础,为什么要学习数据结构课程?⸺通讯录项目 2. 需要的储备知识 简单了解,通讯录具备增加、删除、修改、查找联系⼈等操作。要想…

Linux进程无法被kill

说明:记录一次应用进程无法被kill的错误; 场景 在一次导出MySQL数据时,使用下面的命令,将数据库数据导出为.sql文件,数据量大,导出时间长,于是我就将服务器重启了。 mysqldump -u username -…

队列及其应用

实验内容 请设计一个简单的模拟银行排队系统,要求程序具有以下4项菜单: 1.取号。选择该菜单后,为客户产生一个排队号。 2.叫号。选择该菜单后,显示可服务的客户排队号。 3.查看队伍。从队首到队尾列出所有排队客户的排队号。 4.退…

Vue 学习笔记 总结

Vue.js 教程 | 菜鸟教程 (runoob.com) 放一下课上的内容 Vue练习 1、练习要求和实验2的用户注册一样,当用户输入后,能在下方显示用户输入的各项内容(不需要实现【重置】按钮) 2、实验报告中的实验小结部分来谈谈用JS、jQuery和…

流量分析——一、蚁剑流量特征

君衍. 一、Webshell特征流量分析二、环境介绍三、使用Wireshark进行流量分析1、环境说明2、HTTP追踪流分析3、蚁剑请求体中代码块解读 四、使用BurpSurite进行流量分析1、环境配置2、抓包分析 六、总结 一、Webshell特征流量分析 对于重保、护网等攻防演练的防守方来说&#x…

AIGC专栏11——EasyAnimateV2结构详解与Lora训练 最大支持768x768 144帧视频生成

AIGC专栏11——EasyAnimateV2结构详解与Lora训练 最大支持768x768 144帧视频生成 学习前言源码下载地址EasyAnimate V2简介技术储备Diffusion Transformer (DiT)Motion ModuleU-VITLora 算法细节算法组成视频VAE视频DIT 数据处理视频分割视频筛选视频描述 模型训练视频VAE视频D…

【数智化CIO展】吉家宠物CIO张志伟:深度挖掘数据价值是数字化发展趋势,才能实现企业精细化运营...

张志伟 本文由吉家宠物CIO张志伟投递并参与由数据猿联合上海大数据联盟共同推出的《2024中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业:观远数据 大数据产业创新服务媒体 ——聚焦数据 改变商业 中国“宠物经济”热潮不断攀升,国内宠物市场的竞…

InnoDB存储引擎非常重要的一个机制--MVCC(多版本并发控制)

Mysql是如何实现隔离性的?(锁MVCC) 隔离性是指一个事务内部的操作以及操作的数据对正在进行的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。隔离性可以防止多个事务并发执行时,可能存在交叉执行导致数据的不…

Android 如何保证开启debug模式之后再启动

很多时候会需要debug看Android启动时候的一些数据,但很多时候会存在自己开启debug后app已经过了自己要debug的那段代码的时机了。 那么怎么样可以保证一定能让启动后不会错过自己要debug的那段代码执行的时机呢? 可以用下面这行命令,其中co…

记忆化搜索汇总

记忆化搜索简介 记忆化搜索(Memoization Search):是一种通过存储已经遍历过的状态信息,从而避免对同一状态重复遍历的搜索算法。 记忆化搜索是动态规划的一种实现方式。在记忆化搜索中,当算法需要计算某个子问题的结果…

Nginx+Tomcat负载均衡、动静分离集群

目录 1.Nginx负载均衡 1.1 负载均衡概念 1.2 负载均衡原理 1.3 Nginx配置反向代理 1.3.1 反向代理概念 1.3.2 反向代理主要参数 2.Nginx动静分离 2.1 动静分离的概念 2.2 Nginx 静态处理优势 2.3 动静分离原理 3. NginxTomcat动静分离的实验设计 3.1 准备三台虚拟机…

Java速成要多久?这篇文章告诉你答案!

Java速成要多久?这篇文章告诉你答案! Java作为一门用途广泛且经久不衰的编程语言,吸引了无数学习者的目光。许多人希望能够快速掌握Java,以便进入软件开发行业或者提升自身的竞争力。那么,Java速成究竟要多久呢&#x…

【遗传算法】【机器学习】【Python】常见交叉方法(二)、多点交叉和均匀交叉

一、遗传算法流程图 交叉过程即存在于上图的”交叉“(crossover)步骤中。 二、多点交叉 多点交叉的原理就是,随机地从父代两个基因型中,选择n个位点进行交换,其中n小于等于父代基因型长度(假设双亲基因长…