Ripser.py学习 (8):莫比乌斯带与系数域 (Moebius Strip And The Field of Coefficients)

本文主要是介绍Ripser.py学习 (8):莫比乌斯带与系数域 (Moebius Strip And The Field of Coefficients),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1 概述
  • 2 测试数据

1 概述

本节展示系数域如何影响 H 1 H_1 H1同伦。这个例子,与总是使用 Z / 2 \mathbb{Z}/2 Z/2(二进制)系数的常见约定相反,可能有充分的理由使用其他字段,尤其是在有扭曲的情况下。

以下是一些必须库:

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from ripser import ripser
from persim import plot_diagrams

2 测试数据

现在创建一个封闭环,可以理解为2D环嵌入到3D空间:

  1. 围绕大圈每转一圈,让环围绕小圈(“内管”部分)运行两次;
  2. 分别给定大圈和小圈的半径 R R R r r r,采样如下参数的曲线:

x ( t ) = ( R + r cos ⁡ ( 2 t ) ) cos ⁡ ( t ) y ( t ) = ( R + r cos ⁡ ( 2 t ) ) sin ⁡ ( t ) z ( t = r sin ⁡ ( 2 t ) ) \begin{aligned} &x(t)=(R+r\cos(2t))\cos(t)\\ &y(t)=(R+r\cos(2t))\sin(t)\\ &z(t=r\sin(2t)) \end{aligned} x(t)=(R+rcos(2t))cos(t)y(t)=(R+rcos(2t))sin(t)z(t=rsin(2t))代码如下:

# 步骤1:曲线设置
N = 100  # 采样点的数量
R = 4    # 大环半径
r = 1    # 小环半径
X = np.zeros((N, 3))
t = np.linspace(0, 2*np.pi, N)
X[:, 0] = (R + r*np.cos(2*t))*np.cos(t)
X[:, 1] = (R + r*np.cos(2*t))*np.sin(t)
X[:, 2] = r*np.sin(2*t)

接着绘制持续图和数据图:

尽管该环很弯曲, H 1 H_1 H1上只有一个类,且 Z / 2 \mathbb{Z}/2 Z/2 Z / 3 \mathbb{Z}/3 Z/3的持续同伦图是一样,即只有一个类在0处初始。

对此,数据的生成公式修改为:
x ( t ) = ( R + r cos ⁡ ( t ) ) cos ⁡ ( 2 t ) y ( t ) = ( R + r cos ⁡ ( t ) ) sin ⁡ ( 2 t ) z ( t = r sin ⁡ ( 2 t ) ) \begin{aligned} &x(t)=(R+r\cos(t))\cos(2t)\\ &y(t)=(R+r\cos(t))\sin(2t)\\ &z(t=r\sin(2t)) \end{aligned} x(t)=(R+rcos(t))cos(2t)y(t)=(R+rcos(t))sin(2t)z(t=rsin(2t))代码如下:

X[:, 0] = (R + r*np.cos(t))*np.cos(2*t)
X[:, 1] = (R + r*np.cos(t))*np.sin(2*t)
X[:, 2] = r*np.sin(t)

输出如下:

这篇关于Ripser.py学习 (8):莫比乌斯带与系数域 (Moebius Strip And The Field of Coefficients)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208782

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

flask库中sessions.py的使用小结

《flask库中sessions.py的使用小结》在Flask中Session是一种用于在不同请求之间存储用户数据的机制,Session默认是基于客户端Cookie的,但数据会经过加密签名,防止篡改,... 目录1. Flask Session 的基本使用(1) 启用 Session(2) 存储和读取 Se

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

重新对Java的类加载器的学习方式

《重新对Java的类加载器的学习方式》:本文主要介绍重新对Java的类加载器的学习方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、简介1.2、符号引用和直接引用1、符号引用2、直接引用3、符号转直接的过程2、加载流程3、类加载的分类3.1、显示

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

SpringBoot项目中报错The field screenShot exceeds its maximum permitted size of 1048576 bytes.的问题及解决

《SpringBoot项目中报错ThefieldscreenShotexceedsitsmaximumpermittedsizeof1048576bytes.的问题及解决》这篇文章... 目录项目场景问题描述原因分析解决方案总结项目场景javascript提示:项目相关背景:项目场景:基于Spring

一文带你搞懂Python中__init__.py到底是什么

《一文带你搞懂Python中__init__.py到底是什么》朋友们,今天我们来聊聊Python里一个低调却至关重要的文件——__init__.py,有些人可能听说过它是“包的标志”,也有人觉得它“没... 目录先搞懂 python 模块(module)Python 包(package)是啥?那么 __in

一文教你Python引入其他文件夹下的.py文件

《一文教你Python引入其他文件夹下的.py文件》这篇文章主要为大家详细介绍了如何在Python中引入其他文件夹里的.py文件,并探讨几种常见的实现方式,有需要的小伙伴可以根据需求进行选择... 目录1. 使用sys.path动态添加路径2. 使用相对导入(适用于包结构)3. 使用pythonPATH环境