- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
问题:如何使用连续 map - Link1: Bernoulli Shift Map为二进制序列建模?
概念:Dyadic 映射也称为 Bernoulli Shift 映射,表示为 x(k+1) = 2x(k) mod 1
。在 Link2: Symbolic Dynamics , 解释了伯努利图是一个连续的图,并被用作 Shift 图。这将在下面进一步解释。
可以通过划分为适当的区域并为其分配符号来对数字轨迹进行符号化。通过记下与轨道中的点访问的连续分区元素相对应的符号序列来获得符号轨道。人们可以通过研究系统的符号轨道来了解系统的动力学。 This link还说伯努利位移图用于表示符号动力学。
问题:
Bernoulli Shift Map 如何用于生成二进制序列?我这样试过,但这不是 Link2 中的文档所解释的。因此,我采用 Map 的数字输出并通过以下方式通过阈值转换为符号:
x = rand();
y = mod(2* x,1) % generate the next value after one iteration
y =
0.3295
if y >= 0.5 then s = 1
else s = 0
其中0.5
是阈值,称为伯努利图的临界值。
我需要将实数表示为分数,如 Link2 第 2 页所述。
有人可以展示我如何应用伯努利位移图来生成符号化轨迹(也称为时间序列)吗?
如果我的理解有误,请指正。
如何将实数值时间序列转换为符号化时间序列,即如何使用伯努利图为双星轨道/时间序列建模?
最佳答案
您当然可以在实数空间中计算它,但您可能会遇到精度问题(取决于起点)。如果您对研究轨道感兴趣,您可能更愿意使用有理分数表示法。有更有效的方法可以做到这一点,但以下代码说明了一种计算从该 map 派生的系列的方法。您将在链接 2 的第 2 页看到周期 n 定义。您应该能够从此代码中看到如何轻松地在实数空间中工作作为替代方案(在这种情况下,matlab 函数 rat
将从您的实数中恢复有理近似值)。
[编辑] 现在二进制序列明确了!
% start at some point on period-n orbit
period = 6;
num = 3;
den = 2^period-1;
% compute for this many steps of the sequence
num_steps = 20;
% for each step
for n = 1:num_steps
% * 2
num = num * 2;
% mod 1
if num >= den
num = num - den;
end
% simplify rational fraction
g = gcd(num, den);
if g > 1
num = num / g;
den = den / g;
end
% recover 8-bit binary representation
bits = 8;
q = 2^bits;
x = num / den * q;
b = dec2bin(x, bits);
% display
fprintf('%4i / %4i == 0.%s\n', num, den, b);
end
Ach...为了完整起见,这里是真实值版本。纯数学家现在应该把目光移开。
% start at some point on period-n orbit
period = 6;
num = 3;
den = 2^period-1;
% use floating point approximation
x = num / den;
% compute for this many steps of the sequence
num_steps = 20;
% for each step
for n = 1:num_steps
% apply map
x = mod(x*2, 1);
% display
[num, den] = rat(x);
fprintf('%i / %i\n', num, den);
end
另外,为什么这个实现速度很快但很愚蠢? (提示:尝试将 num_steps 设置为 50)...
% matlab vectorised version
period = 6;
num = 3;
den = 2^period-1;
x = zeros(1, num_steps);
x(1) = num / den;
y = filter(1, [1 -2], x);
[a, b] = rat(mod(y, 1));
disp([a' b']);
好吧,这应该是一个答案,而不是一个问题,所以让我们回答我自己的问题......
速度很快,因为它使用 Matlab 的内置(和高度优化的)filter
函数来处理迭代(也就是说,在实践中,迭代是在 C 中而不是在 M 脚本中完成的) .始终值得记住 Matlab 中的 filter
,我一直惊讶于如何将它很好地用于看起来不像过滤问题的应用程序。但是,filter
不能进行条件处理,也不支持模运算,那么我们如何摆脱它呢?仅仅是因为这个映射具有输入的整个周期映射到输出的整个周期的属性(因为映射操作是乘以一个整数)。
这很愚蠢,因为它很快就解决了上述精度问题。将 num_steps
设置为 50 并观察它开始得到错误的答案。发生的事情是过滤操作中的数字变得如此之大(10^14 阶)以至于我们真正关心的位(小数部分)不再可以用相同的 double 变量表示。
这最后一点是一种转移,它更多地与计算而不是数学有关 - 如果您对符号序列感兴趣,请坚持第一个实现。
关于Matlab : How to represent a real number as binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30136991/
如果向下滚动 this page有点,你会看到英国英语连字符模式,如: \patterns{ % just type if you're not using INITEX .ab4i .ab3ol
这可能是一个愚蠢的菜鸟问题,但 : 在以下上下文中表示什么: var stuffToDo = { 'bar' : function() { alert('the value w
考虑一个基于方 block 的游戏,其中每个代理都可以直线/对角线(8 个方向)移动。基本上,像这样的 map 可以表示为规则的二维网格,其中 0 表示可步行位置,1 表示不可步行位置(我使用的是 L
这个问题已经有答案了: Retrieving the last record in each group - MySQL (33 个回答) 已关闭 4 年前。 我正在尝试进行查询,我正在尝试获取某些字
我们正在创建一种非常简单的编程语言,使用 Flex 和 Bison 进行解析和语法分析,并使用 C 构建编译器。 在直接进行汇编之前,我们将根据语言规则创建一个抽象语法树。但是我们很难从语言中表示一个
我从一个文本文件中接收数据,其中的日期通常采用“标准时间”(例如中部标准时间或东部标准时间。我的意思是没有观察到夏令时调整)。使用 Noda Time,我试图找出表示这一点的最佳方式。 我的第一个想法
我有一个实体,例如 compound_tax。每个compound_tax 可以由另一个实体tax 的多个实例组成。例如,一个 compound_tax 可以由两种税组成(顺序可能很重要): VAT:
问题:如何使用连续 map - Link1: Bernoulli Shift Map为二进制序列建模? 概念:Dyadic 映射也称为 Bernoulli Shift 映射,表示为 x(k+1) =
我正在玩指向成员的指针,并决定实际打印指针的值。结果出乎我的意料。 #include struct ManyIntegers { int a,b,c,d; }; int main () {
我一直在学习 C# OOP 的速成类(class),很想知道“LIST”关键字在下面的代码中代表什么: var actors = new List(); 最佳答案 List是一个带有类型参数的类。这称
我刚刚开始使用 Coursera 的 Scala 函数式编程,我发现很难提交我的作业。我可以在我的 IntelliJ IDE 中单独运行我的函数,但是当我进入终端并输入 sbt about 时,我收到
我有一个基本的 Nestjs - Mongoose - Graphql api,我定义了两个模式:User和 Event //USER Schema @Schema() export class Us
我有这个数据: # A tibble: 19 x 8 country Prop_A Prop_B Prop_C
在 Akka 流中,Mat in Source[Out, Mat] 或 Sink[In, Mat] 代表什么。什么时候会真正使用? 最佳答案 Mat type 参数表示此流的具体化值的类型。 请记住,
Range.SpecialCells method可用于返回满足特定条件的 Range 对象。标准的类型是使用 xlCellType 常量指定的。 其中一个常量 (xlCellTypeBlanks)
问题 我有一个复杂的查询,该查询连接三个表并返回一组行,每一行都包含来自其同级表的数据。如何以RESTful方式表示这一点? FWIW我知道不一定有“正确”的方法来做,但是我有兴趣了解什么是这种情况下
有没有一种方法可以生成从 red 到 的 UIColor 表(或者 UIColor 的数组) green 这样变量 var match = 100 将具有相应的颜色 green 而 var match
你好, 我正在学习 html 和 css。为了更好地理解进度条的工作原理,我创建了一个带有几个按钮和进度条的小型演示页面。 正如您在下面的 CSS 代码中看到的,我特别要求进度条的背景显示为红色。这在
我正在尝试编写一个函数来初始化数组并在返回之前将其打乱。 将 numba 导入为 nb @nb.jit(nopython=True, cache=True) def test(x): ind
我有一个数据库 winforms 应用程序,它使用以 C# 编写的 SQLite。我正在尝试使用 C# 包装器执行一些 SQLite 查询,但在检查 NULL 值的查询中遇到了一些问题。这是调用语句。
我是一名优秀的程序员,十分优秀!