MatLab에 입력을 삼각 행렬로 취하는 알고리즘을 작성하려고합니다. 출력은이 행렬의 역함이어야합니다 (또한 삼각형 형태 여야합니다). 나는 거의 이것을 해결할 수 있었지만, 알고리즘의 한 부분은 여전히 내 머리를 긁적이게한다. 지금까지 내가 가지고있는 것 :MatLab - 행렬의 역함수를 찾는 알고리즘
function AI = inverse(A)
n = length(A);
I = eye(n);
AI = zeros(n);
for k = 1:n
AI(k,k) = (I(k,k) - A(k,1:(k-1))*AI(1:(k-1),k))/A(k,k);
for i = k+1:n
AI(i,k) = (I(i,k) - (??????????????))/A(i,i);
end
end
나는 확신 할 수없는 부분에 물음표로 표시했다. 나는이 코드의 부분을 종이에 그 절차를 써서 패턴을 찾으려고 노력했지만,이 부분을 해결할 적절한 방법을 찾을 수없는 것 같다.
누구든지 나를 도울 수 있다면, 나는 매우 감사 할 것입니다!
왜 inv (A)를 사용할 수 없습니까? –
@diophantine : 알고리즘의 핵심을 배우려고하기 때문에 :). 그리고 위에 게시 한 문제는 내 교과서에서 주어진 연습입니다. 물론, 나는 단지 inv (A)를 사용할 수 있다는 것을 알고 있지만 처음부터 알고리즘을 만드는 법을 배우는 것은 현재 취하고있는 과정의 목표입니다. – Kristian