标签: complex-numbers

如何使用numpy.savetxt保存和加载复数的数组?

我想用来numpy.savetxt()将复数的数组保存到文本文件中.问题:

  • 如果使用默认格式字符串保存复杂数组,则会丢弃虚部.
  • 如果您使用fmt='%s',则numpy.loadtxt()除非您指定,否则无法加载它dtype=complex, converters={0: lambda s: complex(s)}.即使这样,如果阵列中有NaN,加载仍然失败.

它看起来像有人询问这多个 的numpy的邮件列表上,甚至提交了错误,但一直没有得到答复.在我自己整理东西之前,有没有一种规范的方法可以做到这一点?

python numpy complex-numbers

17
推荐指数
2
解决办法
1万
查看次数

ICC是否满足C99规范的复数乘法?

考虑这个简单的代码:

#include <complex.h>
complex float f(complex float x) {
  return x*x;
}
Run Code Online (Sandbox Code Playgroud)

如果-O3 -march=core-avx2 -fp-model strict使用英特尔编译器进行编译,则可以获得:

f:
        vmovsldup xmm1, xmm0                                    #3.12
        vmovshdup xmm2, xmm0                                    #3.12
        vshufps   xmm3, xmm0, xmm0, 177                         #3.12
        vmulps    xmm4, xmm1, xmm0                              #3.12
        vmulps    xmm5, xmm2, xmm3                              #3.12
        vaddsubps xmm0, xmm4, xmm5                              #3.12
        ret 
Run Code Online (Sandbox Code Playgroud)

这比从两者中获得的代码简单得多gcc,clang而且比在线复制数字的代码简单得多.例如,它没有明确地用于处理复杂的NaN或无穷大.

这个组件是否符合C99复数乘法的规范?

c assembly icc avx complex-numbers

17
推荐指数
2
解决办法
608
查看次数

作为一名程序员,您如何解释想象中的数字?

作为一名程序员,我认为擅长数学是我的工作,但是我无法想象数字.我没有运气谷歌和维基百科,所以我希望程序员可以向我解释,给我一个数字平方的例子<= 0,一些示例用法等...

math complex-numbers

16
推荐指数
3
解决办法
4055
查看次数

Python Numpy - 复数 - 是否有Polar to Rectangular转换函数?

是否有内置的Numpy函数将极坐标形式的复数,幅度和角度(度)转换为实部和虚部中的一个?

显然,我可以编写自己的,但似乎某种模块中包含优化版本的东西类型?

更具体地说,我有一系列的数量和一系列角度:

>>> a
array([1, 1, 1, 1, 1])
>>> b
array([120, 121, 120, 120, 121])
Run Code Online (Sandbox Code Playgroud)

我想要的是:

>>> c
[(-0.5+0.8660254038j),(-0.515038074+0.8571673007j),(-0.5+0.8660254038j),(-0.5+0.8660254038j),(-0.515038074+0.8571673007j)]
Run Code Online (Sandbox Code Playgroud)

python numpy complex-numbers

16
推荐指数
2
解决办法
3万
查看次数

计算abs()的最快方法 - 复数数组的值

我想用C或C++计算复数数组元素的绝对值.最简单的方法是

for(int i = 0; i < N; i++)
{
    b[i] = cabs(a[i]);
}
Run Code Online (Sandbox Code Playgroud)

但是对于那些速度很慢的大型载体.有没有办法加快速度(例如,使用并行化)?语言可以是C或C++.

c c++ arrays complex-numbers

16
推荐指数
4
解决办法
2836
查看次数

Python增加了赋值问题

我遇到了有关python增强任务的有趣内容 +=

似乎是自动数据类型转换并不总是a += b如果a是一个'更简单'的数据类型,而a = a + b似乎总是工作

转换完成的情况

a = 1
b = 1j

a = 1
b = 0.5
Run Code Online (Sandbox Code Playgroud)

没有进行转换的情况

from numpy import array
a = array([0, 0 ,0])
b = array([0, 0, 1j])
Run Code Online (Sandbox Code Playgroud)

之后a += b,a仍然是整数矩阵,而不是复数矩阵

我以前认为a += b是相同a = a + b的,它们在底层实现中的区别是什么?

python arrays numbers numpy complex-numbers

