lsqnonlin
비선형 최소제곱(비선형 데이터 피팅) 문제 풀기
구문
설명
비선형 최소제곱 솔버
다음 형식의 비선형 최소제곱 곡선 피팅 문제를 풉니다.
이 문제는 x 성분에 대한 선택 사항으로 하한 lb와 상한 ub를 가집니다.
x, lb, ub는 벡터 또는 행렬일 수 있습니다. 행렬 인수 항목을 참조하십시오.
값 (제곱합)을 계산하는 대신 lsqnonlin
에서는 사용자 정의 함수가 다음과 같이 벡터 값을 갖는 함수를 계산해야 합니다.
은 점 x
= lsqnonlin(fun
,x0
)x0
에서 시작하여 fun
에 정의된 함수의 제곱합에 대한 최솟값을 구합니다. 함수 fun
은 값의 제곱합이 아니라 값으로 구성된 벡터(또는 배열)를 반환해야 합니다. 이 알고리즘은 fun(x)
의 성분에 대한 제곱합을 암묵적으로 계산합니다.
참고
추가 파라미터 전달하기에는 필요한 경우 추가 파라미터를 벡터 함수 fun(x)
에 전달하는 방법이 설명되어 있습니다.
예제
입력 인수
출력 인수
제한 사항
trust-region-reflective 알고리즘은 부족 결정 시스템을 풀지 않습니다. 이 알고리즘을 사용하려면 방정식 개수, 즉 F의 행 차원이 최소한 변수 개수여야 합니다. 부족 결정 시스템의 경우
lsqnonlin
은 Levenberg-Marquardt 알고리즘을 사용합니다.lsqnonlin
은 복소수 값을 갖는 문제를 직접 풀 수 있습니다. 참고로, 범위 제약 조건은 복소수 값에 적합하지 않습니다. 범위 제약 조건이 있는 복소수 문제의 경우 변수를 실수부와 허수부로 분리하십시오. Fit a Model to Complex-Valued Data 항목을 참조하십시오.trust-region-reflective 방법의 선조건 적용 켤레 기울기 부분에 사용되는 선조건자 계산은 선조건자를 계산하기 전에 JTJ(여기서 J는 야코비 행렬임)를 형성합니다. 따라서, 0이 아닌 요소를 많이 포함하는 J의 행은 거의 조밀한 곱 JTJ를 생성하며, 이는 대규모 문제에서 비용이 많이 드는 풀이 과정을 초래할 수 있습니다.
x의 성분에 상한(또는 하한)이 없는 경우
lsqnonlin
은 기본적으로ub
(또는lb
)의 대응하는 성분을 임의적이지만 매우 큰 양수(또는 하한의 경우 음수)로 설정하는 대신inf
(또는 하한의 경우-inf
)로 설정합니다.
중소 규모 문제에서는 fun
에서 야코비 행렬을 계산하거나 야코비 행렬의 희소성 패턴을 제공하지 않고 lsqnonlin
, lsqcurvefit
, fsolve
에 trust-region reflective 알고리즘을 사용할 수 있습니다. 이는 헤세 행렬을 계산하거나 헤세 행렬의 희소성 패턴을 제공하지 않고 fmincon
또는 fminunc
를 사용하는 경우에도 적용됩니다. 중소 규모는 얼마나 작은가요? 절대적인 답은 없습니다. 컴퓨터 시스템 구성의 가상 메모리 크기에 따라 달라지기 때문입니다.
문제에 m
개의 방정식과 n
개의 미지수가 있다고 가정하겠습니다. 명령 J = sparse(ones(m,n))
을 실행할 때 컴퓨터에 Out of memory
오류가 발생한다면 이 문제는 확실히 너무 큰 문제입니다. 오류가 발생하지 않은 경우에도 여전히 너무 큰 문제일 수 있습니다. 이를 확인할 수 있는 유일한 방법은 문제를 실행하고 MATLAB이 시스템에서 사용할 수 있는 가상 메모리 크기 내에서 실행되는지 확인하는 것입니다.
알고리즘
Levenberg-Marquardt 방법과 trust-region-reflective 방법은 fsolve
에도 사용된 동일한 비선형 최소제곱 알고리즘을 기반으로 합니다.
디폴트 trust-region-reflective 알고리즘은 부분공간 trust-region 방법이며 interior-reflective 뉴턴 방법([1] 및 [2]에 설명되어 있음)을 기반으로 합니다. 각 반복에는 선조건 적용 켤레 기울기(PCG) 방법을 사용한 대규모 선형 시스템의 근사해 풀이 작업이 포함됩니다. Trust-Region-Reflective 최소제곱 항목을 참조하십시오.
Levenberg-Marquardt 방법은 참고 문헌 [4], [5], [6]에 설명되어 있습니다. Levenberg-Marquardt 방법 항목을 참조하십시오.
대체 기능
앱
최적화 라이브 편집기 작업은 lsqnonlin
에 대한 시각적 인터페이스를 제공합니다.
참고 문헌
[1] Coleman, T.F. and Y. Li. “An Interior, Trust Region Approach for Nonlinear Minimization Subject to Bounds.” SIAM Journal on Optimization, Vol. 6, 1996, pp. 418–445.
[2] Coleman, T.F. and Y. Li. “On the Convergence of Reflective Newton Methods for Large-Scale Nonlinear Minimization Subject to Bounds.” Mathematical Programming, Vol. 67, Number 2, 1994, pp. 189–224.
[3] Dennis, J. E. Jr. “Nonlinear Least-Squares.” State of the Art in Numerical Analysis, ed. D. Jacobs, Academic Press, pp. 269–312.
[4] Levenberg, K. “A Method for the Solution of Certain Problems in Least-Squares.” Quarterly Applied Mathematics 2, 1944, pp. 164–168.
[5] Marquardt, D. “An Algorithm for Least-squares Estimation of Nonlinear Parameters.” SIAM Journal Applied Mathematics, Vol. 11, 1963, pp. 431–441.
[6] Moré, J. J. “The Levenberg-Marquardt Algorithm: Implementation and Theory.” Numerical Analysis, ed. G. A. Watson, Lecture Notes in Mathematics 630, Springer Verlag, 1977, pp. 105–116.
[7] Moré, J. J., B. S. Garbow, and K. E. Hillstrom. User Guide for MINPACK 1. Argonne National Laboratory, Rept. ANL–80–74, 1980.
[8] Powell, M. J. D. “A Fortran Subroutine for Solving Systems of Nonlinear Algebraic Equations.” Numerical Methods for Nonlinear Algebraic Equations, P. Rabinowitz, ed., Ch.7, 1970.
확장 기능
버전 내역
R2006a 이전에 개발됨