93 lines
4.4 KiB
Plaintext
93 lines
4.4 KiB
Plaintext
|
---
|
||
|
title: Calculus with Julia
|
||
|
date: today
|
||
|
jupyter: julia-1.11
|
||
|
execute:
|
||
|
daemon: false
|
||
|
format:
|
||
|
typst:
|
||
|
toc: false
|
||
|
section-numbering: "1."
|
||
|
keep-typ: false
|
||
|
include-before-body:
|
||
|
- text: |
|
||
|
#set figure(placement: auto)
|
||
|
---
|
||
|
|
||
|
|
||
|
[{}](https://calculuswithjulia.github.io/)
|
||
|
|
||
|
This is a set of notes for learning
|
||
|
[calculus](http://en.wikipedia.org/wiki/Calculus) using the
|
||
|
[`Julia`](https://julialang.org) language. `Julia` is an open-source
|
||
|
programming language with an easy to learn syntax that is well suited
|
||
|
for this task.
|
||
|
|
||
|
Read "[Getting started with Julia](./misc/getting_started_with_julia.html)" to learn how to install and customize `Julia` for following along with these notes. Read "[Julia interfaces](./misc/julia_interfaces.html)" to review different ways to interact with a `Julia` installation.
|
||
|
|
||
|
Since the mid 90s there has been a push to teach calculus using many
|
||
|
different points of view. The
|
||
|
[Harvard](http://www.math.harvard.edu/~knill/pedagogy/harvardcalculus/)
|
||
|
style rule of four says that as much as possible the conversation
|
||
|
should include a graphical, numerical, algebraic, and verbal
|
||
|
component. These notes use the programming language
|
||
|
[Julia](http://julialang.org) to illustrate the graphical, numerical,
|
||
|
and, at times, the algebraic aspects of calculus.
|
||
|
|
||
|
There are many examples of integrating a computer algebra system (such
|
||
|
as `Mathematica`, `Maple`, or `Sage`) into the calculus
|
||
|
conversation. Computer algebra systems can be magical. The popular
|
||
|
[WolframAlpha](http://www.wolframalpha.com/) website calls the full
|
||
|
power of `Mathematica` while allowing an informal syntax that is
|
||
|
flexible enough to be used as a backend for Apple's Siri
|
||
|
feature. ("Siri what is the graph of x squared minus 4?") For
|
||
|
learning purposes, computer algebra systems model very well the
|
||
|
algebraic/symbolic treatment of the material while providing means to
|
||
|
illustrate the numeric aspects. These notes are a bit different in
|
||
|
that `Julia` is primarily used for the numeric style of computing and
|
||
|
the algebraic/symbolic treatment is added on. Doing the symbolic
|
||
|
treatment by hand can be very beneficial while learning, and computer
|
||
|
algebra systems make those exercises seem kind of redundant, as the
|
||
|
finished product can be produced much more easily.
|
||
|
|
||
|
Our real goal is to get at the concepts using technology as much as
|
||
|
possible without getting bogged down in the mechanics of the computer
|
||
|
language. We feel `Julia` has a very natural syntax that makes the
|
||
|
initial start up not so much more difficult than using a calculator,
|
||
|
but with a language that has a tremendous upside. The notes restrict
|
||
|
themselves to a reduced set of computational concepts. This set is
|
||
|
sufficient for working many of the problems in calculus, but do not
|
||
|
cover thoroughly many aspects of programming. (Those who are
|
||
|
interested can go off on their own and `Julia` provides a rich
|
||
|
opportunity to do so.) Within this restricted set, are operators that
|
||
|
make many of the computations of calculus reduce to a function call of
|
||
|
the form `action(function, arguments...)`. With a small collection of
|
||
|
actions that can be composed, many of the problems associated with
|
||
|
introductory calculus can be attacked.
|
||
|
|
||
|
|
||
|
These notes are accompanied by a `Julia` package [`CalculusWithJulia`](https://github.com/jverzani/CalculusWithJulia.jl)
|
||
|
that provides some simple functions to streamline some common tasks
|
||
|
and loads some useful packages that will be used repeatedly.
|
||
|
|
||
|
----
|
||
|
|
||
|
The [online book](https://calculuswithjulia.github.io/) is compiled using the excellent [Quarto](https://quarto.org/) publishing system. Quarto does not support both [typst](https://typst.app/) and the book format, so this pdf file is pieced together section by section. This is useful, but less than optimal:
|
||
|
|
||
|
* there is no table of contents
|
||
|
* there is no index of sections, rather search must be utilized to navigate
|
||
|
* in HTML, the questions are interactive and self-grading; with the pdf they are rendered in plain text, with some residual formatting. Also the questions in the pdf have *really* long section numbers.
|
||
|
* there is little attention paid to page layout, as HTML is the preferred presentation format.
|
||
|
|
||
|
|
||
|
----
|
||
|
|
||
|
```{julia}
|
||
|
#| echo: false
|
||
|
using YAML, Dates, Markdown
|
||
|
cfg = YAML.load_file("_quarto.yml")
|
||
|
version = VersionNumber(cfg["version"])
|
||
|
yr=Dates.year(now())
|
||
|
Markdown.parse("[CalculusWithJulia](https://calculuswithjulia.github.io/) version $version; Copyright 2022-$yr, John Verzani")
|
||
|
```
|