Gradients, second derivatives and hessians at pi not working
Nessuno ha ancora preso questa issue.
- #148 di @birm — chiusa senza merge
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Riproduci gli esempi con pi in src/finite_difference.jl e src/derivative.jl, in particolare i percorsi delle differenze finite mostrati nelle stack trace. Controlla come vengono convertiti gli input scalari e gli array prima dei calcoli di epsilon e delle perturbazioni. Il lavoro è completato quando gradienti, derivate seconde e hessiane funzionano per pi senza compromettere gli esempi numerici esistenti.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
You might need some fixes with README 😄
Related issues #40 #52 : float(pi) could fix this:
julia> using Calculus
julia> h1 = second_derivative(sin)
#6 (generic function with 1 method)
julia> h1(0.0)
0.0
julia> h1(1.0)
-0.841471649579559
julia> h1(pi)
ERROR: MethodError: no method matching eps(::Type{Irrational{:π}})
Closest candidates are:
eps(::Dates.Time) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Dates\src\types.jl:387
eps(::Dates.Date) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Dates\src\types.jl:386
eps(::Dates.DateTime) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.3\Dates\src\types.jl:385
...
Stacktrace:
[1] finite_difference(::Calculus.var"#1#3"{typeof(sin),Symbol}, ::Irrational{:π}, ::Symbol) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\finite_difference.jl:27lus\mbqhh\src\finite_difference.jl:27
[2] finite_difference_hessian(::Function, ::Function, ::Irrational{:π}, ::Symbol) at C:\Users\islent\.julia\packages\Calculus\mbqhh\ckages\Calculus\mbqhh\src\derivative.jl:27src\finite_difference.jl:224
[3] (::Calculus.var"#6#8"{typeof(sin),Calculus.var"#1#3"{typeof(sin),Symbol},Symbol})(::Irrational{:π}) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\derivative.jl:27
[4] top-level scope at REPL[5]:1
julia> h1(float(pi))
-1.3553766145945872e-7
julia> g2 = Calculus.gradient(x -> sin(x[1]) + cos(x[2]))
#2 (generic function with 1 method)
julia> g2([0.0, 0.0])
2-element Array{Float64,1}:
0.9999999999868854
0.0
julia> g2([1.0, 1.0])
2-element Array{Float64,1}:
0.5403023058631036
-0.8414709847974693
julia> g2([pi, pi])
ERROR: MethodError: no method matching Irrational{:π}(::Int64)
Closest candidates are:
Irrational{:π}(::T) where T<:Number at boot.jl:718
Irrational{:π}() where sym at irrationals.jl:18
Irrational{:π}(::Complex) where T<:Real at complex.jl:37
...
Stacktrace:
[1] convert(::Type{Irrational{:π}}, ::Int64) at .\number.jl:7
[2] zero(::Type{Irrational{:π}}) at .\number.jl:266
[3] float(::Array{Irrational{:π},1}) at .\float.jl:896
[4] (::Calculus.var"#2#4"{var"#3#4",Symbol})(::Array{Irrational{:π},1}) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\derivative.jl:5
[5] top-level scope at REPL[9]:1
julia> h2 = hessian(x -> sin(x[1]) + cos(x[2]))
#7 (generic function with 1 method)
julia> h2([0.0, 0.0])
2×2 Array{Float64,2}:
-7.5693e-7 0.0
0.0 -0.999999
julia> h2([1.0, 1.0])
2×2 Array{Float64,2}:
-0.841472 0.0
0.0 -0.540303
julia> h2([pi, pi])
ERROR: MethodError: no method matching Irrational{:π}(::Int64)
Closest candidates are:
Irrational{:π}(::T) where T<:Number at boot.jl:718
Irrational{:π}() where sym at irrationals.jl:18
Irrational{:π}(::Complex) where T<:Real at complex.jl:37
...
Stacktrace:
[1] convert(::Type{Irrational{:π}}, ::Int64) at .\number.jl:7
[2] zero(::Type{Irrational{:π}}) at .\number.jl:266
[3] float(::Array{Irrational{:π},1}) at .\float.jl:896
[4] (::Calculus.var"#2#4"{var"#5#6",Symbol})(::Array{Irrational{:π},1}) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\derivative.jl:5
[5] finite_difference_jacobian(::Calculus.var"#2#4"{var"#5#6",Symbol}, ::Array{Irrational{:π},1}, ::Symbol) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\finite_difference.jl:197
[6] finite_difference_hessian(::Function, ::Function, ::Array{Irrational{:π},1}, ::Symbol) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\finite_difference.jl:284
[7] (::Calculus.var"#7#9"{var"#5#6",Calculus.var"#2#4"{var"#5#6",Symbol},Symbol})(::Array{Irrational{:π},1}) at C:\Users\islent\.julia\packages\Calculus\mbqhh\src\derivative.jl:29
[8] top-level scope at REPL[15]:1
- Lingua principale
- Julia
- Stelle
- 286
- Fork
- 78
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaMath/Calculus.jl
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 44/100
JuliaMath/Calculus.jl#157 · 1 commento ·
-
This package is deprecated?Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 45/100
JuliaMath/Calculus.jl#153 · 2 commenti · 5 reazioni ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 28/100
JuliaMath/Calculus.jl#151 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaMath/Calculus.jl#150 ·
-
Prime notation not workingForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
JuliaMath/Calculus.jl#143 · 2 commenti · 6 reazioni ·
Tutte le issue di JuliaMath/Calculus.jl
Issue simili
-
`SplitRungeKutta` time steppers never call `update_lagrangian_particle_state!`, so particle `tracked_fields` are never updatedForse già presa @ali-ramadhan l’ha presa oggi. Apertabug 🐞
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
CliMA/Oceananigans.jl#6381 ·
I maintainer di solito rispondono entro 1 giorno
-
ci system:windows test
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno
-
Single-column TKE example: boundary-layer depth description doesn't match Han & Bretherton (2019)Aperta
Difficoltà 1/5 1-3 ore Idoneità per principianti 82/100
NumericalEarth/Breeze.jl#1143 ·
I maintainer di solito rispondono entro 1 giorno
-
format-check (Runic) is red on master: formatter drift on ~200 filesForse già presa @ChrisRackauckas-Claude l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
SciML/ModelingToolkit.jl#5337 · 1 commento ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
MagneticResonanceImaging/MRIReco.jl#315 ·
I maintainer di solito rispondono entro 1 giorno