큰 행렬의 조건 수를 어떻게 근사합니까? , 만약 푸리에 변환의 조합입니다 (비 균일 또는 균일) 유한 한 차이 및 대각 행렬 ?
행렬은 매우 커서 메모리에 저장되지 않으며 함수로만 사용할 수 있습니다.
특히 다음 매트릭스가 있습니다.
나는 사이의 관계를 조사하고 싶습니다 조건 번호 .
나는 일종의 반복적 접근이 필요하다고 생각합니까? 최적의 MATLAB 코드가있을 것입니다.
큰 행렬의 조건 수를 어떻게 근사합니까? , 만약 푸리에 변환의 조합입니다 (비 균일 또는 균일) 유한 한 차이 및 대각 행렬 ?
행렬은 매우 커서 메모리에 저장되지 않으며 함수로만 사용할 수 있습니다.
특히 다음 매트릭스가 있습니다.
나는 사이의 관계를 조사하고 싶습니다 조건 번호 .
나는 일종의 반복적 접근이 필요하다고 생각합니까? 최적의 MATLAB 코드가있을 것입니다.
답변:
MATLAB이는 "정확한"기능의 몇 가지를 가지고, cond
그리고 rcond
후자의 조건 수의 역수를 반환과 함께. Matlab 대략적인 기능 condest
은 아래에 자세히 설명되어 있습니다.
조건 수의 추정치는 종종 행렬에 대한 선형 시스템 솔루션의 부산물로 생성되므로 다른 작업에 대한 조건 수 추정치를 피기 백 할 수 있습니다. 추정치 계산 방법에 대한 간략한 설명은 여기 를 참조 하십시오 . 또한 Sandia Labs AztecOO 문서 는 반복 솔버 (선택적 컨쥬 게이트 그라디언트를 사용하여 생성 된 3 각형 Lanczos 매트릭스 또는 재시작 된 GMRES를 사용하여 생성 된 Hessenburg 매트릭스 사용)에서 선택적 조건 번호 추정값을 사용할 수 있음을 설명합니다 (섹션 3.1 참조).
행렬은 "매우 크고" "함수로만 사용 가능"하기 때문에 논리적 접근 방식은 켤레 구배 솔버 또는 변형을 피기 백하는 방법입니다.
최근 arXiv.org 논문 상대 오차에 대한 선형 시스템 및 추정기의 반복 솔루션에서 비 정적 극값 고유 값 근사값 은 이러한 접근 방식을 제안하며 이전 문헌에 대한 인용이 몇 가지 있습니다.
이제이 포럼에는 여러 가지 밀접한 관련이있는 이전 질문이 있습니다 (답변 모두가 아니라 주석 확인).
Matlab / Octave에서 큰 행렬의 조건 수를 계산하는 가장 빠른 알고리즘
MATLAB 코드의 가용성은 질문의 일부 condest
이므로 1- 노름 조건 수를 추정하는 내장 함수 에 대한 정보가 있습니다 .. 아이디어는 여기에 2010 년 쓰기와 확장 기능을 가진 Hager (1984) 가 명시 적으로 (열의 최대 1- 노름 찾기)을 계산하고 그라디언트 방법으로 . "매트릭스의 조건 수 계산 또는 추정을위한 MATLAB 라이브러리 (사용 가능한 다른 언어)"인 John Burkardt의 CONDITION 도 참조하십시오 .
행렬은 명백하게 은둔자이고 양의 한정된 것이기 때문에 아마도 2- 노름 조건 수가 더 중요합니다. 그러면 문제는 가장 큰 고유 값과 가장 작은 고유 값의 비율을 추정하는 것입니다. 문제는 일반적으로 가장 큰 고유 값에 대한 좋은 추정치를 쉽게 얻을 수 있지만 가장 작은 고유 값을 추정하는 것이 더 어렵다는 점에서 1- 노름 경우와 다소 유사합니다 .
SPD가 아닌 (사각형이 아닌) 사례를 목표로하지만이 최신 arXiv.org 논문 인 신뢰할 수있는 반복 조건 수 추정 은 가장 작은 고유 값 추정 문제와 Krylov-subspace의 유망한 공격 선에 대한 개요를 제공합니다. SPD 경우에 그라디언트를 결합시키는 방법 (LSQR).