-
Notifications
You must be signed in to change notification settings - Fork 21
Closed
Description
Hi, I am currently using IntervalOptimisation
to find the global minimum (or at least a tight bound) for a nonlinear least-squares problem that includes 5 parameters to be optimized.
The dataset in a CSV file that contains 26 data points can be downloaded here.
Julia code
using CSV, Tables
using IntervalArithmetic, IntervalOptimisation
# read data into a 26×2 Array
const data = CSV.File("data.csv") |> Tables.matrix
const Vt = 0.02638199348809556
function sse_sdm(θ)
Ir, I0, n, Rs, Rp = θ
return sum((Ir - I0*1e-6*(exp((V + I*Rs)/(n*Vt)) - 1) - (V + I*Rs)/Rp - I)^2 for (V, I) in eachrow(data))
end
intervals = (0..1)×(0..1)×(1..2)×(0..0.5)×(0..100)
@time minimum, minimisers = minimise(sse_sdm, intervals)
The above code has run more than one and a half hours (still running now). I am wondering whether there are any suggestions that can help accelerate the optimization. I saw in the Julia discourse that the nonrecursive_powers branch may be faster; however, I cannot find it.
Metadata
Metadata
Assignees
Labels
No labels