Я пишу выпуклый решатель, для того, чтобы понять, что он решает обычные наименьшие квадраты: найдите x, который минимизирует || b-Ax ||^2. Так что мой вызов функции будет выглядетьПеременные аргументы ключевого слова с переменными размерами в Julia
x = optim(A, b)
Я хотел бы быть в состоянии использовать прогреваться начинается, когда они полезны, чтобы обеспечить хорошее начальное приближение к решению. Так что-то вроде
x = optim(A, b; w=some_starting_value)
Моя проблема заключается в том, что если я хочу, чтобы использовать значение по умолчанию, some_starting_value
должен иметь длину, равную числу столбцов в A
, который выбирается пользователем. В R можно сделать что-то вроде
x = optim(A, b; w=ncols(A))
Существует ли аналогичная функциональность в Джулии? Мое текущее решение сделать что-то вроде
х = Optim (А, Ь, ш = 0)
, а затем проверить, если w != 0
и установить его, правильный вектор размер внутри функции optim
. Но это кажется взломанным и (я полагаю) беспорядок с устойчивостью типа.
Есть ли простой способ указать аргумент ключевого слова, размер которого зависит от требуемого аргумента?
Редактировать Похоже, что-то вроде
function foo{T<:Real}(A::Array{T,2}; w=zeros(T,size(x,2)))
println("$x")
println("$y")
end
будет делать трюк.