【julia】ベクトル場

ベクトル場を描いてみます。

$$x_1(t+1)=A_1x_1(t)+B_1x_2(t)$$ $$x_2(t+1)=A_2x_1(t)+B_2x_2(t)$$

コードは下の通り。A1の値を少しずつ変えてgifアニメを作成しています。

using Plots
import ProgressMeter
gr()

n = 100  # フレーム数
prog = ProgressMeter.Progress(n,1)

A1=1.0
B1=0.01
A2=-0.2
B2=-0.005

x_n(x1,x2,A,B)= x1 + x1*(A - B*x2)

anim = @animate for A1 in 0.1:0.1:1.2
    global p =plot(xlabel="x1",ylabel="x2",xlims=(0,150),ylims=(0,150))
    for i in 1:10 ,j in 1:10
        global p=plot!([10*i,x_n(10*i,10*j,A1, B1)],[10*j,x_n(10*j,10*i,A2, B2)],arrow = 2, label="", linecolor = "blue", xlabel="x1",ylabel="x2",xlims=(0,150),ylims=(0,150))
    end
    ProgressMeter.next!(prog)
    p
end
fps = 1
filename = "plot.gif"

gif(anim, filename, fps = fps)

Add a Comment

メールアドレスが公開されることはありません。