Julia & IJulia Cheat-sheet (for 18.xxx at MIT, Julia 1.x)
Basics:
— run Julia online
github.com/mitmath/julia-mit
installation & tutorial
using IJulia; IJulia.notebook() start IJulia browser
shift-return
execute input cell in IJulia
using LinearAlgebra load functions for blue-highlighted code below
julialang.org
— documentation;
juliabox.com
Defining/changing variables:
Arithmetic and functions of numbers:
mult., add, sub., divide numbers
compute 3 or 3 power
−5 as a complex number
3*4, 7+4, 2-6, 8/3
3^7, 3^(8+2im)
7
8+2i
sqrt(-5+0im)
exp(12)
e12
log(3), log10(100)
natural log (ln), base-10 log (log )
absolute value |–5| or |2+3i|
compute sin(5π/3)
10
abs(-5), abs(2+3im)
define variable x to be 3
array/“column”-vector (1,2,3)
[1 2 3] 1×3 matrix (1,2,3)
x = 3
sin(5pi/3)
x = [1,2,3]
y =
A = [1 2 3 4; 5 6 7 8; 9 10 11 12]
x[2] = 7
change x from (1,2,3) to
set A to 3×4 matrix
(1,7,3)
change A from 5 to 0
u, v = (15.03, 1.2e-27)
set u=15.03, v=1.2×10
f(x) = 3x
define a function f(x)
x -> 3x
an “anonymous” function
\alphaTAB
tab-complete \alpha to α
A[2,1] = 0
2,1
–27
Constructing a few simple matrices:
random length-12 vector or 12×4 matrix
with uniform random numbers in [0,1)
randn(12)
Gaussian random numbers (mean 0, std. dev. 1)
Matrix(I,3,3)
5×5 identity matrix I
range(1.2,4.7,length=100) 100 equally spaced points from 1.2 to 4.7
Diagonal(x)
matrix whose diagonal is the entries of x
rand(12), rand(12,4)
Portions of matrices and vectors:
x[2:12]
x[2:end]
A[5,1:3]
A[5,:]
diag(A)
the 2 to 12 elements of x
the 2 to the last elements of x
row vector of 1 3 elements in 5 row of A
row vector of 5 row of A
vector of diagonals of A
nd
th
nd
st
th
th
Arithmetic and functions of vectors and matrices:
x * 3, x .+ 3
multiply/add 3
x + y
element-wise addition
to every element of x
of two vectors x and y
A*y, A*B
product of matrix A and vector y or matrix B
x * y
not defined for two vectors!
x .* y
element-wise product of vectors x and y
x .^ 3
every element of x is cubed
cos.(x), cos.(A)
cosine of every element of x or A
exp.(A), exp(A)
exponential of each element, matrix exponential
x', A'
conjugate-transpose of vector or matrix
x'y, dot(x,y), sum(conj(x).*y)
three ways to compute x · y
A \ b, inv(A)
return solution to Ax=b, or the matrix A
eigvals(A), eigvecs(A)
eigenvalues and eigenvectors (columns)
–1
Plotting (type using PyPlot first)
plot(y), plot(x,y)
plot y vs. 0,1,2,3,… or versus x
loglog(x,y), semilogx(x,y), semilogy(x,y)
log-scale plots
title("A title"), xlabel("x-axis"), ylabel("foo")
set labels
legend at upper-left
grid(), axis("equal")
add grid lines, use equal x and y scaling
title(L"the curve $e^\sqrt{x}$") title with LaTeX equation
savefig("fig.png"), savefig("fig.pdf") save PNG or PDF image
legend(["curve 1", "curve 2"], "northwest")