다소 생소한 개념이지만 계산 속도를 획기적으로 단축 할 수 있는 행렬이다
내가 필요한 원소들만 채워넣고 나머지 공간은 0으로 채워넣어 용량을 최소화 할 수 있는 행렬이다.
그냥 쉽게 행렬을 만들어서 사용하면 간단한데 왜 어렵게 성긴행렬을 사용하는지 의문을 가지는 학생들이 많다.
학부수준에서는 엄청나게 많은 양의 데이터를 요구하는 계산은 거의 할 일이 없을 것이다. 그러나 행렬의 규모가 커지고
데이터의 수가 많아질수록 계산에 소요되는 시간은 매우 많이 늘어난다.
미래를 위해서라도 성긴행렬을 알아두고 기본적인 사용법을 익혀두는것이 좋을것 같다
성긴행렬 생성
다소 생소한 행렬이라 먼저 만들어보고 파악하는것이 이해하기 쉽다
sparse(행의 번호, 열의 번호 , 값) 의 형태로 입력한다
그러면 (행,열) 값 의 형태로 출력이 된다
쉽게 위치를 지정하고 값을 지정해서 생성한다고 생각하면 편할 것 같다
어떠한 행렬인지 전체를 보려면 full을 사용하면 된다
그렇다면 한번 일반적인 full로 펼친 행렬과 성긴행렬의 용량을 비교해보도록 하자.
비교를 위해 꽤 큰 크기의 임의의 성긴행렬 A 와 그것을 펼친 일반 행렬 B로 비교해 보았다
예상대로 거의 80배 정도의 용량 차이를 보였다.
간단하게 sparse를 이용한 예시를 보도록 하겠다.
sparse 를 이용하면 또 한가지 장점이 쉽게 위치와 값을 지정한 행렬을 만들 수 있다는 것이다
아래의 그림은 비행기 날개등이 가지는 airfoil의 모습니다
ansys를 사용해본 사람들은 친숙한 그림일 것이다.
ansys에서 mesh를 생성하면 비슷한 모양이 나온다.
고유벡터 , 인수분해 , 주성분 분석 (0) | 2021.01.31 |
---|---|
행렬의 생성 (0) | 2021.01.31 |
댓글 영역