问题标签 [complex-numbers]
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.
java - Java中的离散傅里叶变换(非FFT)
我正在为 Java 中的 CSE 类进行分配,并正在实现 FFT 和直接 DFT(使用矩阵计算)。我的 FFT 工作正常,但我的直接 DFT 不起作用。我的傅立叶矩阵没有给出正确的值,我想知道它是否是用户错误,或者问题是否在于我正在使用的 Complex 类(org.apache.commons.math.complex)。有这样一个主流课程,我想它只是用户错误,所以如果有人能指出它,那就太好了。
我的傅立叶矩阵计算如下:
我将一些项目提取到变量中以进行调试,但根据我的理解,代码应该都可以工作。
然而,上面的代码对于一个长度为 4 的向量,给出了以下矩阵:
任何帮助是极大的赞赏。
python - Python中是否有用于大精度复数的库?
Python中是否有用于大精度复数的库?
c++ - How to use complex numbers in c++?
may you tell me how to write a complex variable in C++ code please?
I do have separate real part psi_rl and imaginary part psi_im. Now I have to write psi = psi_rl + i psi_im. Do you have any idea how to accomplish this task?
Thanks.
matlab - matlab图像处理错误
我试图在 matlab 中找到图像的傅里叶变换。我在没有库函数的情况下这样做。代码是:
当我编译这个程序时,会出现以下错误:
当我使用 a=rand(1,128) 而不是 a=imread('lena128','bmp') 时,我没有收到该错误。我在网上搜索,发现类似的问题。但没有解决办法。谁能为我指出错误?
wolfram-mathematica - 在 Mathematica 中绘制一个复杂的函数
如何制作 Mathematica 图形来复制复杂绘图在 sage 中的行为?IE
... 采用一个变量的复杂函数,并在指定的 xrange 和 yrange 上绘制函数的输出,如下所示。输出的大小由亮度表示(零为黑色,无穷大为白色),而参数由色调表示(红色为正实数,随着参数的增加通过橙色、黄色……增加) .
这是 zeta 函数的示例(从 M. Hampton of Neutral Drifts窃取),具有绝对值的叠加轮廓:
在 Mathematica 文档页面Functions Of Complex VariablesContourPlot
中,它说您可以使用DensityPlot
“可能按阶段着色”来可视化复杂函数。但是问题出在这两种类型的图中,ColorFunction
只需要一个等于该点的轮廓或密度的变量 - 所以在绘制绝对值时似乎不可能让它为相位/参数着色。请注意,这不是Plot3D
所有 3 个参数(x,y,z)
都传递给的问题ColorFunction
。
我知道还有其他方法可以可视化复杂的函数 - 例如Plot3D 文档中的“简洁示例” ,但这不是我想要的。
另外,我在下面确实有一个解决方案ContourPlot
(实际上已用于生成维基百科中使用的一些图形),但它定义了一个相当低级的函数,我认为它应该可以使用像or这样的高级函数DensityPlot
。并不是说这应该阻止您提供您最喜欢的使用较低级别结构的方法!
编辑: Michael Trott 在 Mathematica 杂志上有一些不错的文章:
可视化代数函数的黎曼曲面,IIa,IIb,IIc,IId。
可视化黎曼曲面演示。
黎曼曲面的回归(Mma v6 的更新)
当然,Michael Trott 编写了Mathematica 指南,其中包含许多精美的图形,但似乎落后于加速的 Mathematica 发布时间表!
python - 将交错的 NumPy 整数数组转换为 complex64 的最快方法是什么?
我有一个输入数据流,其中包含交错的实数和虚数整数。将这些转换为 complex64 值是我程序中最慢的操作。这是我目前的做法:
如果不进行 C 扩展或使用 cython 之类的东西,我可以做得更好吗?如果我不能做得更好,那么使用其中一种技术的最简单方法是什么?
iphone - iOS——实现复数
作为这个问题的后续行动:
当我注意到如果使用该支持进行计算时,我 正在使用Apple 的复数支持实现一个计算器应用程序,最终会得到以下结果:
(1+i)^2=1.2246063538223773e-16 + 2i
当然正确的恒等式是(1+i)^2=2i。这是一个更普遍现象的具体例子——如果舍入错误将一个应该为零的部分舍入到稍微不为零的部分,那么它们可能真的很烦人。
关于如何处理的建议?我可以用其他方式实现复数的整数幂,但一般问题仍然存在,我的解决方案本身可能会导致其他不一致。
c# - 这个傅立叶变换实现有什么问题
我正在尝试实现离散傅立叶变换,但它不起作用。我可能在某个地方写了一个错误,但我还没有找到它。
基于以下公式:
此函数执行第一个循环,循环 X0 - Xn-1...
而实际计算,这可能就是bug所在。
接下来解释其余代码:
var sign = reverse ? 1.0: -1.0;
反转的 DFT 不会-1
在参数中包含,而常规 DFT 确实-1
在参数中包含 a。
var argument = sign*2.0*Math.PI*k/data.Length;
是算法的参数。这部分:
然后是最后一部分
transformed += data[i]*Complex.FromPolarCoordinates(1, argument*i);
我想我仔细复制了算法,所以我看不出我在哪里犯了错误......
附加信息
正如 Adam Gritt 在他的回答中所表明的那样,AForge.net 对该算法有一个很好的实现。我大概可以通过复制他们的代码在 30 秒内解决这个问题。但是,我仍然不知道我在实施中做错了什么。
我真的很好奇我的缺陷在哪里,以及我的解释是错误的。
c++ - 使用 std::transform 和 tr1::bind 转换 std::complex 的向量
给定 std::complex 的 std::vector,我想将其转换为仅包含复数实部的向量,除以某个常数系数。现在,我这样做:
这当然可以,但我正在寻找一种使用 std::transform 做同样事情的方法。我试过:
但它不会起作用。我有这个错误:
我不明白为什么会有“未解析的重载函数类型”。
有人可以向我解释什么是错的吗?
c - C99:复数的虚部可以是负零吗
是否可以在 C99 复数浮点数的虚部存储负零?
我应该如何用带符号的虚部静态初始化复杂的常量?
我有一个小例子,但我不明白,为什么a
和c
相同以及为什么-std=c99
会改变结果。
欢迎引用 C99-TC3 和 gcc 手册。
我在 C99 (n1256.pdf) 和http://www.knosof.co.uk/cbook/中找不到任何相关内容