Zulip Chat Archive
Stream: new members
Topic: deriv2
Lucas Viana Reis (Dec 07 2020 at 19:50):
Hi. Suppose I want to calculate a 2nd derivative like deriv^[2] log x
when x>0
, that is, of a function whose first derivative is only partially defined.
I know how to prove that x>0 -> deriv log x = 1/x
using deriv_log'
. But I can't rw
this for calculating the 2nd derivative deriv (deriv $ λ y, log y) x
, since I don't have the "inner" hypothesis y>0
. How I should proceed?
#mwe :
import analysis.special_functions.exp_log
noncomputable theory
open real
definition ϕ : ℝ → ℝ := λ x, -x * log x
lemma deriv_log {x : ℝ} (hx : x ≠ 0) : deriv log x = x⁻¹ :=
begin
have p := @deriv_log' id x differentiable_at_id hx,
simp only [one_div, deriv_id', id] at p,
exact p,
end
lemma ϕ' (x : ℝ) (hx : x ≠ 0) : deriv ϕ x = -log x - 1 :=
begin
calc
deriv ϕ x = deriv has_neg.neg x * log x + (-x) * deriv log x : deriv_mul _ _
... = - log x - x * deriv log x : by rw deriv_neg; ring
... = - log x - 1 : by rw [deriv_log hx]; finish,
{ finish },
{ finish }
end
lemma ϕ'' (x : ℝ) (hx : x ≠ 0) : deriv^[2] ϕ x = -1 / x :=
begin
sorry
end
Lucas Viana Reis (Dec 07 2020 at 23:51):
Maybe I should ask in #maths ?
Kevin Buzzard (Dec 08 2020 at 00:02):
I don't know anything about analysis in Lean, but how is the derivative of log any more or less partially defined than log itself?
Reid Barton (Dec 08 2020 at 00:05):
Is the problem that somehow you need to know that the derivative away from zero only depends on the function away from zero?
Lucas Viana Reis (Dec 08 2020 at 00:13):
Yes, the second derivative to be precise. The API has theorems that give the formula for the first derivative in points where it is defined; but I want the second derivative, and the way the API is built does not make it clear to me how to use those theorems in succession to calculate higher derivatives, when the first derivative itself is partially defined
Reid Barton (Dec 08 2020 at 00:19):
I guess you can use docs#filter.eventually_eq.deriv_eq or one of the preceding functions
Kevin Buzzard (Dec 08 2020 at 00:29):
Oh I see. Yes I think Yury explicitly mentioned this as a problem at LFTCM when talking about differentiating tan
Lucas Viana Reis (Dec 08 2020 at 00:51):
@Reid Barton should I use deriv_within_congr
to prove that if x ≠ 0 → f x = g x
then x ≠ 0 → deriv f x = deriv g x
? Or is there an easier way?
Reid Barton (Dec 08 2020 at 00:53):
I'm not familiar with this area of the library so I don't know whether there is an easier way, but this should work (using the fact that {x | x ≠ 0}
is open, hence a neighborhood of any of its elements)
Lucas Viana Reis (Dec 08 2020 at 00:53):
Ok, thanks! I will try
Yury G. Kudryashov (Dec 08 2020 at 04:44):
I can add iterated derivatives of log
to #5116.
Yury G. Kudryashov (Dec 08 2020 at 04:45):
(both as deriv^[n]
and docs#iterated_deriv
Yury G. Kudryashov (Dec 08 2020 at 04:46):
BTW, deriv log x = 1 / x
everywhere
Yury G. Kudryashov (Dec 08 2020 at 04:47):
This is a part of #5116
Yury G. Kudryashov (Dec 08 2020 at 05:03):
At zero it is equal to 1 / 0 = 0
because log
is not differentiable.
Last updated: Dec 20 2023 at 11:08 UTC