What am I doing wrong withe this gradient computation?
```
f(x,y)=y*x^2
FiniteDiff.finite_difference_gradient(f,[1.,1.])
ROR: MethodError: no method matching ^(::Vector{Float64}, ::Int64)
Closest candidates are:
^(::Union{AbstractChar, AbstractString}, ::Integer)
@ Base strings/basic.jl:733
^(::LinearAlgebra.Hermitian, ::Integer)
@ LinearAlgebra ~/.julia/juliaup/julia-1.9.0+0.x64.linux.gnu/share/julia/stdlib/v1.9/LinearAlgebra/src/symmetric.jl:697
^(::LinearAlgebra.Hermitian{T, S} where S<:(AbstractMatrix{<:T}), ::Real) where T
@ LinearAlgebra ~/.julia/juliaup/julia-1.9.0+0.x64.linux.gnu/share/julia/stdlib/v1.9/LinearAlgebra/src/symmetric.jl:708
...
Stacktrace:
[1] literal_pow
@ ./intfuncs.jl:338 [inlined]
[2] f(x::Vector{Float64})
@ Main ./REPL[13]:1
[3] finite_difference_gradient!(df::Vector{Float64}, f::typeof(f), x::Vector{Float64}, cache::FiniteDiff.GradientCache{Nothing, Nothing, Nothing, Vector{Float64}, Val{:central}(), Float64, Val{true}()}; relstep::Float64, absstep::Float64, dir::Bool)
@ FiniteDiff ~/.julia/packages/FiniteDiff/grio1/src/gradients.jl:318
[4] finite_difference_gradient(f::typeof(f), x::Vector{Float64}, fdtype::Val{:central}, returntype::Type, inplace::Val{true}, fx::Nothing, c1::Nothing, c2::Nothing; relstep::Float64, absstep::Float64, dir::Bool)
@ FiniteDiff ~/.julia/packages/FiniteDiff/grio1/src/gradients.jl:133
[5] finite_difference_gradient(f::Function, x::Vector{Float64}, fdtype::Val{:central}, returntype::Type, inplace::Val{true}, fx::Nothing, c1::Nothing, c2::Nothing)
@ FiniteDiff ~/.julia/packages/FiniteDiff/grio1/src/gradients.jl:99
[6] finite_difference_gradient(f::Function, x::Vector{Float64})
@ FiniteDiff ~/.julia/packages/FiniteDiff/grio1/src/gradients.jl:99
[7] top-level scope
@ REPL[116]:1
```
I also tried with
`FiniteDiff.finite_difference_gradient(f,1.,1.)`
Thank you very much
关闭于 2023-08-23 1 条评论