Engee 文档
Notebook

建筑复杂号码

在本演示中,我们将介绍在Engee中以图形方式显示复数的基本技术。

一个复数 -这是表格的一部分 ,在哪里 -实数, -假想单位 . 电话号码 -复数的实数部分 并记为 . 电话号码 -复数的虚部 它有这个名字 .

一个复数 它可以在笛卡尔坐标系中构造,其中它的实部沿着横坐标的轴线沉积。 ,并且沿着纵坐标轴,虚 .

它可以在极坐标中构造。 要做到这一点,请参阅其指数或三角表示法。 .
从这里:模块 和论点 -分别为复数的与原点的距离和与横坐标轴的半径矢量 .

构造复数向量

让我们定义一个复数向量。

In [ ]:
Pkg.add(["LinearAlgebra"])
In [ ]:
z = [
    3 + 4im,
    -4 - 3im,
    1 - 2im,
    -1 - 1im
    ];

下载库并连接后端进行制图。

In [ ]:
import Pkg
Pkg.add("Plots")
using Plots;
plotlyjs()
   Resolving package versions...
  No Changes to `/user/.project/Project.toml`
  No Changes to `/user/.project/Manifest.toml`
Out[0]:
Plots.PlotlyJSBackend()

让我们通过替换从复杂平面上提取的坐标来构造一个给定的矢量 z 实部和虚部。

In [ ]:
scatter(
    real.(z), imag.(z),
    title="Комплексные числа",
    xlabel="Re(z)",
    ylabel="Im(z)",
    markersize=4,
    markercolor=:red,
    legend=:topleft,
    label="z"
    )
Out[0]:

当显示复数时,不需要提取实部和虚部。 将复数传递给函数时 scatter(z)plot(z) 它们在复平面上的坐标将自动确定,我们将在后面看到。

复平面上第n个统一度的根

对于形式的多项式 ,在哪里 ,可以找到复杂的根源 根据Moivre公式:

,在哪里

让我们定义一个计算根的函数:

In [ ]:
nthroots(n::Integer) = [ cospi(2k/n) + sinpi(2k/n)im for k = 0:n-1 ]
Out[0]:
nthroots (generic function with 1 method)

让我们找到一个多项式的复数根 n = 5:

In [ ]:
z = nthroots(5)
Out[0]:
5-element Vector{ComplexF64}:
                 1.0 + 0.0im
 0.30901699437494734 + 0.9510565162951536im
 -0.8090169943749475 + 0.587785252292473im
 -0.8090169943749475 - 0.587785252292473im
  0.3090169943749477 - 0.9510565162951535im

让我们在笛卡尔坐标系中的复平面上显示找到的根。 在这个构造中,我们将通过函数 scatter() 不提取实部和虚部的复数数组。

In [ ]:
scatter(
    z,
    title="Корни полинома",
    xlabel="Re(z)",
    ylabel="Im(z)",
    markersize=4,
    markercolor=:blue,
    legend=:topleft,
    label="z"
    )
Out[0]:

根据第n度为1的根的性质,复数根的模数将为1。 为了验证这一点,让我们继续在极坐标中映射这些根。 功能 scatter() 在这种情况下,必须传递参数数组和复杂根的模块。

In [ ]:
scatter(
    angle.(z), abs.(z),
    proj=:polar,
    marker = :circle,
    m=4, #markersize
    markercolor=:green,
    legend=:topleft,
    label="z"
    )
Out[0]:

如下从第5度1的根的几何属性,它们的模块等于1,在复平面上它们位于以原点为中心的正五边形的顶点处,并且其中一个根等于复单元 .

复平面上的参数曲线

我们在复平面上构造一条参数曲线,该曲线由表达式表示 .
参数 将在范围内定义 .
设置200个参数点的数组 在设定的范围内,我们将计算参数曲线的点数组。

In [ ]:
t = collect(range(0, 4pi, length=200));
z = t.*exp.(t.*im);

让我们在笛卡尔坐标系中的复平面上显示参数曲线。:

In [ ]:
plot(
    z,
    title="Параметрическая кривая",
    xlabel="Re(z)",
    ylabel="Im(z)",
    markersize=4,
    markercolor=:blue,
    legend=:topright,
    label="z",
    width=3
    )
Out[0]:

让我们在极坐标系中显示复平面上的参数曲线:

In [ ]:
plot(
    angle.(z), abs.(z),
    proj=:polar,
    legend=:topleft,
    label="z",
    width=3
    )
Out[0]:

复平面上矩阵的特征值

对于方阵 有效或复共轭对的特征值。
让我们确保这个属性并在复平面上显示特征值。

要查找关联的值,请下载并连接库。 LinearAlgebra:

In [ ]:
Pkg.add("LinearAlgebra")
using LinearAlgebra;
   Resolving package versions...
  No Changes to `/user/.project/Project.toml`
  No Changes to `/user/.project/Manifest.toml`

让我们找到矩阵的特征值 ,随机生成。

In [ ]:
z=eigen(rand(20,20));

让我们在复平面上构造矩阵的特征值。

In [ ]:
scatter(
    z.values,
    title="Собственные значения",
    xlabel="Re(z)",
    ylabel="Im(z)",
    markersize=4,
    markercolor=:magenta,
    legend=:topleft,
    label="z"
    )
Out[0]:

从一个方阵的特征值的性质如下 在复平面上,可以观察到20个点,它们要么位于实数值的轴上,要么表示复共轭对。

平面上复数的多个数组

让我们考虑两组不同的复杂数据在复平面上的表示。 它们将由以下表达式定义:



定义值的向量 一步一步 并计算值的数组 .

In [ ]:
x = collect(-2:0.25:2);
z1=Complex.(x).^exp.(-x.^2);
z2=2*Complex.(x).^exp.(-x.^2);

提取两个数组的数字的实部和虚部。:

In [ ]:
re_z1 = real.(z1);
im_z1 = imag.(z1);
re_z2 = real.(z2);
im_z2 = imag.(z2);

让我们在同一平面上构建两组复数:

In [ ]:
scatter(
    re_z1, im_z1,
    title="Массивы комплексных чисел",
    xlabel="Re(z)",
    ylabel="Im(z)",
    marker=:cross,
    markersize=5,
    markercolor=:violet,
    legend=:topleft,
    label="z1"
    )
scatter!(
    re_z2, im_z2,
    marker=:xcross,
    markersize=5,
    markercolor=:orange,
    label="z2"
    )
Out[0]:

结论

在本演示中,我们回顾了在Engee中以图形表示复数的各种工具和技术。