문제

.NET/C#을위한 좋은 (잘 테스트하고, 완전한 기능을 갖추고, 이상적으로 좋은 인터페이스) 매트릭스 라이브러리를 찾고 있습니다. 내 주요 요구 사항은 무료 여야한다는 것입니다 (이 경우 오픈 소스인지 특히 신경 쓰지 않습니다). 드문 매트릭스 운영. 의무적 인 요구 사항은 고유 값 및 고유 벡터를 찾는 것뿐만 아니라 모든 기본 작업 (예 : 곱셈, 전치, 반전)입니다. 고유 값, 특히 Lanczos 알고리즘 드문 매트릭스의 경우, 내가 다루려고 할 행렬은 정사각형뿐만 아니라 매우 크고 (10,000 위쪽의 길이), 또한 합리적으로 희소하기 때문에 바람직합니다. 그렇게 말하면, 나는 거기에 약간의 많은 것을 요구할 수 있으므로 합리적으로 완전한 매트릭스 라이브러리에 대한 제안이 좋을 것입니다.

이제 Python이 그러한 작업에 대해 하나 또는 두 개의 유용한 라이브러리가 있다는 것을 알고 있습니다. Numpy/Scipy), 그러나 .net은 불행히도이 지역에 부족한 것 같습니다.

약간의 검색은 .NET의 다음 라이브러리를 나타 냈습니다.

그러나이 라이브러리 나 다른 라이브러리를 사용하는 경험이 없었기 때문에 (어떤 경우에도 각각의 라이브러리를 제대로 확인할 시간이 충분하지 않음). 여기에 누군가가 다양한 라이브러리에 대한 권장 사항에 대해 논의 할 수 있다면 대단히 감사하겠습니다. , 특히 그들의 용도에 대한 적합성과 그들과의 일반적인 경험과 관련하여 그들의 장단점.

Matlab에 의지하는 것은 항상 옵션이지만, 매트릭스 수학을 내 프로그램과 직접 통합 할 수 있다면 훨씬 편리하기 때문에 선호하는 것은 아닙니다.

도움이 되었습니까?

해결책

편집하다:

지난번에 그것을 평가했을 때는 없었지만 약간의 활동이 있었으므로 (무료 및 오픈 소스)를 고려해야합니다. Math.net Numerics.

지금 살펴보면 새 버전을 마친 것으로 보이며 다른 멋진 제품뿐만 아니라 희소 매트릭스 지원을 추가 한 것 같습니다.


보다 강력한 지원을 원한다면 불행히도 .NET ATM의 상용 패키지에 들어가야합니다.

기능이 풍부한 두 가지 패키지가 있으며, 둘 다 매트릭스를 매우 잘 지원합니다. 극단적 인 숫자 훌륭하게 작동하며 아주 좋은 기능이 있습니다. 나는 또한에 대해 아주 좋은 것을 들었습니다 IMSL 비주얼 숫자 수학 라이브러리.

다른 팁

노력하다 ilnumerics: 우리는 rel이 있습니다. 오픈 소스 프로젝트로서의 오랜 역사는 최근에 더 나은 신뢰할 수있는 지원을 위해 상업용 라이센스로 변경되었습니다. 편견이 있지만 여기에 짧은 기능 목록이 있습니다.

  • 더 나은 메모리 관리, 따라서 ...
  • 훨씬 빠른 알고리즘
  • 선형 대수에 MKL을 사용합니다
  • N-DIM 배열 클래스, MATLAB과 유사한 구문
  • 3D 플롯 컨트롤
  • 32/64 비트를 지원합니다
  • 모노에 대한 지원
  • 전체 기능 목록

나는 과거에 우리에게 Mapack을 가지고 있고 그것이 매우 좋다는 것을 알았습니다.

그러나 나는 그것이 희소 행렬을 가지고 있다고 생각하지 않지만 모든 기본 선형 대수 기능을 지원합니다.

또 다른 대안 : .NET 용 IMSL. 센터 스페이스가 있습니다 nmath 라이브러리 - 이것을 사용하지 않았습니다.

대학의 신경망 프로젝트에서 Mapack (COM 버전이 아닌 .NET 포트)을 사용했습니다. 나는 도서관의 좋은 세부 사항을 정확하게 기억할 수 없지만, 필요한 모든 것을 수행했으며 특히 사용하기에 특히 번거 롭지 않았습니다.

Meta.numerics (주최 코드 플렉스)는 비대칭 행렬의 고유 값과 고유 벡터를 계산하는 무료 패키지이지만 현재 스파스 매트릭스를 특별히 처리하지는 않습니다.

Math.net Iridium을 고려해 보셨습니까?

http://iridium.mathdotnet.com/

현재 폐지 된 Managed DirectX 라이브러리에는 매트릭스 지원이있었습니다.

그것은 그 이후로 Microsoft XNA로 싸여 있었는데, 아마도 당신에게 적합하지는 않지만 MDX Wikipedia 기사 무언가를 추천합니다 Slimdx 저것 괜찮을 수도 있습니다.

.NET 및 Python과 관련하여 Ironpython을 사용할 수 있습니다. 그러나 당신은 또한 필요합니다 아이언 클래드 Scipy와 Numpy가 Ironpython과 함께 일하게합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top