1. A \ b와 linsolve (A, b)의 차이점은 무엇입니까 (다른 알고리즘입니까?)?Matlab linsolve 이해하기
2. A * x = b와 A '* A * x = A'* b를 구하는 차이점은 무엇입니까?
번째 등식은 간다 Least squares approximation
단순 매트랩 테스트 코드 : I 발견
A=[1,2,3;4,5,6;7,8,9]
b=[1;2;3]
x1= A\b
x1 =
-0.3333
0.6667
0
x2=linsolve(A,b)
x2 =
-0.3333
0.6667
0
x3=linsolve(A'*A,A'*b)
x3 =
0.2487
-0.4974
0.5820
x4=(A'*A)\(A'*b)
x4 =
-0.8182
1.6364
-0.4848
판독 linsolve 문서 그
[X, R = linsolve (A, B)로 해결할 행렬 방정식 AX = B이고 A가 정사각 행렬 인 경우 A의 조건 수의 역수인 을 반환하고 그렇지 않으면 A 등급을 반환합니다.
그래서 R을 사용하여 정밀도 (두 번째 질문)를 테스트 할 수 있습니까?
A '* A * x = A'* b는 최소 자승 근사를위한 정규 방정식입니다. 당신은 A '* A * x = A'* b로 이것을 풀어보기를 결코 원하지 않을 것입니다. x1 = A \ b를 사용하십시오. QR 요소 분해 나 SVD와 같은 멋지고 안정적인 것을 사용할 것입니다. 심하게 조건부 화 된 행렬에 대해서는 A '* A의 계산에 중요한 오류를 도입 할 수 있습니다. 따라서이 접근법을 사용하지 마십시오 – mathematician1975
@ mathematician1975 A = (M, n) n << M이면 A'* AI를 사용할 때 해결할 수 있습니까? 방정식의 방정식은 (n, n) 행렬에 대해서만 더 빨라야합니까? 그리고 방정식 A * x = b와 A '* A * x = A'* b에 관한 정보 \ 증명을 찾을 수있는 곳은 같은 답을 가지고 있습니까? 또한 조건 번호/순위에 대한 내 apdate를 참조하십시오. – mrgloom
A '행렬에 의해 미리 곱할 필요가 없습니다. 방정식 A '* A * x = A'* b는 최소 제곱 시스템의 해를 구하는 방정식입니다. 당신은 여기에서 사각형 시스템을 다루고 있지만 교장은 동일합니다. A '로 미리 곱할 필요가 없으며, 비효율적입니다. 그리고 최선을 다해서도 희망을 가질 수있는 것은 모든 악의적 인 행위를 악화시키지 않는 것입니다. 시스템. – mathematician1975