430 likes | 985 Views
[ 선형대수 : Matlab ] Chap 3: 매트랩의 내장함수. 최 윤 정. 학습차례. 내장함수 사용하기 도움말 기능 사용하기 기본 수학함수 , 삼각함수 : 간략히 데이터 분석함수 난수 복소수 계산상의 한계 특수한 값과 기타 함수. 학습목표. 다양한 수학함수를 사용할 수 있다 . 매트랩에서 삼각함수를 이해하고 사용할 수 있다 . 통계와 데이터 분석함수를 계산하고 사용할 수 있다 . 균일분포 난수행렬과 가우시안 난수행렬을 만든다 . 매트랩 계산의 한계를 이해한다 .
E N D
학습차례 • 내장함수 사용하기 • 도움말 기능 사용하기 • 기본 수학함수, 삼각함수 : 간략히 • 데이터 분석함수 • 난수 • 복소수 • 계산상의 한계 • 특수한 값과 기타 함수
학습목표 • 다양한 수학함수를 사용할 수 있다. • 매트랩에서 삼각함수를 이해하고 사용할 수 있다. • 통계와 데이터 분석함수를 계산하고 사용할 수 있다. • 균일분포 난수행렬과가우시안난수행렬을 만든다. • 매트랩 계산의 한계를 이해한다. • 매트랩에 내장되어있는 특수한 값과 함수들을 사용한다.
매트랩 함수의 이름은 다른 컴퓨터 프로그램에서 사용하고 있는 함수의 이름과 같다. • [예] • sqrt • sin • cos • log 함수의 입력에는 스칼라를 넣어도, 벡터를 넣어도 된다.
내장함수 사용하기 • 함수의 구성 • 함수이름 • 입력 인수(Input argument) • 출력 y=sqrt(x) y=2 sqrt(4) ans= 2
입력이 여러 개인 함수도 있다. • 나머지 함수(Remainder function) • [예] 10/3의 나머지는? • 중첩하여 사용할 수 있다 : nesting function
출력이 여러 개인 함수도 있다. • 크기 함수(size function)는 행(row) 개수와 열(column) 개수를 구해준다. • 출력에 변수를 할당할 수도 있다.
우리가 필요로 하는 함수는 거의 모두 매트랩에 들어 있다고 보아도 좋다. • 도움말 기능을 사용하여 어떤 함수가 있으며, 어떻게 사용하면 되는지 알아낼 수 있다. • 명령창에서 이용하기 • 메뉴 표시줄의 help 메뉴에서 이용하기
기본 수학함수와 근사함수 • abs(x) 절대값 • sign(x) +, - 부호 • exp(x) ex • log(x) 자연로그(밑이 e) • log10(x) 상용로그(밑이 10) • round(x) : 반올림 • fix(x) : 버림 • floor(x) : - 쪽으로 근사 • ceil(x) : +쪽으로근사 • //음수와 양수를 넣어 테스트해보세요
이산수학 함수 (Discrete Mathematics) • factor(x) • gcd(x,y) greatest common denominator • lcm(x,y) lowest common multiple • rats(x) x 를 분수로 표시 • factorial(x) • primes(x) • isprime(x)
삼각함수(Trigonometric Functions) • sin(x) sine • cos(x) cosine • tan(x) tangent • asin(x) inverse sine • sinh(x) hyperbolic sine • asinh(x) inverse hyperbolic sine • sind(x) sine (입력을 degree 단위로 가정) • asind(x) inverse sine (출력이 degree 단위)
데이터 분석 함수 (Data Analysis) • max(x) • min(x) • mean(x) // 평균값 • median(x) // 중앙값 • sum(x) • prod(x) • sort(x)
최대값 최대값의 위치(원소번호)
각 열의 최대값 최대값의 위치(행번호)
Sort • Sort(x) : 벡터 x의 원소들을 오름차순으로 정렬 • 2 차원 이상이면 각 열마다 오름차순으로 정렬한다. • Sort(x,'descend') • 내림차순 정렬 • Sortrows(x) : x의 첫번째 원소를 기준으로 행 전체를 오름차순으로 정렬. • Sortrows(x,n) : x의 n번째 원소를 기준으로 행전체를 오름차순으로 정렬한다. MATLAB for Engineers
행렬 크기를 구하는 함수 • size(x) 행 개수와 열 개수 • length(x) 행 개수와 열 개수 중 큰 것
분산(Variance)과 표준편차(Standard Deviation) • std(x) • var(x)
데이터의 분포 예 25~39세 남자 키 18~24세 여자 키
직접 실습해보기 • 실습문제 3.5~3.8까지 차례로 풀어보기.
기상데이터 분석하기교재 116~128 참고 MATLAB for Engineers
난수 (Random Numbers) • rand(x) • 0과 1사이 범위에서 균일하게 분포하는 난수를 발생시킨다.(원소 개수는 X×X개) • rand(m,n) • 원소 개수는 m,n개 • randn(n) • 정규분포(가우시안분포)를 갖는 난수를 발생시킨다. • 평균이 0이고 표준편차가 1인 난수
원하는 범위에서 난수를 발생시키는 방법 평균이 80이고 표준편차가 23.5인 10,000개의 가우시안난수집합은 ? >>X = 23.5 * randn(10000,1) + 80 %확인하기 >> mean(X) >> std(X)
행렬 처리 명령 (:) • M(:,1) 형렬 M의 1열 데이터 추출 • M(:) • 2차원 행렬 M 을 1차원 열벡터로 변환
Example 3.5 잡음 (noise) • 매트랩에서 제공하는 헨델의 메시아 음악에 난수로모델링한 잡음성분을 추가한다. • 1. 문제를 명확히 나타낸다. • 2. 입출력을 표시한다. • 메시아 음악 데이터 파일:handel.mat • >> load handel (handel.mat은 들어있어요) • 출력 : 메시아 음악+잡음 데이터 • 3. 표준 난수 집합을 이용하여 잡음의 크기가 원하는 범위 사이에서 변하는 잡음데이터 파일을 만들어야 한다. 어떤 명령을 내려야 할까?
4. 매트랩으로 문제를 푼다. • 교재 132쪽의 명령을 하나씩 살펴보면서 실행시킨다.
5. 풀이를 검사한다. • 잡음이 있는 경우와 잡음이 없는 경우의 음악파일을 그래프로 확인해본다. % 앞부분 200개의 데이터에 대해서 그래프 그리기 t=1:length(y); plot(t(1,1:200),y(1:200,1),t(1,1:200),noise(1:200,1),':') title('Handel''s Messiah') xlabel('Element Number in Music Array') ylabel('Frequency')
연습문제 3.21 p.151 • 주의가 필요한 의약물질을 수송하는데 사용할 컨테이너를 설계하고 있다. • 이 컨테이너는 내용물을 정해진 온도범위안으로 유지시켜야 한다. 그래서 컨테이너가 외부온도에 어떻게 반응하는지 예측하는 모델을 만들었다. 모의실험을 위해 다음과 같은 실험을 데이터를 구성하자. • 2시간의 범위에서 평균 70F, 표준편자 2F인 정규분포를 갖는 온도 분포를 만든다. 즉 0~120분까지 1분 간격으로 모두 121개의 온도 데이터가 들어있는 행렬 T, 분당시간행렬 t 를 만들어야 한다. 필요한 명령어는 ? • 이 데이터를 x,y평면에 그린다. 그래프를 그리는 함수는 plot(x,y). • 최고온도 최저온도를 구하고 이 온도들이 발생한 시각도 함께 구한다. T=randn(1,121)*2+70; t=0:120; %b plot(t,T) %c [maximum, element]=max(T) max_Temp_time=t(element) [minimum, element]=max(T) min_Temp_time=t(element) MATLAB for Engineers
imaginary real 복소수 (Complex Numbers) • complex(x,y) • real(A) • imag(A) • isreal(A) • conj(A) : 복소수 A 의 켤레복소수 • abs(A) • angle(A) A=5+3i A=5+3*i A=complex(5,3) real(A)
계산상의 한계 • 매트랩이 처리할 수 있는 가장 큰 수와 작은 수 • 10-308 • 10308 • 어떤 수를 0으로 나누면 Inf가 출력된다.
다음 명령으로 컴퓨터의 한계값을 알아보자. 아주 큰 수나 작은 수를 사용하여 계산할 경우, 계산 순서에 따라 결과가 달라질 수 있다. • realmax • realmin • intmax • intmin
특수한 값과 기타 함수들 • pi • i,j • Inf • NaN • clock • date • eps • ans 힌트: 특수 함수인 i를 무심코 변수로 다시 정의하여 사용하는 일이 흔히 일어난다. 142쪽의 표를 살펴보면서 어떤 값과 명령들인지 확인해봅시다.
요약 • 매트랩에는 다음과 같이 다양한 함수들이 내장되어 있다. • 기본 수학함수 • 삼각함수 • 데이터 분석함수 • 난수 함수 • 복소수 함수 • 콜론 연산자를 사용하여 행렬을 조작할 수 있다. • 매트랩에는 계산상의 한계가 있다. • 매트랩에는 특수한 값과 특수 함수가 있다. MATLAB for Engineers