1

저는 convex solver를 작성했습니다. 구체적으로는 최소 최소 제곱을 해결한다고 가정합니다. || 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)) 

비슷한 기능이 줄리아에 있습니까?

하고 확인 w != 0 경우와 optim 함수 안에 맞는 크기 벡터로를 설정하고, 현재의 내 용액 (W = 0, B, A)

X = Optim을 같은 일을하는 것이다. 하지만 그것은 유형 안정성으로 엉망이되고 (나는) 가정합니다.

크기가 필수 인수에 의존하는 키워드 인수를 지정하는 명확한 방법이 있습니까?

편집 그것은 트릭을 할 것입니다

function foo{T<:Real}(A::Array{T,2}; w=zeros(T,size(x,2))) 
    println("$x") 
    println("$y") 
end 

같은 것 같습니다.

답변

4

줄리아의 기본 매개 변수는 다른 매개 변수의 값을 포함하는 표현 될 수 있다는 것을 나타납니다

julia> a(x, y=2*x) = println("$x, $y") 
a (generic function with 2 methods) 

julia> a(10) 
10, 20 

또한 다른 함수를 호출 할 수있는 기본 매개 변수 표현 :

julia> b(x) = sqrt(x) 
b (generic function with 1 method) 

julia> a(x, y=b(x)) = println("$x, $y") 
a (generic function with 2 methods) 

julia> a(100) 
100, 10.0