在实数范围内,有些运算仍然不能进行,比如
、
等等复数开偶次方的情况无法计算,为了使这种情况有解,便将数集扩充,便有了复数集。
复型(复数类型):我们把形如
的数称为 复数。
在 matlab 中的复数就称为 复型(没有历史考证,看的网上有人这么叫,可能不专业)。
一般情况下没有使用复型的必要,所以没有特殊需求的小伙伴可以跳过本节哦😲!
复型(复数类型):我们把形如
的数称为 复数,例如 10 + 3i
、-1 + 10i
、6 - 8i
等等。
a
称为 实部b
称为 虚部i
称为 虚数单位当实部a
为 0 ,虚部b
不为 0 时,复数z
为 纯虚数。当实部b
为 0 时,复数z
为 实数。
定义两个复数 :
、
。
复数的和仍然是复数,将实部与实部相加,虚部与虚部相加即可。(相同单位的加在一起)
复数的乘积也仍是一个复数,和初中学习的多项式相乘差不多。
由于:
复数的模:复数的实部与虚部的平方和的正的平方根的值,记作
。
若
,则共轭复数
。
共轭复数有以下几点给常见的性质,利用这些性质能够帮助我们更好地计算。
,
复数的模与辐角是复数三角形式表示的两个基本元素
θ
就是 辐角。则有 :
由直角坐标与极坐标的关系可知,非零有穷复数
可以用其模
与辐角
来表示,则有:
复数的创建有两种方式,直接创建 与 使用complex()
函数创建 。
在 matlab 中,i
和 j
表示基本虚数单位,可以使用它们来创建复数。
>> a=1+2i
a =
1.0000 + 2.0000i
>>
>> b=1+2j
b =
1.0000 + 2.0000i
>>
>> whos
Name Size Bytes Class Attributes
a 1x1 16 double complex
b 1x1 16 double complex
matlab 中也提供了 complex()
函数用来创建 复数类型,使用方式如下:
>> c = complex(1,2)
c =
1.0000 + 2.0000i
>>
>> whos
Name Size Bytes Class Attributes
a 1x1 16 double complex
b 1x1 16 double complex
c 1x1 16 double complex
abs()
函数用于返回复数 z
的模,使用如下:
>> z = 1 + 2i
z =
1.0000 + 2.0000i
>>
>> abs(z) %返回复数的模
ans =
2.2361
imag()
函数用于返回复数 z 的虚部real()
函数用于返回复数 z
的实部使用代码如下:
>> z = 1 + 2i
z =
1.0000 + 2.0000i
>>
>> imag(z) %返回复数的虚部
ans =
2
>>
>> real(z) %返回复数的实部
ans =
1
conj()
用于计算复数 z
的共轭复数。使用如下:
>> z = 1 + 2i
z =
1.0000 + 2.0000i
>>
>> conj(z) %计算复数的共轭复数
ans =
1.0000 - 2.0000i
angle()
函数用于计算复数 z
的辐角。使用如下:
>> z = 1 + 2i
z =
1.0000 + 2.0000i
>>
>> angle(z) %计算复数的辐角
ans =
1.1071
complex()
函数不仅可以向上面一样创建复数,也可以用来创建复数数组。使用如下:
>> a = double([1;2;3;4]) %复数的实部
a =
1
2
3
4
>>
>> b = double([5;6;7;8]) %复数的虚部
b =
5
6
7
8
>>
>> z = complex(a,b) %创建复数数组
z =
1.0000 + 5.0000i
2.0000 + 6.0000i
3.0000 + 7.0000i
4.0000 + 8.0000i