您当前的位置:钢材 > 钢铁资讯 > 钢铁研究

复数的运算?复数的数学运算

来源: 作者: luoboai
分享到
关注德勤钢铁网在线:
  • 扫描二维码

    关注√

    德勤钢铁网微信

在线咨询:
  • 扫描或点击关注德勤钢铁网在线客服

很多朋友对于复数的运算和复数的数学运算不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间。再或者是你仅仅需要使用复数来执行一些计算操作。

复数可以用使用函数complex(real,imag)或者是带有后缀j的浮点数来指定。比如:

a=complex(2,3)\nb=3-6j\n\nprint(a)\t#"(2+3j)"\nprint(b)\t#"(3-6j)"

对应的实部、虚部和共轭复数可以很容易的获取。就像下面这样:

print(a.real)\t#"2.0"\nprint(a.imag)\t#"3.0"\nprint(a.conjugate())\t#"(2-3j)"

另外,所有常见的数学运算都可以工作:

print(a+b)\t#"(5-3j)"\nprint(a-b)\t#"(-1+9j)"\nprint(a*b)\t#"(24-3j)"\nprint(a/b)\t#"(-0.26666666666666666+0.4666666666666667j)"\nprint(abs(a))\t#"3.605551275463989"

如果要执行其他的复数函数比如正弦、余弦或平方根,使用cmath模块:

importcmath\nprint(cmath.sin(a))\t#"(9.15449914691143-4.168906959966565j)"\nprint(cmath.cos(a))\t#"(-4.189625690968807-9.109227893755337j)"\nprint(cmath.exp(a))\t#"(-7.315110094901103+1.0427436562359045j)"

Python中大部分与数学相关的模块都能处理复数。比如如果你使用numpy,可以很容易的构造一个复数数组并在这个数组上执行各种操作:

importnumpyasnp\n\nnp_a=np.array([2+3j,2-5j,8+9j])\nprint(np_a)\t#"[2.+3.j2.-5.j8.+9.j]"\nprint(np_a+2)\t#"[4.+3.j4.-5.j10.+9.j]"\nprint(np.sin(np_a))\t#"[9.15449915-4.16890696j67.47891524+30.87943134j4008.42651446-589.49948373j]"

Python的标准数学函数确实情况下并不能产生复数值,因此你的代码中不可能会出现复数返回值。

如果你想生成一个复数返回结果,你必须显示的使用cmath模块,或者在某个支持复数的库中声明复数类型的使用。比如:

importmath\nimportcmath\n\n#print(math.sqrt(-1))\t#报错ValueError:mathdomainerror\nprint(cmath.sqrt(-1))\t#"1j"

我们把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,j称为虚数单位。当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。

复数的加法法则:设z1=a+bj,z2=c+dj是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。

(a+bj)+(c+dj)=(a+c)+(b+d)j

两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。

(a+bj)+(c-dj)=(a-c)+(b-d)j

复数的乘法法则:把两个复数相乘,类似两个多项式相乘,结果中i2=-1,把实部与虚部分别合并。两个复数的积仍然是一个复数。

(a+bj)*(c-dj)=(ac-bd)+(bc+ad)j

运算方法:将分子和分母同时乘以分母的共轭复数,再用乘法法则运算,即

NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

OK,本文到此结束,希望对大家有所帮助。

责任编辑:德勤钢铁网 标签:

热门搜索

相关文章

广告
德勤钢铁网 |钢铁研究

复数的运算?复数的数学运算

luoboai

|

很多朋友对于复数的运算和复数的数学运算不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

你写的最新的网络认证方案代码遇到了一个难题,并且你唯一的解决办法就是使用复数空间。再或者是你仅仅需要使用复数来执行一些计算操作。

复数可以用使用函数complex(real,imag)或者是带有后缀j的浮点数来指定。比如:

a=complex(2,3)\nb=3-6j\n\nprint(a)\t#"(2+3j)"\nprint(b)\t#"(3-6j)"

对应的实部、虚部和共轭复数可以很容易的获取。就像下面这样:

print(a.real)\t#"2.0"\nprint(a.imag)\t#"3.0"\nprint(a.conjugate())\t#"(2-3j)"

另外,所有常见的数学运算都可以工作:

print(a+b)\t#"(5-3j)"\nprint(a-b)\t#"(-1+9j)"\nprint(a*b)\t#"(24-3j)"\nprint(a/b)\t#"(-0.26666666666666666+0.4666666666666667j)"\nprint(abs(a))\t#"3.605551275463989"

如果要执行其他的复数函数比如正弦、余弦或平方根,使用cmath模块:

importcmath\nprint(cmath.sin(a))\t#"(9.15449914691143-4.168906959966565j)"\nprint(cmath.cos(a))\t#"(-4.189625690968807-9.109227893755337j)"\nprint(cmath.exp(a))\t#"(-7.315110094901103+1.0427436562359045j)"

Python中大部分与数学相关的模块都能处理复数。比如如果你使用numpy,可以很容易的构造一个复数数组并在这个数组上执行各种操作:

importnumpyasnp\n\nnp_a=np.array([2+3j,2-5j,8+9j])\nprint(np_a)\t#"[2.+3.j2.-5.j8.+9.j]"\nprint(np_a+2)\t#"[4.+3.j4.-5.j10.+9.j]"\nprint(np.sin(np_a))\t#"[9.15449915-4.16890696j67.47891524+30.87943134j4008.42651446-589.49948373j]"

Python的标准数学函数确实情况下并不能产生复数值,因此你的代码中不可能会出现复数返回值。

如果你想生成一个复数返回结果,你必须显示的使用cmath模块,或者在某个支持复数的库中声明复数类型的使用。比如:

importmath\nimportcmath\n\n#print(math.sqrt(-1))\t#报错ValueError:mathdomainerror\nprint(cmath.sqrt(-1))\t#"1j"

我们把形如z=a+bi(a,b均为实数)的数称为复数,其中a称为实部,b称为虚部,j称为虚数单位。当z的虚部等于零时,常称z为实数;当z的虚部不等于零时,实部等于零时,常称z为纯虚数。

复数的加法法则:设z1=a+bj,z2=c+dj是任意两个复数。两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。

(a+bj)+(c+dj)=(a+c)+(b+d)j

两者和的实部是原来两个复数实部的和,它的虚部是原来两个虚部的和。两个复数的和依然是复数。

(a+bj)+(c-dj)=(a-c)+(b-d)j

复数的乘法法则:把两个复数相乘,类似两个多项式相乘,结果中i2=-1,把实部与虚部分别合并。两个复数的积仍然是一个复数。

(a+bj)*(c-dj)=(ac-bd)+(bc+ad)j

运算方法:将分子和分母同时乘以分母的共轭复数,再用乘法法则运算,即

NumPy(NumericalPython)是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

OK,本文到此结束,希望对大家有所帮助。


钢铁研究