Type classes for derivatives and the Laplacian #
In this file we define notation type classes for line derivatives, also known as partial derivatives, and for the Laplacian.
Moreover, we provide type-classes that encode the linear structure. We also define the iterated line derivative and prove elementary properties. We define a Laplacian based on the sum of second derivatives formula and prove that the Laplacian thus defined is independent of the choice of basis.
Line derivative #
∂_{v} f is the line derivative of f in direction v. The meaning of this notation is
type-dependent.
Equations
- One or more equations did not get rendered due to their size.
Instances For
∂^{m} f is the iterated line derivative of f, where m is a finite number of (different)
directions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The line derivative is additive, ∂_{v} (x + y) = ∂_{v} x + ∂_{v} y for all x y : E
and ∂_{v + w} x = ∂_{v} x + ∂_{w} y for all v w : V.
Note that lineDeriv on functions is not additive.
- lineDerivOp_add (v : V) (x y : E) : LineDeriv.lineDerivOp v (x + y) = LineDeriv.lineDerivOp v x + LineDeriv.lineDerivOp v y
- lineDerivOp_left_add (v w : V) (x : E) : LineDeriv.lineDerivOp (v + w) x = LineDeriv.lineDerivOp v x + LineDeriv.lineDerivOp w x
Instances
The line derivative commutes with scalar multiplication, ∂_{v} (r • x) = r • ∂_{v} x for all
r : R and x : E.
- lineDerivOp_smul (v : V) (r : R) (x : E) : LineDeriv.lineDerivOp v (r • x) = r • LineDeriv.lineDerivOp v x
Instances
The line derivative commutes with scalar multiplication, ∂_{r • v} x = r • ∂_{v} x for all
r : R and v : V.
- lineDerivOp_left_smul (r : R) (v : V) (x : E) : LineDeriv.lineDerivOp (r • v) x = r • LineDeriv.lineDerivOp v x
Instances
The line derivative is continuous.
- continuous_lineDerivOp (v : V) : Continuous (LineDeriv.lineDerivOp v)
Instances
The line derivative as a continuous linear map.
Equations
- LineDeriv.lineDerivOpCLM R E m = { toFun := LineDeriv.lineDerivOp m, map_add' := ⋯, map_smul' := ⋯, cont := ⋯ }
Instances For
The iterated line derivative as a continuous linear map.
Equations
- LineDeriv.iteratedLineDerivOpCLM R E m = { toFun := LineDeriv.iteratedLineDerivOp m, map_add' := ⋯, map_smul' := ⋯, cont := ⋯ }
Instances For
Laplacian #
Δ f is the Laplacian of f. The meaning of this notation is type-dependent.
Equations
- Laplacian.termΔ = Lean.ParserDescr.node `Laplacian.termΔ 1024 (Lean.ParserDescr.symbol "Δ")
Instances For
The second derivative in terms lineDerivOp as a bilinear map.
Mainly used to give an abstract definition of the Laplacian.
Equations
- LineDeriv.bilinearLineDerivTwo R f = LinearMap.mk₂ R (fun (x1 x2 : E) => LineDeriv.lineDerivOp x1 (LineDeriv.lineDerivOp x2 f)) ⋯ ⋯ ⋯ ⋯
Instances For
The second derivative in terms lineDerivOp as a linear map from the tensor product.
Mainly used to give an abstract definition of the Laplacian.
Equations
Instances For
The Laplacian defined by iterated lineDerivOp as a continuous linear map.
Equations
- LineDeriv.laplacianCLM R E V₁ = ∑ i : Fin (Module.finrank ℝ E), LineDeriv.lineDerivOpCLM R V₂ ((stdOrthonormalBasis ℝ E) i) ∘SL LineDeriv.lineDerivOpCLM R V₁ ((stdOrthonormalBasis ℝ E) i)