plotlyjs()
N₁=31 # Number of waveguides / size of solution vector
γ=1 # Nonlinear term strength parameter
h=1 # Grid spacing
centerGrid = (N₁-1)/2;
x = -centerGrid:centerGrid;
# Coefficient matrix of second-order centered-difference operator (δ²u)ₙ
M = spdiagm(-1 => fill(1,N₁-1), 0 => fill(-2,N₁), 1 => fill(1,N₁-1))
M[N₁,1] = 1; # Periodic boundary conditions
M[1,N₁] = 1;
# RHS of DNLS. The solution vector u is a N₁x1 complex vector
g₁(u,p,t) = 1*im*(p[1]*M*u + @.(γ*((abs(u))^2).*u) )
# Julia is explicitly typed (e.g, cannot have Int and Complex in same array) and so we must convert the object containing the initial data to be complex
u0 = Complex.(sech.(x))
tspan = (0.0,200)
prob = ODEProblem(g₁,u0,tspan, [h])
sol = solve(prob, Tsit5(), reltol=1e-8, abstol=1e-8)
z= [abs(sol.u[i][j])^2 for j=1:N₁, i=1:size(sol)[2]] # |u|²
p1 = surface(sol.t, x, z, xlabel="Time", ylabel="Space", zlabel="|u|²", colorbar = false)
zaxis!("|u|²")
p2 = contourf(sol.t,x,z)
plt = plot(p1,p2,layout=(1,2),xlabel="Time",ylabel="Space", size=(1200,800))
Can someone tell me what I am doing wrong in my label making for my plots? https://i.imgur.com/RglsJSy.png
Where there are "x" and "y" should be "time" and "space" respectively.