问题标签 [hyperbolic-function]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
92 浏览

matlab - 针对大数据优化matlab for循环

我想使用双曲正切(Sigmoid)内核计算两个图像之间的欧几里得距离。请点击这个链接,我已经详细讨论了使用高斯内核的相同问题。

如果x=(i,j)&y=(i1,j1)是我们图像中的任意两个像素,那么对于双曲正切核,myH(x,y)将被定义为: H(i,j) = tanh(alpha*(x'*y) + c) 其中alphac是参数,并且x'是 的转置x。参数alpha可以取为 1/N,其中 N 是我的图像尺寸(在我的情况下为 8192 x 200),c 可以根据问题取任何值。有关双曲正切核的更详细说明,请参见此处

为了实现我的目标并考虑运行时间,我编写了以下 MATLAB 脚本。

尽管我付出了所有努力,但我无法进一步对其进行矢量化以降低其运行成本。目前,大约需要 29 小时才能完成,这对我来说太多了,因为我想为各种不同的图像运行它。我想使用内部 MATLAB 函数给它一个完全矢量化的形式,就像 @dan-man 在高斯内核的情况下所做的那样。在他的帮助下,高斯版本需要 1-2 秒才能完成。在这种情况下,我也尽力使用相同的conv2fft功能,但似乎很难找到实现这一目标的方法。

有人可以帮我删除一个额外的 for 循环,以使算法的运行成本与同一问题的高斯版本的运行成本相同。

提前致谢。

0 投票
1 回答
149 浏览

r - R中的双曲正切在Windows中抛出NAN但在Mac中没有?

在 Windows 中使用 R 基函数tanh为大(实部,虚部为 0)值估计双曲正切时,函数返回“NaN”:

但是,在 Mac 中,相同的值返回 1(与“真实”数学值一致应该接近 1):

问题1:有人知道为什么会这样吗?

额外信息

这似乎不是浮点问题,因为 Mac 似乎tanh为任意大的值返回 1:

这个问题似乎与虚部有关:

在 Windows 和 Mac 中。这个问题似乎是系统(或处理器?)特定的,因为我们已经尝试过:

  • 配备 El Capitan v 10.11.6处理器的 Mac:2.7 GHz Intel Core i5
  • 配备 Sierra v 10.12.3处理器的 Mac:3.2 GHz Intel Core i5
  • Windows 10 Home v 1607处理器:Intel Core m3-SY30 CPU@ 0.90 GHz 1.51 GHz
  • Windows 7 Home Premium Service Pack 1处理器:Intel Core i5-2410M CPU @2.30 GHz 2.30GHz。

这些 Windows 机器抛出NaN,Mac 的1 + 0i. 在所有情况下,我们都使用“最新”(64 位)的 R 版本 3.3.3。

0 投票
1 回答
586 浏览

curve-fitting - 如何准确拟合旋转的双曲线?

我的实验数据点看起来像双曲线。下面我提供了一个代码(Matlab),它生成“虚拟”数据,与原始数据非常相似:

典型结果如图所示:

在此处输入图像描述

数据具有以下重要属性:两个渐近线的斜率来自相同的分布(只是符号不同),因此对于我的拟合,我对mu_alpha.

现在开始有问题的部分。我尝试拟合这些数据点。我的方法的主要思想是找到一个旋转来获得y=k*x+b/x形状,然后正好适合它。

我使用以下代码:

不幸的是,这段代码效果不佳,即使我使用已知的(来自模拟的)初始参数,我也经常得到不好的结果。

您能帮我找到解决此类拟合问题的好方法吗?

更新:

我找到了一个解决方案(见答案),但 我仍然有一个小问题——我对参数的估计a很糟糕,有时因为这个原因我没有很好的拟合。

您能否提出一些如何从实验点估计 a 的想法?

0 投票
1 回答
734 浏览

neural-network - 这是在 FPGA 中实现的最快的 tanh 近似

我想在 FPGA 上实现一个神经网络,我需要一个快速函数来计算(近似)tanh。

点后两位数的精度就足够了。

0 投票
2 回答
182 浏览

graphics - 如何初始化 Bresenham 算法以显示夸张

我参加了图形信息学考试,我正在尝试理解 Bresenham 算法。我理解显示一条线和一个圆(我认为),但是当我做一个必须显示双曲函数的练习时,我无法做到正确。

双曲线函数的方程为 y = 100/x,我将其转换为 x*y - 100 = 0。我假设当前显示的像素位于屏幕上的 (x_p, y_p) 处。我计算了增量,当要显示的像素位于右侧时,我发现 I = 2y_p - 1,当要显示的像素位于右下角时,我发现 I = 2y_p - 2x_p - 5。但现在我不知道如何初始化。在我的课程中,线的初始化是在 x_0 = 0,y_0 = 0 处进行的,对于半径为 R 的圆,它是 x_0 = 0,y_0 = R,但我的夸张是什么?

我想追踪从 x = 10 到 x = 20 的夸张

所以我这样称呼这个函数:

我知道它是旧的 OpenGL,我只是将它用于测试目的。

0 投票
1 回答
220 浏览

glsl - 四元数除法和双曲正切 tanh

四元数乘法定义明确,我称之为“汉密尔顿积”:

但是,为了实现qtanh()四元数函数,我们需要除法。到目前为止,我已经找到了这个,并且工作正常。你能不能帮我理解一下,这是从哪里来的?

此外,就我试图实现 tanh() 而言,您是否知道更多的计算增值税,而不是划分 sinh 和 cosh?对于实数,我曾经使用以下公式: tanh(x)=-1+2/(1+exp(-x)). 这仅涉及单个指数微积分,而不是两个..

0 投票
0 回答
148 浏览

matlab - 用于 tdoa 3D 定位的扩展卡尔曼滤波器

我正在尝试使用扩展卡尔曼滤波器通过 TDoA 方法在香料中定位我的移动设备。
我得到的问题是我的锥体没有收敛到地面实况位置。
有时矩阵 P、Xh 和 X 具有复数,可以吗?
我是否需要修改某些内容或添加停止条件。
我的代码的一部分就像

0 投票
1 回答
73 浏览

matlab - 将双曲 Poincare 圆盘转换为能带模型

我想将具有图像纹理的双曲庞加莱圆盘(https://www.flickr.com/photos/gbachelier/albums/72157676467905456中的示例)转换为布拉托夫带模型,并在https://www.slideshare.net/中找到chamb3rlain/a-poor-mans-hyperbolic-square-mapping(幻灯片 25)基于反双曲 tan 的函数应该这样做:f(z) = 2*pi*atanh(z)。但是将它插入基于网格网格的框架中,以使用复杂的值函数进行图像扭曲,我得到的结果与预期的能带结构不同。

那么如何映射到波段模型呢?

0 投票
1 回答
1104 浏览

python - 避免 log(cosh(x)) 溢出

我的模拟需要实现

这会溢出 large x,即我收到RuntimeWarning: overflow encountered in cosh警告。原则上,随着对数减少所讨论的数字,在 的某个范围内xcosh应该溢出而不应该溢出log(cosh())

NumPy 中是否有任何解决方案,例如在精神上与np.log1p()函数相似?

提供更多信息:我知道使用 SymPy https://github.com/sympy/sympy/issues/12671的可能解决方案可能是符号 的,但是模拟应该很快,并且符号计算 AFAIK 可能会显着减慢它。

0 投票
1 回答
312 浏览

matplotlib - Matplotlib 轴如何双曲线缩放?

我有一个有点像这样的情节:

两条线(红色和蓝色)之间的差异在我的实际数据(ROC 曲线)中最为重要,例如网格单元0.2<x<0.4, 0.8<y<1。现在,我可以裁剪那个网格单元,但假设我宁愿双曲线缩放 x 轴和 y 轴——其中 y 轴双曲线的峰值约为 0.9,x 轴的峰值约为0.3 - 使得 2D 空间被拉伸以用于感兴趣的网格单元并在其他地方被压缩(并保留轴刻度数的含义)。如何做到这一点?我尝试的开始如下。如何修改我的代码以实现我描述的轴缩放?