Book Image

Mastering Julia - Second Edition

By : Malcolm Sherrington
Book Image

Mastering Julia - Second Edition

By: Malcolm Sherrington

Overview of this book

Julia is a well-constructed programming language which was designed for fast execution speed by using just-in-time LLVM compilation techniques, thus eliminating the classic problem of performing analysis in one language and translating it for performance in a second. This book is a primer on Julia’s approach to a wide variety of topics such as scientific computing, statistics, machine learning, simulation, graphics, and distributed computing. Starting off with a refresher on installing and running Julia on different platforms, you’ll quickly get to grips with the core concepts and delve into a discussion on how to use Julia with various code editors and interactive development environments (IDEs). As you progress, you’ll see how data works through simple statistics and analytics and discover Julia's speed, its real strength, which makes it particularly useful in highly intensive computing tasks. You’ll also and observe how Julia can cooperate with external processes to enhance graphics and data visualization. Finally, you will explore metaprogramming and learn how it adds great power to the language and establish networking and distributed computing with Julia. By the end of this book, you’ll be confident in using Julia as part of your existing skill set.
Table of Contents (14 chapters)

Linear algebra

Linear algebra is one of the areas where the existing code has moved from BASE to STDLIB, so any work now needs to be prefaced with using linear algebra.

Linear algebra is a branch of mathematics concerning vector spaces and linear mappings between such spaces. It includes the study of lines, planes, and subspaces but is also concerned with properties common to all vector spaces and encompasses matrices and multidimensional arrays.

Julia has excellent support for the latter, mapping as it does higher-order arrays to 1D vectors, reinterpreted via a set of shape parameters. This means that an array, regardless of its arity, can be indexed as a 1D vector provided that that index does not exceed the total bounds of the array. It is worth noting also that for matrices, the apparent order is via columns, and for 3D arrays, from planes, then columns, and so on.

The normal rules for manipulating arrays are available in Julia, and we will not spend too much time on them...