문제

선형 대수에서의 숙제를 위해 Matlab 's를 사용하여 다음 방정식을 해결했습니다. \ 연산자 (권장하는 방법) :

A = [0.2 0.25; 0.4 0.5; 0.4 0.25];
y = [0.9 1.7 1.2]';
x = A \ y

다음 답변을 생성합니다.

x =
1.7000
2.0800

할당의 다음 부분의 경우 최소 제곱 근사치를 사용하여 동일한 방정식을 해결해야합니다 (근사치가 얼마나 정확한 지 확인하기 위해 이전 값과 비교).

Matlab에서 그렇게하는 방법을 어떻게 찾을 수 있습니까?

사전 작업 : 기능을 찾았습니다 lsqlin, 위의 유형의 방정식을 해결할 수있는 것처럼 보이지만, 어떤 인수를 공급할 것인지 또는 순서대로 이해하지 못합니다.

도움이 되었습니까?

해결책

mldivide, ("\")는 실제로 그렇게합니다. 선적 서류 비치:

a가 m ~ = n을 갖는 m-by-n 행렬이고 b는 m 구성 요소가있는 열 벡터이거나 그러한 열이 여러 개있는 행렬 인 경우 x = a b는 x = a b가 아래에 최소 제곱 센스의 솔루션입니다. - 방정식 AX = B의 과도한 결정 시스템 AX = B는 벡터 AX -B의 길이를 최소화합니다 (a*x -b). 자세한 내용은 알고리즘). 계산 된 솔루션 X는 열당 최대 K 비 제로 요소를 갖습니다. k <n이면, 이것은 일반적으로 x = pinv (a)*b와 동일한 솔루션이 아니며, 이는 최소 제곱 솔루션을 반환합니다.

실제로, 첫 번째 과제에서 한 일은 LSE를 사용하여 방정식을 해결하는 것이 었습니다.

다른 팁

과제에 최소 제곱 근사치를 명시 적으로 코딩하거나 MATLAB에서 사용할 수있는 다른 기능을 사용하는 것이 포함됩니까? 다른 함수를 사용할 수있는 경우 하나의 옵션은 다음과 같습니다. LSQR:

x = lsqr(A,y);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top