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

文章目录

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)

输出如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值