• Alberto Ramos's avatar
    Corrected bug in call to fit_error · a37be117
    Alberto Ramos authored
    Thanks to Alejandro Saez Gonzalvo <asaez_@hotmail.com>
    
    Soy Alejandro Sáez, el nuevo estudiante de doctorado de Gregorio
    Herdoiza en el IFT. Te contacto porque hemos estado trabajando con
    ADerrors ultimamente, y el otro día, haciendo unos fits con la función
    fit_error, encontramos lo que creimos que era un pequeño
    error. Concretamente queríamos hacer un fit correlado (usando una
    matriz W como weight en el fit, en lugar de un vector). Llamamos a la
    función de la siguiente forma:
    (uprm,chiexp) = fit_error(chisq, coef(fit), udt, W=Wm) Sin embargo,
    esto nos dio un error: ERROR: LoadError: TypeError: in keyword
    argument W, expected Array{Float64,1}, got a value of type
    Array{Float64,2} Este error solo aparece cuando el argumento Wm es una
    matriz (incluso en el caso diagonal), y si le metemos un vector no hay
    ningún problema. Lo solucionamos de la siguiente forma:
    (uprm,chiexp) = fit_error(chisq, coef(fit), udt,
    Dict{Int64,Vector{Float64}}(), Wm) Mirando el código de la función
    fit_error(), creemos entender que debería funcionar omitiendo también
    el argumento Dict{Int64,Vector{Float64}}(), pero en ese caso nos salta
    el error. El código ya nos funciona, pero Gregorio me dijo que quizás
    te interesaba conocer este comportamiento. Te mando el código entero
    que daba error en caso de que sirva de aclaración.  PD: Igualmente, en
    el caso de introducir una matriz Wm en lugar de un vector, la funcion
    curve_fit tambien nos devuelve un error extraño: ERROR: LoadError:
    MethodError: curve_fit(::typeof(lmfcn), ::Array{Float64,1},
    ::Array{Float64,1}, ::Array{Float64,2}, ::Array{Float64,1}) is
    ambiguous. Candidates: curve_fit(model, xdata::AbstractArray,
    ydata::AbstractArray, wt::AbstractArray{T,2}, p0; kwargs...) where T
    in LsqFit at
    /home/asaez/.julia/packages/LsqFit/wmSYK/src/curve_fit.jl:167
    curve_fit(model, xdata::AbstractArray, ydata::AbstractArray,
    wt::AbstractArray{T,N} where N, p0::AbstractArray; inplace, kwargs...)
    where T in LsqFit at
    /home/asaez/.julia/packages/LsqFit/wmSYK/src/curve_fit.jl:136 Possible
    fix, define curve_fit(::Any, ::AbstractArray, ::AbstractArray,
    ::AbstractArray{T,2}, ::AbstractArray) where T
    a37be117
ADerrorsUtils.jl 16.4 KB