问题标签 [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.
scala - 为复数定义一个类是否有意义,其中实部/虚部使用 Numeric[T] 而不是具体类型?
会像
有意义,而不是写一个Complex类用Double
s,一个用Long
s,一个用BigInt
s,让大家可以选择自己需要的数字类型?
与非通用方法相比,性能如何?
plot - 用 Mathematica 对复变量函数的几何解释?
如何在mathematica中编写代码以查看如下结果:
如您所见,我们有复杂的函数w=f(z)
wherez=x+iy
和w=u+iv
.
在这个例子w=sin z
中,我们看到垂直线的图像x=c
是双曲线。(剩下)
水平线的图像y=c
是一个椭圆。(正确的)
这张照片取自 James Ward Brown 和 Ruel Vance Churchill 所著的“Complex Variables and Applications”一书,第 8 版:第 331 和 333 页或第三版第 96-97 页
c++ - 用标量有效地乘以大复数向量 C++
我目前正在尝试最有效地对一个复数数组(内存对齐方式与 std::complex 相同,但当前使用我们自己的 ADT)与一个相同的标量值数组进行就地乘法大小为复数数组。
该算法已经并行化,即调用对象将工作拆分为线程。此计算是在数以亿计的数组上完成的 - 因此,可能需要一些时间才能完成。CUDA 不是该产品的解决方案,尽管我希望它是。我确实可以使用 boost,因此有一些使用 BLAS/uBLAS 的潜力。
但是,我认为 SIMD 可能会产生更好的结果,但我对如何使用复数执行此操作还不够熟悉。我现在拥有的代码如下(请记住,这被分成与目标机器上的内核数相对应的线程)。目标机器也是未知的。因此,通用方法可能是最好的。
fcomplex 定义如下:
我已经尝试手动展开循环,因为我的 finally 循环计数将始终是 2 的幂,但是编译器已经为我这样做了(我已经展开到 32)。我已经尝试了对标量的 const float 引用——我认为我会保存一次访问——事实证明这等于编译器已经在做的事情。我已经尝试过 STL 和变换,哪个游戏接近结果,但仍然更糟。我也尝试过强制转换为 std::complex 并允许它使用重载运算符进行 scalar * complex 进行乘法运算,但这最终产生了相同的结果。
那么,有任何想法的人吗?非常感谢您花时间考虑这一点!目标平台是 Windows。我使用的是 Visual Studio 2008。产品也不能包含 GPL 代码!非常感谢。
java - 虚数
我有一个方法需要 3double
秒并通过二次公式计算根:
我想对此进行扩展并添加对虚数的支持。我将如何做到这一点?我的第一个想法是,在 中else if (discriminant < 0)
,我会得到判别式的绝对值并将根式分解。我要将根输出给用户,所以不要打扰i,我有一个字符串解析器,它知道将i放在哪里。关于更有效方法的任何想法?
string - C++ 包括导致文件字符串出现语法错误
错误 3 错误 C2059:语法错误:')' c:\program files\microsoft visual studio 10.0\vc\include\string 758 1 ECE572_001_Project1_swirl 错误 6 错误 C2059:语法错误:')' c:\program files\microsoft visual studio 10.0\vc\include\string 767 1 ECE572_001_Project1_swirl 错误 1 错误 C2143:语法错误:在 'string' c:\program files\microsoft visual studio 10.0\vc\include\string 758 1 ECE572_001_Project1_swirl 错误 4 错误 C2143 之前缺少 ')':语法错误:在 'string' c:\program files\microsoft visual studio 10.0\vc\include\string 767 1 ECE572_001_Project1_swirl 错误 2 错误 C2665: 'swprintf' 之前缺少 ')' : 2 个重载都不能转换所有参数类型c:\程序文件\Microsoft Visual Studio 10。0\vc\include\string 758 1 ECE572_001_Project1_swirl 错误 5 错误 C2665:'swprintf':2 个重载都不能转换所有参数类型 c:\program files\microsoft visual studio 10.0\vc\include\string 767 1 ECE572_001_Project1_swirl
我不明白这个错误,因为它说错误在文件字符串中,这是VS2010提供的锁定文件。其次,我什至没有使用字符串,第三,包括 complex 怎么可能与库字符串有关?
尽管在我的项目文件中包含 complex 会导致错误,但我启动了一个全新的文件来测试包含它,并且错误并没有在那里发生。
我在上面加上了包含 image.h 的 include 语句,编译错误就消失了。如果有人能解决问题,这里是 image.h:
c++ - C++ 中用于离散傅里叶变换的复数表示
我目前正在编写一个小工具,它可以帮助我检查我手动计算的傅立叶向量是否正确。现在我需要由 指定的第 n 个 Unity 根omega = exp(2*pi*i / n)
。有人可以解释一下如何在 C++中将其表示omega
为 a吗?complex
c++ - vDSP_ztoc 产生奇怪的结果
我试图弄清楚 vDSP 功能,我得到的结果很奇怪。
这与这个问题有关:
将 std::complex 与 iPhone 的 vDSP 功能一起使用
基本上,当我从 std::complex<float> 的向量开始时,我试图理解 vDSP_vdist。现在,我应该能够通过简单地执行以下操作来计算幅度:
但是,当我这样做时,我会看到在矢量中点周围反射的光谱。这很奇怪。
然而,奇怪的是,如果我使用 vDSP_ztoc 后跟 vDSP_vdist,我会得到我期望的结果。所以我写了一些代码来尝试理解出了什么问题。
现在奇怪的是,上面的代码在 idx = 1 时开始失败并一直持续到最后。原因是 dspsc.realp[1] == pIn[0].imag()。就像它没有将其拆分为 2 个不同的缓冲区,而是将 std::complexes 的一半向量直接 memcpy 放入 dspsc.realp。即 2 浮动在 std::complex[0] 然后 2 浮动在 std::complex[1] 等等。dspsc.imagp 大致相同。dspsc.imagp[1] = pIn[1].real()。
这没有任何意义。有人可以解释我到底在哪里无法理解发生了什么吗?
objective-c - 在 C 中使用复数执行矩阵运算
我正在尝试执行涉及矩阵运算和复杂数学的计算 - 有时一起,在 C 中。我非常熟悉 Matlab,我知道这些类型的计算可以简单有效地执行。例如,两个大小相同的矩阵 A 和 B,每个都有复数值的元素,可以通过表达式 A+B 轻松求和。是否可以推荐任何包或技术来使用 C 或 Objective C 中的这些类型的表达式进行编程?我知道 complex.h 允许对复数执行运算,但我不知道如何对复杂矩阵执行运算,这正是我真正追求的。同样,我知道允许对矩阵进行操作的包,但认为它们在处理复杂矩阵时不会有用。
objective-c - Using BLAS or LAPACK with Xcode
I'm looking for a good guide on how to incorporate BLAS or LAPACK functions into my Objective C Program developed through Xcode. The only sources I can find online of programs in BLAS/LAPACK are written in Fortran - this is confusing. How does one make use of BLAS/LAPACK and still code in Objective C? Are there any online examples/guides? I want to be able to perform matrix operations where elements of the matrix have complex values.
Cheers,
Shaddy
python - 格式化复数
对于我的一个课程中的一个项目,我们必须输出最多五位小数的数字。输出可能是一个复数,我无法弄清楚如何输出一个小数点后五位的复数。对于花车,我知道它只是:
print "%0.5f"%variable_name
复数有类似的东西吗?