Jupyter notebook with Julia kernel#
This notebook shows that the instructions provided in the Julia installation and IJulia instructions work correctly. The cell outputs below are generated automatically with MyST-NB from the Julia code input.
Simple example:
println("Hello world!")
Hello world!
Here’s an example that prints a Mandelbrot set!
function mandelbrot(a)
z = 0
for i=1:50
z = z^2 + a
end
return z
end
for y=1.0:-0.05:-1.0
for x=-2.0:0.0315:0.5
abs(mandelbrot(complex(x, y))) < 2 ? print("*") : print(" ")
end
println()
end
**
******
********
******
******** ** *
*** *****************
************************ ***
****************************
******************************
******************************
************************************
* **********************************
** ***** * **********************************
*********** ************************************
************** ************************************
***************************************************
*****************************************************
***********************************************************************
*****************************************************
***************************************************
************** ************************************
*********** ************************************
** ***** * **********************************
* **********************************
************************************
******************************
******************************
****************************
************************ ***
*** *****************
******** ** *
******
********
******
**
It’s also possible to work with a local environment from the notebook. In this case, we activate the environment defined by the file Project.toml
and instantiate it so that the exact versions of the dependencies as defined in Manifest.toml
are installed.
using Pkg
Pkg.activate(@__DIR__))
Pkg.instantiate()
using Images
@inline function hsv2rgb(h, s, v)
c = v * s
x = c * (1 - abs(((h/60) % 2) - 1))
m = v - c
r,g,b = if h < 60 (c, x, 0)
elseif h < 120 (x, c, 0)
elseif h < 180 (0, c, x)
elseif h < 240 (0, x, c)
elseif h < 300 (x, 0, c)
else (c, 0, x) end
(r + m), (b + m), (g + m)
end
function mandelbrot()
w = 1600
h = 1200
zoom = 0.5
moveX = -0.5
moveY = 0
maxIter = 30
img = Array{RGB{Float64},2}(undef,h,w)
for x in 1:w
for y in 1:h
i = maxIter
z = c = Complex( (2*x - w) / (w * zoom) + moveX,
(2*y - h) / (h * zoom) + moveY )
while abs(z) < 2 && (i -= 1) > 0
z = z^2 + c
end
r,g,b = hsv2rgb(i / maxIter * 360, 1, i / maxIter)
img[y,x] = RGB{Float64}(r, g, b)
end
end
return img
end
img = mandelbrot()
save("mandelbrot_image.png", img)