허수는 Scilab에서 %i 로 입력하므로 복소수도 이것을 이용하여 입력할 수 있다. 예를 들어서 복소수 3i, 2-4i 는 다음과 같이 입력한다.
>> a=3*%i>> b=2-4*%i |
허수부와 허수사이에 곱셈(*) 기호를 빠트리지 않도록 주의하자. 또한 실수부와 허수부의 데이터형은 같아야 에러를 발생시키지 않는다.
복소수를 생성하는 다른 방법으로 complex()함수를 사용하는 방법이 있다. 위의 예와 동일한 입력은 다음과 같다.
>> a=complex(0, 3)>> b=complex(2, -4) |
함수 complex(a, b) 에서 a는 실수부 b는 허수부인데 일반적으로 행렬이 될 수 있다. 둘 중 하나라도 스칼라일 경우 나머지가 행렬일 경우는 에러를 발생시키지 않는다.
그러나 만약 a와 b 둘 다 스칼라가 아니라면 서로 차수가 같아야 에러를 발생시키지 않는다.
위 그림의 예에서는 두 행렬의 차수가 같지 않아서 에러를 발생시킨 것이다.
복소수 관련 함수는 다음 표와 같다.
[표 1] 복소수 관련 함수들
real(z) | 복소수 z의 실수부 반환 |
imag(z) | 복소수 z의 허수부 반환 |
imult(z) | z*%i 결과 반환 |
isreal(z) | z가 복소수라면 %F 반환 |
abs(z) | z의 크기를 반환 |
z’ | z의 켤레복소수를 구한다. 만약 Z가 행렬이라면 복소전치행렬을 구한다. |
다음 그림에 사용 예를 들었다.
한 가지 유의할 것은 isreal()함수의 결과는 행렬의 모든 요소가 실수일 경우에만 %T 이고 하나라도 복소수가 있다면 %F라는 것이다. 즉, 각각의 요소에 대해서 논리연산을 한 결과를 반환하지 않는다.
'프로그래밍언어.Lib > Scilab' 카테고리의 다른 글
싸이랩(scialb)에서 행렬의 인덱싱(indexing) (0) | 2015.06.17 |
---|---|
싸이랩(scialb)에서 행렬의 생성과 콜론(:) 연산자 (0) | 2015.06.17 |
싸이랩(scialb)의 숫자 자료형 (정수형과 실수형) (0) | 2015.06.17 |
싸이랩(scialb)의 기본(base) 작업공간과 전역(global) 작업공간 (0) | 2015.06.17 |
싸이랩(scialb)의 폴더 관련 명령어와 변수들 (0) | 2015.06.17 |