15
推荐指数
2
解决办法
4279
查看次数

Java中的复系数多项式根发现

我正在尝试找到一种方法来计算Java中具有复系数的多项式的根(即,相当于在MATLAB中用根()轻松完成的事情).

我准备重新编码构建伴随矩阵的根查找算法,然后使用广义特征值分解来查找根,但为此我需要一个处理复值矩阵运算的库.

我浏览了一段时间,似乎没有任何说服力,我认为这很奇怪.然后,我想问你:

  1. 你知道(稳定的)Java库在COMPLEX系数定义的多项式上执行根查找吗?

  2. 你知道一个(稳定的)Java库在COMPLEX值矩阵上执行evd,svd,inverse等吗?

注意:我已经看过JAMA(不处理复杂),Michael Thomas Flanagan的Java Scientific Library(不再可用),colt(似乎没有处理复杂),高效的Java Matrix Library(也没有复杂),DDogleg Numerics (不处理具有复系数的多项式),JScience(不清楚evd是否可用)和Apache的通用数学(如果它们允许复杂矩阵则不清楚,如果是,则可以使用evd).

java matrix polynomial-math complex-numbers

15
推荐指数
1
解决办法
1081
查看次数

如何使用matplotlib绘制复数(Argand Diagram)

我想使用matplotlib从一组复数中创建一个Argand Diagram.

  • 是否有任何预先构建的功能可以帮助我做到这一点?

  • 有人可以推荐一种方法吗?

在此输入图像描述

图片来自LeonardoG,CC-SA-3.0

python plot numpy matplotlib complex-numbers

15
推荐指数
2
解决办法
4万
查看次数

使用C++中的std :: complex <T>创建复杂的无穷大

我正在尝试创建一个等于Inf + Inf*j的复数无穷大,其中j是复数变量.当我这样做:

#include <complex>
#include <limits>
using std;

...

complex<double> attempt1 =
   complex<double>( numeric_limits<double>::infinity(),
                    numeric_limits<double>::infinity() );
Run Code Online (Sandbox Code Playgroud)

返回复数(NaN + Inf*j).

complex<double> attempt2 =
   complex<double>( numeric_limits<double>::infinity() );
Run Code Online (Sandbox Code Playgroud)

返回复数(Inf + 0*j).

另外:

complex<double> attempt_at_imag_inf =
   complex<double>(any_value_here, numeric_limits<double>::infinity());
Run Code Online (Sandbox Code Playgroud)

返回复数(NaN + Inf*j).

有谁知道这里发生了什么?任何时候我试图为想象的部分提供信息,那么NaN就写在真实的部分上.

以上仅适用于支持NaN和Infinity的类型.我正在使用g ++ v4.6.1.我查看了numeric_limits标题,并没有迹象表明上面应该发生.

为了将上述内容置于上下文中,我实际上是在对numeric的一个部分特殊化中执行上述操作.非常感谢您考虑这个问题.

修改原始邮政

我正在提供一个完整但很短的程序来说明问题.我还提供了一些关于如何编译程序以生成结果的更多合格信息.

#include <iostream>
#include <complex>
#include <limits>

using namespace std;

int main(int argc, char* argv[])
{

   complex<double> my_complex_inf =
      complex<double>(numeric_limits<double>::infinity(),
                      numeric_limits<double>::infinity());

   cout << "my_complex_inf = " << my_complex_inf << endl;

   complex<double> attempt2 =
      complex<double>( numeric_limits<double>::infinity() …
Run Code Online (Sandbox Code Playgroud)

c++ nan infinity complex-numbers numeric-limits

14
推荐指数
2
解决办法
1121
查看次数

有没有办法在matplotlib中使用双变量色彩图?

换句话说,我想制作一个热图(或曲面图),其颜色随2个变量的变化而变化.(具体来说,亮度=幅度和色调=相位.)有没有本地方法来做到这一点?类似情节的一些例子:

使用两个颜色条,一个用于幅度,一个用于相位

使用颜色条表示幅度,使用圆形图例表示相位

使用2D颜色条指示两个变量的变化

确切(?)我想要做的几个很好的例子.

来自天文学的更多例子,但具有非感性色调

matplotlib color-mapping complex-numbers heatmap

14
推荐指数
2
解决办法
1653
查看次数