rlm@2: #+TITLE:An Unambiguous Notation for Derivatives rlm@2: #+author: Dylan Holmes rlm@2: #+EMAIL: rlm@mit.edu rlm@2: #+MATHJAX: align:"left" mathml:t path:"../MathJax/MathJax.js" rlm@2: #+STYLE: rlm@2: #+OPTIONS: H:3 num:t toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t rlm@2: #+SETUPFILE: ../templates/level-0.org rlm@2: #+INCLUDE: ../templates/level-0.org rlm@2: #+BABEL: :noweb yes rlm@2: rlm@2: * Calculus of Infinitesimals rlm@2: ** Differential Objects rlm@2: rlm@2: A *differential object* is a pair $[x,\,dx]$ consisting of a variable rlm@2: and an infinitely small increment of it. We want differential objects rlm@2: to enable us to compute derivatives of functions. rlm@2: rlm@2: Differential objects are for rlm@2: calculating derivatives of functions: the derivative of $f$ with rlm@2: respect to $x$ rlm@2: rlm@2: You can \ldquo{}apply\rdquo{} rlm@2: functions to differential objects; the result is: rlm@2: rlm@2: \([x,dx]\xrightarrow{\quad f \quad}[f(x), Df(x)\cdot dx].\) rlm@2: rlm@2: Loosely speaking, the interaction of $f$ and a differential object rlm@2: of $x$ is a differential object of $f$. rlm@2: rlm@2: #As a linguistic convention, we'll call this interaction /applying f rlm@2: #to the differential object/. This is not to be confused with the rlm@2: #=apply= function in Clojure. rlm@2: rlm@2: ** Interactions obey the chain rule rlm@2: rlm@2: The interaction of $f$ and the differential object $[x, dx]$ is rlm@2: a differential object $[f(x), Df(x)\cdot dx]$. Because of the rule for rlm@2: interactions, if you apply another function $g$, you get the rlm@2: chain-rule answer you expect: rlm@2: rlm@2: \([f(x), Df(x)\cdot dx]\xrightarrow{\quad g\quad}\left[g(f(x)),\, rlm@2: Dg(f(x))\cdot Df(x)\cdot dx\right]\) rlm@2: rlm@2: rlm@2: #+begin_src clojure :tangle deriv.clj rlm@2: rlm@2: #+end_src rlm@2: rlm@2: #+results: rlm@2: : nil rlm@2: rlm@2: rlm@2: