Working on partial derivatives
This commit is contained in:
parent
dc544308c8
commit
403605f7a0
|
@ -6,17 +6,13 @@ import Mathlib.Analysis.Calculus.ContDiff.Defs
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
||||||
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
||||||
import Nevanlinna.cauchyRiemann
|
import Nevanlinna.cauchyRiemann
|
||||||
|
import Nevanlinna.partialDeriv
|
||||||
noncomputable def Real.partialDeriv : ℂ → (ℂ → ℂ) → (ℂ → ℂ) := by
|
|
||||||
intro v
|
|
||||||
intro f
|
|
||||||
exact fun w ↦ (fderiv ℝ f w) v
|
|
||||||
|
|
||||||
theorem CauchyRiemann₄ {f : ℂ → ℂ} : (Differentiable ℂ f)
|
theorem CauchyRiemann₄ {f : ℂ → ℂ} : (Differentiable ℂ f)
|
||||||
→ Real.partialDeriv Complex.I f = Complex.I • Real.partialDeriv 1 f := by
|
→ Real.partialDeriv Complex.I f = Complex.I • Real.partialDeriv 1 f := by
|
||||||
intro h
|
intro h
|
||||||
unfold Real.partialDeriv
|
unfold Real.partialDeriv
|
||||||
|
|
||||||
conv =>
|
conv =>
|
||||||
left
|
left
|
||||||
intro w
|
intro w
|
||||||
|
@ -28,26 +24,15 @@ theorem CauchyRiemann₄ {f : ℂ → ℂ} : (Differentiable ℂ f)
|
||||||
conv =>
|
conv =>
|
||||||
right
|
right
|
||||||
right
|
right
|
||||||
intro w
|
intro w
|
||||||
rw [DifferentiableAt.fderiv_restrictScalars ℝ (h w)]
|
rw [DifferentiableAt.fderiv_restrictScalars ℝ (h w)]
|
||||||
|
|
||||||
theorem partialDeriv_smul {f : ℂ → ℂ } {a v : ℂ } : Real.partialDeriv v (a • f) = a • Real.partialDeriv v f := by
|
|
||||||
unfold Real.partialDeriv
|
|
||||||
have : a • f = fun y ↦ a • f y := by rfl
|
|
||||||
conv =>
|
|
||||||
left
|
|
||||||
intro w
|
|
||||||
rw [this]
|
|
||||||
rw [fderiv_const_smul]
|
|
||||||
|
|
||||||
|
|
||||||
sorry
|
|
||||||
|
|
||||||
noncomputable def Complex.laplace : (ℂ → ℂ) → (ℂ → ℂ) := by
|
noncomputable def Complex.laplace : (ℂ → ℂ) → (ℂ → ℂ) := by
|
||||||
intro f
|
intro f
|
||||||
let fx := Real.partialDeriv 1 f
|
let fx := Real.partialDeriv 1 f
|
||||||
let fxx := Real.partialDeriv 1 fx
|
let fxx := Real.partialDeriv 1 fx
|
||||||
let fy := Real.partialDeriv Complex.I f
|
let fy := Real.partialDeriv Complex.I f
|
||||||
let fyy := Real.partialDeriv Complex.I fy
|
let fyy := Real.partialDeriv Complex.I fy
|
||||||
exact fxx + fyy
|
exact fxx + fyy
|
||||||
|
|
||||||
|
@ -86,6 +71,7 @@ lemma l₂ {f : ℂ → ℂ} (hf : ContDiff ℝ 2 f) (z a b : ℂ) :
|
||||||
· exact (contDiff_succ_iff_fderiv.1 hf).2.differentiable le_rfl z
|
· exact (contDiff_succ_iff_fderiv.1 hf).2.differentiable le_rfl z
|
||||||
· simp
|
· simp
|
||||||
|
|
||||||
|
#check partialDeriv_contDiff
|
||||||
|
|
||||||
theorem holomorphic_is_harmonic {f : ℂ → ℂ} (h : Differentiable ℂ f) :
|
theorem holomorphic_is_harmonic {f : ℂ → ℂ} (h : Differentiable ℂ f) :
|
||||||
Harmonic f := by
|
Harmonic f := by
|
||||||
|
@ -94,6 +80,14 @@ theorem holomorphic_is_harmonic {f : ℂ → ℂ} (h : Differentiable ℂ f) :
|
||||||
have f_is_real_C2 : ContDiff ℝ 2 f :=
|
have f_is_real_C2 : ContDiff ℝ 2 f :=
|
||||||
ContDiff.restrict_scalars ℝ (Differentiable.contDiff h)
|
ContDiff.restrict_scalars ℝ (Differentiable.contDiff h)
|
||||||
|
|
||||||
|
-- f is real differentiable
|
||||||
|
have f_is_real_differentiable : Differentiable ℝ f := by
|
||||||
|
exact (contDiff_succ_iff_fderiv.1 f_is_real_C2).left
|
||||||
|
|
||||||
|
have fI_is_real_differentiable : Differentiable ℝ (Real.partialDeriv 1 f) := by
|
||||||
|
let A := partialDeriv_contDiff f_is_real_C2 1
|
||||||
|
exact (contDiff_succ_iff_fderiv.1 A).left
|
||||||
|
|
||||||
-- f' is real C¹
|
-- f' is real C¹
|
||||||
have f'_is_real_C1 : ContDiff ℝ 1 (fderiv ℝ f) :=
|
have f'_is_real_C1 : ContDiff ℝ 1 (fderiv ℝ f) :=
|
||||||
(contDiff_succ_iff_fderiv.1 f_is_real_C2).right
|
(contDiff_succ_iff_fderiv.1 f_is_real_C2).right
|
||||||
|
@ -117,16 +111,9 @@ theorem holomorphic_is_harmonic {f : ℂ → ℂ} (h : Differentiable ℂ f) :
|
||||||
unfold Complex.laplace
|
unfold Complex.laplace
|
||||||
|
|
||||||
rw [CauchyRiemann₄ h]
|
rw [CauchyRiemann₄ h]
|
||||||
|
rw [partialDeriv_smul fI_is_real_differentiable]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
have t₁a : (fderiv ℝ (fun w ↦ Complex.I * (fderiv ℝ f w) 1) z)
|
|
||||||
= Complex.I • (fderiv ℝ f_1 z) := by
|
|
||||||
rw [fderiv_const_mul]
|
|
||||||
fun_prop
|
|
||||||
|
|
||||||
rw [t₁a]
|
|
||||||
|
|
||||||
have t₂ : (fderiv ℝ f_1 z) Complex.I = (fderiv ℝ f_I z) 1 := by
|
have t₂ : (fderiv ℝ f_1 z) Complex.I = (fderiv ℝ f_I z) 1 := by
|
||||||
let B := l₂ f_is_real_C2 z Complex.I 1
|
let B := l₂ f_is_real_C2 z Complex.I 1
|
||||||
rw [← B]
|
rw [← B]
|
||||||
|
@ -146,7 +133,7 @@ theorem holomorphic_is_harmonic {f : ℂ → ℂ} (h : Differentiable ℂ f) :
|
||||||
intro z
|
intro z
|
||||||
simp [f_I]
|
simp [f_I]
|
||||||
rw [CauchyRiemann₁ (h z)]
|
rw [CauchyRiemann₁ (h z)]
|
||||||
|
|
||||||
rw [t₁a]
|
rw [t₁a]
|
||||||
|
|
||||||
simp
|
simp
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
import Mathlib.Data.Fin.Tuple.Basic
|
||||||
|
import Mathlib.Analysis.Complex.Basic
|
||||||
|
import Mathlib.Analysis.Complex.TaylorSeries
|
||||||
|
import Mathlib.Analysis.Calculus.LineDeriv.Basic
|
||||||
|
import Mathlib.Analysis.Calculus.ContDiff.Basic
|
||||||
|
import Mathlib.Analysis.Calculus.ContDiff.Defs
|
||||||
|
import Mathlib.Analysis.Calculus.FDeriv.Basic
|
||||||
|
import Mathlib.Analysis.Calculus.FDeriv.Symmetric
|
||||||
|
|
||||||
|
|
||||||
|
noncomputable def Real.partialDeriv : ℂ → (ℂ → ℂ) → (ℂ → ℂ) := by
|
||||||
|
intro v
|
||||||
|
intro f
|
||||||
|
exact fun w ↦ (fderiv ℝ f w) v
|
||||||
|
|
||||||
|
|
||||||
|
theorem partialDeriv_smul {f : ℂ → ℂ } {a v : ℂ} (h : Differentiable ℝ f) : Real.partialDeriv v (a • f) = a • Real.partialDeriv v f := by
|
||||||
|
unfold Real.partialDeriv
|
||||||
|
|
||||||
|
have : a • f = fun y ↦ a • f y := by rfl
|
||||||
|
rw [this]
|
||||||
|
|
||||||
|
conv =>
|
||||||
|
left
|
||||||
|
intro w
|
||||||
|
rw [fderiv_const_smul (h w)]
|
||||||
|
|
||||||
|
|
||||||
|
theorem partialDeriv_contDiff {n : ℕ} {f : ℂ → ℂ} (h : ContDiff ℝ (n + 1) f) : ∀ v : ℂ, ContDiff ℝ n (Real.partialDeriv v f) := by
|
||||||
|
unfold Real.partialDeriv
|
||||||
|
intro v
|
||||||
|
|
||||||
|
let A := (contDiff_succ_iff_fderiv.1 h).right
|
||||||
|
simp at A
|
||||||
|
|
||||||
|
have : (fun w => (fderiv ℝ f w) v) = (fun f => f v) ∘ (fun w => (fderiv ℝ f w)) := by
|
||||||
|
rfl
|
||||||
|
|
||||||
|
rw [this]
|
||||||
|
refine ContDiff.comp ?hg A
|
||||||
|
refine ContDiff.of_succ ?hg.h
|
||||||
|
refine ContDiff.clm_apply ?hg.h.hf ?hg.h.hg
|
||||||
|
exact contDiff_id
|
||||||
|
exact contDiff_const
|
Loading…
Reference in New Issue