You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: lectures/about_lectures.md
+10-11Lines changed: 10 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -45,10 +45,18 @@ While Julia has many features of a general purpose language, its specialization
45
45
using Matlab or Fortran than using a general purpose language - giving it an advantage in being closer
46
46
to both mathematical notation and direct implementation of mathematical abstractions.
47
47
48
+
Julia has both a large number of useful, well written libraries and many incomplete poorly maintained proofs of concept.
49
+
50
+
A major advantage of Julia libraries is that, because Julia itself is sufficiently fast, there is less need to mix in low level languages like C and Fortran.
51
+
52
+
As a result, most Julia libraries are written exclusively in Julia.
53
+
54
+
Not only does this make the libraries more portable, it makes them much easier to dive into, read, learn from and modify.
55
+
48
56
### A Word of Caution
49
57
50
58
The disadvantage of specialization is that Julia tends to be used by domain experts, and consequently
51
-
the ecosystem and language for non-mathematical/non-scientfic computing tasks is inferior to Python.
59
+
the ecosystem and language for non-mathematical/non-scientific computing tasks is inferior to Python.
52
60
53
61
Another disadvantage is that, since it tends to be used by experts and is on the cutting edge, the tooling is
54
62
much more fragile and rudimentary than Matlab.
@@ -59,12 +67,6 @@ not expect the development tools to quite as stable, or to be comparable to Matl
59
67
60
68
Nevertheless, the end-result will always be elegant and grounded in mathematical notation and abstractions.
61
69
62
-
For these reasons, Julia is most appropriate at this time for researchers who want to:
63
-
64
-
1. invest in a language likely to mature in the 3-5 year timeline
65
-
1. use one of the many amazing packages that Julia makes possible (and are frequently impossible in other languages)
66
-
1. write sufficiently specialized algorithms that the quirks of the environment are much less important than the end-result
67
-
68
70
## Advantages of Julia
69
71
70
72
Despite the short-term cautions, Julia has both immediate and long-run advantages.
@@ -76,16 +78,13 @@ The advantages of the language itself show clearly in the high quality packages,
76
78
- Interval Constraint Programming and rigorous root finding: [IntervalRootFinding.jl](https://github.com/JuliaIntervals/IntervalRootFinding.jl)
- Linear algebra for large-systems (e.g. structured matrices, matrix-free methods, etc.): [IterativeSolvers.jl](https://juliamath.github.io/IterativeSolvers.jl/dev/), [BlockBandedMatrices.jl](https://github.com/JuliaMatrices/BlockBandedMatrices.jl), [InfiniteLinearAlgebra.jl](https://github.com/JuliaMatrices/InfiniteLinearAlgebra.jl), and many others
79
-
- Automatic differentiation: [Zygote.jl](https://github.com/FluxML/Zygote.jl) and [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl)
81
+
- Automatic differentiation: [ForwardDiff.jl](https://github.com/JuliaDiff/ForwardDiff.jl) and [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl)
80
82
81
83
These are in addition to the many mundane but essential packages available. While there are examples of these packages in other languages, no
82
84
other language can achieve the combination of performance, mathematical notation, and composition that Julia provides.
83
85
84
86
The composition of packages is especially important, and is made possible through Julia's use of something called [multiple-dispatch](https://en.wikipedia.org/wiki/Multiple_dispatch).
85
87
86
-
The promise of Julia is that you write clean mathematical code, and have the same code automatically work with automatic-differentiation, interval arithmetic, and GPU arrays--all of which may be used in
87
-
cutting edge algorithms in packages and combined seamlessly.
88
-
89
88
## Open Source
90
89
91
90
All the computing environments we work with are free and open source.
Copy file name to clipboardExpand all lines: lectures/getting_started_julia/julia_by_example.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -930,6 +930,8 @@ until $| x^{n+1} - x^n|$ is below a tolerance
930
930
931
931
For those impatient to use more advanced features of Julia, implement a version of Exercise 8(a) where `f_prime` is calculated with auto-differentiation.
932
932
933
+
See {doc}`auto-differentiation <../more_julia/auto_differentiation>` for more.
* Even better, write a function that returns an instance of [QuantEcon.jl's](http://quantecon.org/quantecon-jl) MarkovChain type.
1221
-
1222
1159
## Solutions
1223
1160
1224
1161
### Exercise 1
@@ -1313,10 +1250,3 @@ tags: [remove-cell]
1313
1250
@test ranked_pages['l'] ≈ 0.032017852378295776
1314
1251
end
1315
1252
```
1316
-
1317
-
### Exercise 3
1318
-
1319
-
A solution from [QuantEcon.jl](https://github.com/QuantEcon/QuantEcon.jl) can be found [here](https://github.com/QuantEcon/QuantEcon.jl/blob/master/src/markov/markov_approx.jl).
1320
-
1321
-
[^pm]: Hint: First show that if $P$ and $Q$ are stochastic matrices then so is their product --- to check the row sums, try postmultiplying by a column vector of ones. Finally, argue that $P^n$ is a stochastic matrix using induction.
0 commit comments