현재 커다란 스파 스 선형 대수학 문제에 대한 C++ 기반 라이브러리를 작업 중입니다. (그렇습니다. 많은 라이브러리가 존재한다는 것을 알고 있습니다. 반복 솔버, 스파 스 저장 컨테이너 등).반복 선형 솔버에 대한 테스트 행렬/시스템을 찾고 있습니다.
저는 다른 프로그래밍 프로젝트 내에서 내 솔버를 사용하고 있으며 내 문제가 아닌 문제에 대한 솔버를 테스트하고 싶습니다. 우선, 나는 긍정적 인 명확한 대칭 스파 스 시스템에 대한 테스트를 찾고있다.
Matrix Market 말했다되고 그건 UF Sparse Matrix Collection
, 나는 아직 전체 시스템 - 시스템 매트릭스 및 RHS을 포함 좋은 테스트 매트릭스의 소스를 발견하지 않은 : 나는 그런 등의 시스템 행렬에 대한 몇 가지 소스를 발견했다. 결과를 확인하는 것이 좋을 것입니다. 그러한 전체 시스템을 찾을 수있는 방법에 대한 조언, 또는 온라인으로 얻을 수있는 시스템 매트릭스에 대해 "양호한"RHS를 생성하기 위해 수행 할 수있는 방법은 무엇입니까? 나는 현재 매트릭스에 무작위 값 또는 모든 값을 채우고 있지만 이것이 반드시 가장 좋은 방법은 아니라고 생각합니다.
는 "많은 그런 라이브러리가 존재한다": 정말 (적어도 기본적으로 C 작성된 ++) University of Florida의 희소 행렬 수집을 위해 내가 대신이 링크를 건의 할 것입니다. 대형 스파 스 매트릭스를 다루는 포트란 라이브러리 용 깨끗한 래퍼를 작성하는 것은 이미 정직한 일종의 도전입니다. –
그러나 일부 연구 보고서에서는 상황이 좋지 않은 테스트 케이스에 대한 언급을 보았지만 IIRC는 SPD 스파 스 매트릭스가 아니 었습니다. 당신의 상황에서 테스트 케이스를 만드는 간단한 방법은 임의의 n x p 행렬 M을 취해서, 그것의 자신의 전치 (transpose)로 곱하고, lambda * Identity를 추가하여 가역성이되게하는 것입니다. 그러나 이것은 희소 행렬을 생성하지 않습니다. –
또한 UF 스파 스 매트릭스 컬렉션의 문제점은 무엇입니까? 약간 무작위 RHS를 가지고가는 것은 저에게 완전하게 좋아 보인다. –