experimenting…

This commit is contained in:
Stefan Kebekus 2024-04-26 21:18:06 +02:00
parent 1918cc0139
commit 53b5248e81
2 changed files with 117 additions and 11 deletions

View File

@ -2,23 +2,57 @@ import Mathlib.Analysis.Complex.Basic
import Mathlib.Analysis.Calculus.LineDeriv.Basic import Mathlib.Analysis.Calculus.LineDeriv.Basic
import Mathlib.Analysis.SpecialFunctions.ExpDeriv import Mathlib.Analysis.SpecialFunctions.ExpDeriv
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv
import Mathlib.Analysis.Calculus.ContDiff.Basic
import Mathlib.Analysis.Calculus.Deriv.Linear
import Mathlib.Analysis.Complex.Conformal
import Mathlib.Analysis.Calculus.Conformal.NormedSpace
import Mathlib.Analysis.Complex.RealDeriv
/RealDeriv.lean
-- Harmonic functions on the plane -- Harmonic functions on the plane
variable {f : } {e' : } {z : } {h : HasDerivAt f e' z}
noncomputable def laplace' : () → () := by example : 1 = 0 := by
intro f
let f₁ := fun x ↦ lineDeriv f x 1 let XX := HasDerivAt.real_of_complex h
let f₁₁ := fun x ↦ lineDeriv f₁ x 1 sorry
let f₂ := fun x ↦ lineDeriv f x Complex.I
let f₂₂ := fun x ↦ lineDeriv f₂ x Complex.I
exact f₁₁ + f₂₂
example : laplace' (fun z ↦ z.re) = fun z ↦ 0 := by
noncomputable def lax (f : ) (z : ) : :=
unfold laplace' lineDeriv iteratedFDeriv 1 f z ![Complex.I]
example : lax (fun z ↦ z.re) = fun z ↦ 1 := by
unfold lax
simp simp
funext x
let XX := HasDerivAt.real_of_complex
sorry
noncomputable def laplace (f : ) (z : ) : :=
iteratedFDeriv 2 f z ![1, 1] + iteratedFDeriv 2 f z ![Complex.I, Complex.I]
example : laplace (fun z ↦ z.re) = fun z ↦ 0 := by
unfold laplace
rw [iteratedFDeriv_succ_eq_comp_left]
rw [iteratedFDeriv_succ_eq_comp_left]
rw [iteratedFDeriv_zero_eq_comp]
simp
have : Fin.tail ![Complex.I, Complex.I] = ![Complex.I] := by
rfl
rw [this]
rw [deriv_comp]
simp
simp
conv => conv =>
lhs lhs
@ -83,6 +117,60 @@ example : laplace' (fun z ↦ (z*z).re) = fun z ↦ 0 := by
group group
open Complex ContinuousLinearMap
open scoped ComplexConjugate
variable {z : } {f : }
#check deriv_comp_const_add
theorem DifferentiableAt_conformalAt (h : DifferentiableAt f z) :
ConformalAt f z := by
let XX := (h.hasFDerivAt.restrictScalars ).fderiv
let f₁ := fun x ↦ lineDeriv f x 1
let f₂ := fun x ↦ lineDeriv f x Complex.I
have t₁ : deriv (fun (t : ) => f (z + t)) 0 = deriv f z := by
rw [deriv_comp_const_add]
simp
simp
exact h
have t'₁ : deriv (fun (t : ) => f (z + ↑t)) 0 = deriv f z := by
sorry
have : f₁ z = deriv f z := by
dsimp [f₁]
unfold lineDeriv
simp
exact t'₁
have : f₂ z = deriv f z := by
dsimp [f₂]
unfold lineDeriv
simp
exact t'₁
/-
simp at f₂
rw [conformalAt_iff_isConformalMap_fderiv, (h.hasFDerivAt.restrictScalars ).fderiv]
apply isConformalMap_complex_linear
simpa only [Ne, ext_ring_iff]
-/
example : laplace' (fun z ↦ (Complex.exp z).re) = fun z ↦ 0 := by
let f := fun z ↦ (Complex.exp z).re
let f₁ := fun x ↦ lineDeriv f x 1
let fz := fun x ↦ deriv f
example : laplace' (fun z ↦ (Complex.exp z).re) = fun z ↦ 0 := by example : laplace' (fun z ↦ (Complex.exp z).re) = fun z ↦ 0 := by
unfold laplace' lineDeriv unfold laplace' lineDeriv
@ -157,8 +245,16 @@ example : laplace' (fun z ↦ (Complex.exp z).re) = fun z ↦ 0 := by
intro x intro x
lhs lhs
intro t intro t
simp simp
rw [deriv_sub] <;> tactic => try fun_prop
rw [deriv_mul] <;> tactic => try fun_prop
rw [deriv_mul] <;> tactic => try fun_prop
simp

View File

@ -0,0 +1,10 @@
import Mathlib.Analysis.Calculus.LineDeriv.Basic
noncomputable def Real.laplace : (R [× n] → ) → () := by
intro f
let f₁ := fun x ↦ lineDeriv f x 1
let f₁₁ := fun x ↦ lineDeriv f₁ x 1
let f₂ := fun x ↦ lineDeriv f x Complex.I
let f₂₂ := fun x ↦ lineDeriv f₂ x Complex.I
exact f₁₁ + f₂₂