2011/10 6

온라인 행렬 계산기 소개

웹에서 행렬 계산을 해주는 온라인 행렬 계산기 * 위의 하이퍼 링크를 따라가면 행렬식, 역행렬, 트레이스, 위수(rank), 가우스 소거법, 가우스-조르단 소거법, 고유값과 고유벡터, LU 분해, QR 분해, SVD 분해, Cholesky 분해 등의 계산 결과를 볼 수 있다. * 행렬의 요소를 입력할 때 행의 구분자로 '캐리지 리턴'(즉, 엔터 키)와 '세미콜론'을 사용한다. 예: 1 2 3; 4 5 6; 2 1 1 을 입력하면 3x3 행렬로 인식하여 계산한다.

학습/수학 2011.10.27

간단한 무리방정식의 풀이

무리방정식에는 무연근이 있을 수 있다. 여기서는 무리방정식 sqrt(x + 1) = x - 2 의 풀이를 Mactimatica, Maxima 등에서는 어떻게 하는지 알아 본다. 우선 손계산으로 풀어보자. 무리방정시에는 무연근(계산 상으로는 근으로 나오지만 원래 방정식의 의마에는 맞지 얺는 근)이 나올 수 있다. 먼저 근이 존재할 범위를 알아 본다. 제곱근 기호 속이 0 이상이라야 하므로 x + 1 >= 0 즉 x >= -1 이다. 또 제곱근의 값 자체가 0 이상이므로 주어진 방정식의 우변도 0 이상이라야 한다. 그러므로 x - 2 >= 0 즉, x >= 2 이다. 그러므로 근의 존재 범위는 x >= -1 과 x >= 2 의 공통범위 x >= 2 이다. 이 범위에 있지 않는 근은 모두 무연근이므로 버린다...

학습/수학 2011.10.27

직각삼각형의 빗변의 길이 구하기 / underflow 와 overflow 방지

C 언어, Java 언어, Python 언어 등으로 프로그래밍할 때 부동소수점수(floating point number) 를 많이 사용한다. 보동 double 타입이라고 부르는 수치형 데이터인데, 이 데이터의 처리 가능 범위는 대략 ( -1.79769313486231E308 ~ 1.79769313486232E308 ) 정밀도 비트수 범위 유효숫자 개수(10진수) 단정밀도 32 bits ±1.18×10−38 to ±3.4×1038 약 7개 배정밀도 64 bits ±2.23×10–308 to ±1.80×10308 약 15개 이다. 그렇다면 1.0E-190 에 해당하는 부동소수점수는 0 이 아니며 이것의 제곱 1.0E-380 도 0이 아니다. 그런데 1.0E-380 을 컴퓨터 계산에서는 어떻게 처리될까? 아마..

학습/수학 2011.10.22

여러가지 도구를 이용한 행렬의 고유값(eigenvalue)과 고유벡터(eigenvector) 구하기

여기서는 2x2 행렬 A = [ 1, 1/2; 1/2, 1/3 ] 의 고유값과 고유벡터를 구하는 여러가지 방법을 소개한다. 정의 (고유값과 고유벡터) 주어진 m by n 행렬 A 에 대하여 Av = λv (단, v 는 영아닌 벡터, λ 는 스칼라) 를 만족하는 v 와 λ 가 존재할 때, v 를 A 의 고유벡터, λ 를 A 의 고유값이라고 한다. * Mathematica를 이용하여 행렬의 고규값과 고유벡터 구하기 * Maxima 를 이용하여 행렬의 고유값과 고유벡터 구하기 ** 아래에서 v1 이 고유벡터이고, lambda1 이 고유값이다. ( 그런데, v1 이 행벽터로 표현되어 잇다. 그러므로 이를 transpose 하여 열벡터로 바꾸어야 한다 .) ** v1 의 transpose 를 취하여 행렬 m 을 ..

학습/수학 2011.10.20

여러 가지 도구로 연습해본 분수 계산

* Mathemaica 로 연습해본 분수 계산 * C++ 언어로 구현해본 분수 계산 예제 소스 (참고1: 0으로 나누는 예외상황, 0의 음수 지수 예외상황 처리됨) (참고2: VC++ 와 g++ 로 모두 컴파일되고 실행됨) /** * Filename TestFraction.cpp * * Version: 0.4 * Purpose: Calculate fractions. * * With VC++ * Compile: cl TestFraction.cpp /EHsc * Execute: TestFraction * * With g++ * Compile: g++ TestFraction.cpp -o TestFraction * Execute: ./TestFraction * * Date: 2011. 10. 9 (Sun) */..

학습/수학 2011.10.06

여러 가지 도구로 연습해본 복소수 계산

* Mathematica 로 연습해본 복소수 계산 (PDF 파일로 저장한 것) * Octave 로 연습해본 복소수 계산 (허수 단위는 기호 j 로 표현) octave-3.4.0:1> abs(1+2j) ans = 2.2361 octave-3.4.0:2> log(1+2j) ans = 0.80472 + 1.10715i octave-3.4.0:3> log(-1+2j) ans = 0.80472 + 2.03444i octave-3.4.0:4> log(-1-2j) ans = 0.80472 - 2.03444i octave-3.4.0:5> arg(1+2j) ans = 1.1071 octave-3.4.0:6> arg(1+-2j) ans = -1.1071 octave-3.4.0:7> arg(-1+-2j) ans = -2.0..

학습/수학 2011.10.03