2016-11-14 12 views
2

나는 메시를위한 작은 래퍼를 쓰려고한다. 이것은 유한 요소법을 사용하여 평평한면과 원 표면 사이의 최소 선형 응력을 해결합니다. 현재 일부 꼭지점이 고정되어 결과를 얻습니다. 이것이 없으면 삼각형은 무작위로 회전되고 변환됩니다 ...단 하나의 행렬을 풀다.

그러나이 고정은 문제에 필요하지 않으므로 더 좋은 해결책은 단수의 행렬을 직접 푸는 것입니다. Petsc는 nullspace에 대한 정보를 제공하여 단일 시스템을 해결하는 몇 가지 방법을 제공합니다. http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf#section.4.6 Eigen에서이 대안이 있는지 궁금합니다. 그렇지 않은 경우 꼭지점을 고정/고정하지 않고이 문제를 해결할 수있는 다른 방법이 있습니까? dev history

+0

, 다음 시도 할 강건한 움직임을 없애기 위해 설계된 프로젝터가 될 수있는 사용자 정의 전제 조건자를 작성하십시오. https://bitbucket.org/eigen/eigen/src/1a24287c6c133b46f8929cf5a4550e270ab66025/Eigen/src/IterativeLinearSolvers/BasicPreconditioners를 참조하십시오. .h? at = default & fileviewer = 파일보기 - 기본 # BasicPreconditioners.h-185 http://scicomp.stackexchange.com/questions/7488/null-space-projection-for-singular-systems을 보시오 – francis

답변

1

아이겐은 SVD 분해하는 알고리즘을 제공합니다 : Jacobi SVD

덕분에, 좋은 관련

도 더 informaton이 링크를 참조하십시오.

SVD 분해는 널 공간을 제공합니다. wikipedia article의 표기법에 따라 M = U D V을 M의 SVD 분해라고하면, D은 특이 값의 대각 행렬입니다. 그리고, Range, null space and rank에서 : 영 공간이 분석적으로 알려진 경우 [V] M의 특이 값 소실점 대응

우측 - 특이 벡터 M의 영 공간에 걸쳐

+0

나는 생각한다. SVD는 더 큰 매트릭스에는 적합하지 않습니다. conjugate-gradient solver를 사용하고 싶습니다. –

+0

SVD는 다소 시간 소모적 인 분해이지만 Eigen의 구현은 매우 정확합니다 (수치 정밀도와 관련하여). 어떤 매트릭스 크기를 목표로합니까? – billx

+0

커널을 줄 수있는'PartialPivLU'와'FullPivLU' 클래스를 볼 수도 있습니다. http://eigen.tuxfamily.org/dox/group__TopicLinearAlgebraDecompositions.html – billx