😊
Juliaで線形代数② ベクトルの線形結合で平面を可視化する
ベクトルxとyの線形結合ax + byの全体はxy平面となる
# x, yを定義
julia> x = [1.0, 2.0];
julia> y = [2.0, 1.0];
# -1.0 <= a <= 1.0, -1.0 <= b <= 1.0の範囲で、 線形結合ax + byのとりうる値を配列に入れる
julia> x_values = Float64[];
julia> y_values = Float64[];
julia> for alpha in -1.0:0.1:1.0
for beta in -1.0:0.1:1.0
result = alpha * vector1 + beta * vector2
push!(x_values, result[1])
push!(y_values, result[2])
end
end
julia> x_values
x_values
441-element Vector{Float64}:
-3.0
-2.8
-2.6
-2.4
-2.2
-2.0
-1.8
-1.6
-1.4
-1.2
⋮
1.4
1.6
1.8
2.0
2.2
2.4
2.6
2.8
3.0
julia> y_values
y_values
441-element Vector{Float64}:
-3.0
-2.9
-2.8
-2.7
-2.6
-2.5
-2.4
-2.3
-2.2
-2.1
⋮
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3.0
# 可視化
scatter(x_values, y_values, xlabel="x", ylabel="y", legend=false)
3次元ベクトルの線形結合ax + by + czの全体はxyz空間となる
julia> x = [1.0, 0.0, 0.0];
julia> y = [0.0, 1.0, 0.0];
julia> z = [0.0, 0.0, 1.0];
julia> x_values = Float64[];
julia> y_values = Float64[];
julia> z_values = Float64[];
julia> for alpha in -1.0:0.1:1.0
for beta in -1.0:0.1:1.0
for gamma in -1.0:0.1:1.0
result = alpha * x + beta * y + gamma *z
push!(x_values, result[1])
push!(y_values, result[2])
push!(z_values, result[3])
end
end
end
julia> scatter(x_values, y_values, z_values, xlabel="x", ylabel="y", zlabel="z", legend=false)
Discussion