lsqcurvefit
최소제곱을 사용하여 비선형 곡선 피팅(데이터 피팅) 문제 풀기
구문
설명
비선형 최소제곱 솔버
다음 문제를 푸는 계수 x를 구합니다.
입력 데이터 xdata와 관측된 출력값 ydata가 주어지며, 여기서 xdata 및 ydata는 행렬 또는 벡터이고, F (x, xdata)는 ydata와 크기가 같은 행렬 값 또는 벡터 값을 갖는 함수입니다.
옵션으로, x의 성분은 하한 lb와 상한 ub를 가질 수 있습니다. 인수 x, lb, ub는 벡터 또는 행렬일 수 있습니다. 행렬 인수 항목을 참조하십시오.
lsqcurvefit
함수는 lsqnonlin
과 동일한 알고리즘을 사용합니다. lsqcurvefit
은 데이터 피팅 문제를 위한 편리한 인터페이스를 제공합니다.
제곱합을 계산하는 대신 lsqcurvefit
에서는 사용자 정의 함수가 다음과 같이 벡터 값을 갖는 함수를 계산해야 합니다.
예제
입력 인수
출력 인수
제한 사항
trust-region-reflective 알고리즘은 부족 결정 시스템을 풀지 않습니다. 이 알고리즘을 사용하려면 방정식 개수, 즉 F의 행 차원이 최소한 변수 개수여야 합니다. 부족 결정 시스템의 경우
lsqcurvefit
은 Levenberg-Marquardt 알고리즘을 사용합니다.lsqcurvefit
은 복소수 값을 갖는 문제를 직접 풀 수 있습니다. 참고로, 범위 제약 조건은 복소수 값에 적합하지 않습니다. 범위 제약 조건이 있는 복소수 문제의 경우 변수를 실수부와 허수부로 분리하십시오. Fit a Model to Complex-Valued Data 항목을 참조하십시오.trust-region-reflective 방법의 선조건 적용 켤레 기울기 부분에 사용되는 선조건자 계산은 선조건자를 계산하기 전에 JTJ(여기서 J는 야코비 행렬임)를 형성합니다. 따라서, 0이 아닌 요소를 많이 포함하는 J의 행은 거의 조밀한 곱 JTJ를 생성하며, 이는 대규모 문제에서 비용이 많이 드는 풀이 과정을 초래할 수 있습니다.
x의 성분에 상한(또는 하한)이 없는 경우
lsqcurvefit
은 기본적으로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 방법 항목을 참조하십시오.
대체 기능
앱
최적화 라이브 편집기 작업은 lsqcurvefit
에 대한 시각적 인터페이스를 제공합니다.
참고 문헌
[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 이전에 개발됨