• 검색 결과가 없습니다.

3 3 장 배열 연산 장 배열 연산

N/A
N/A
Protected

Academic year: 2021

Share "3 3 장 배열 연산 장 배열 연산"

Copied!
33
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

MATLAB

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

MATLAB

MATLAB 개요와 응용 개요와 응용

3 3 장 배열 연산 장 배열 연산

(2)

MATLAB HCH

목 차 목 차

배열의 덧셈과 뺄셈 배열의 덧셈과 뺄셈

배열 곱셈 배열 곱셈

배열 나눗셈 배열 나눗셈

원소별 연산 원소별 연산

MATLAB MATLAB 내장함수에서의 배열 사용 내장함수에서의 배열 사용

난수의 발생 난수의 발생

응용예제 응용예제

(3)

MATLAB HCH

개요 개요

스칼라 또는 배열 변수들이 스칼라 또는 배열 변수들이 MATLAB MATLAB 에서 생성되면 에서 생성되면 , , 이 변수들은 이 변수들은 다양한 수학연산에 사용될 수 있다

다양한 수학연산에 사용될 수 있다 . MATLAB . MATLAB 은 과학과 공학 분야에 은 과학과 공학 분야에 서 많은 응용분야를 가진 고급 배열연산을 수행하도록 설계되었다 서 많은 응용분야를 가진 고급 배열연산을 수행하도록 설계되었다 . . 이 장에서는 배열을 이용하여

이 장에서는 배열을 이용하여 MATLAB MATLAB 이 수행하는 기본적이고 가 이 수행하는 기본적이고 가 장 일반적인 수학 연산을 제시한다

장 일반적인 수학 연산을 제시한다 . .

배열의 덧셈과 뺄셈 연산 배열의 덧셈과 뺄셈 연산

선형대수법칙에 따른 배열의 곱셈과 나눗셈 선형대수법칙에 따른 배열의 곱셈과 나눗셈 , , 거듭제곱 연산 거듭제곱 연산 ( ( 표준기호 표준기호

* * , /, ^ , /, ^ 이용 이용 ) )

원소별 연산 원소별 연산 (element-by-element operation) (element-by-element operation) 을 이용한 배열의 곱셈과 을 이용한 배열의 곱셈과

나눗셈 나눗셈 , , 거듭제곱 연산 거듭제곱 연산 (.* ( .*, , ./ ./, , .^ .^ 의 기호 이용 의 기호 이용 ) )

(4)

MATLAB HCH

행렬의 덧셈과 뺄셈 행렬의 덧셈과 뺄셈

같은 크기의 같은 크기의 ( ( 같은 행과 열의 수를 가진 같은 행과 열의 수를 가진 ) ) 배열들에 대한 덧셈과 곱셈 배열들에 대한 덧셈과 곱셈 은 같은 위치의 원소들을 더하거나 빼서 구한다

은 같은 위치의 원소들을 더하거나 빼서 구한다 . .



 

 

 

 

 



 

 

23 23

22 22

21 21

13 13

12 12

11 11

23 22

21

13 12

11 23

22 21

13 12

11 ,

b a

b a

b a

b a

b a

b a

b b

b

b b

b a

a a

a a

a

B A B

A

>> v = [3 6 2]; w=[9 -1 5];

>> v = [3 6 2]; w=[9 -1 5];

>> z = v + w

>> z = v + w z =z =

12 5 7 12 5 7

>> A=[2 -3 7; 8 4 5];

>> A=[2 -3 7; 8 4 5];

>> B=[10 7 4; -11 15 1];

>> B=[10 7 4; -11 15 1];

>> C = A

>> C = A - B- B C = C =

--8 8 --10 310 3 19 19 -11 4-11 4

>> D = A + B

>> D = A + B D = 12 4 11 D = 12 4 11

--3 19 63 19 6

>> D

>> D--22

ans = 10 2 9 ans = 10 2 9

-5 17 4-5 17 4

>> C * 2

>> C * 2 ans = ans =

-16 -16 -20 6-20 6

38 -38 -22 822 8

행렬의 덧셈이나 뺄 행렬의 덧셈이나 뺄 셈에 스칼라가 포함 셈에 스칼라가 포함 된 경 우

된 경 우 , , 행 렬 의 행 렬 의 모든 원소에 스칼라 모든 원소에 스칼라 를 더하거나 뺀다 를 더하거나 뺀다 ..

(5)

MATLAB HCH

배열의 덧셈과 뺄셈 응용예 배열의 덧셈과 뺄셈 응용예

세 학생의 과목별 중간고사 및 기말고사 성적은 다음 표와 같다세 학생의 과목별 중간고사 및 기말고사 성적은 다음 표와 같다 . . 세 학생의 세 학생의 각 과목별 평균점수와 중간고사에 대한 성적향상 점수를 구하라

각 과목별 평균점수와 중간고사에 대한 성적향상 점수를 구하라 ..

이 름이 름 중간고사중간고사 기말고사기말고사

국어국어 영어영어 수학수학 물리물리 국어국어 영어영어 수학수학 물리물리 이스근이스근 6161 7878 3939 4242 6969 8484 5151 4646 강후동강후동 4949 5757 2424 3636 5555 5353 3131 4040 이숭기이숭기 9292 9797 8989 8484 9696 9797 9292 9090

>> M = [61 78 39 42; 49 57 24 36; 92 97 89 84];

>> M = [61 78 39 42; 49 57 24 36; 92 97 89 84]; %%중간고사 성중간고사 성

>> F = [69 84 51 46; 55 53 31 40; 96 97 92 90];

>> F = [69 84 51 46; 55 53 31 40; 96 97 92 90]; % %기말고사 성기말고사 성

>> T = 0.5*(M + F)

>> T = 0.5*(M + F) % % 학생별학생별, , 과목별 총점 구하기과목별 총점 구하기 T = T = 65.0000 81.0000 45.0000 44.000065.0000 81.0000 45.0000 44.0000

52.0000 55.0000 27.5000 38.000052.0000 55.0000 27.5000 38.0000 94.0000 97.0000 90.5000 87.000094.0000 97.0000 90.5000 87.0000

>> E = F – M

>> E = F – M % % 학생별학생별, , 과목별 성적 향상과목별 성적 향상 E =

E = 8 6 12 48 6 12 4

(6)

MATLAB HCH

배열의 곱셈 배열의 곱셈

MATLAB MATLAB 에서 행렬의 곱은 선형대수의 규칙에 따라 행해진다 에서 행렬의 곱은 선형대수의 규칙에 따라 행해진다 . .



 

 





 

 

 

32 23 22

22 12

21 31

23 21

22 11

21

32 13 22

12 12

11 31

13 21

12 11

11

32 31

22 21

12 11

23 22

21

13 12

11

,

b a b

a b

a b

a b

a b

a

b a b

a b

a b

a b

a b

a

b b

b b

b b

a a

a

a a

a

B A

B A

>> A = [ 1 4 3; 2 6 1; 5 2 8];

>> A = [ 1 4 3; 2 6 1; 5 2 8];

>> B = [5 4; 1 3; 2 6];

>> B = [5 4; 1 3; 2 6];

>> C = A*B

>> C = A*B T =

T = 15 3415 34 18 3218 32 43 7443 74

>> D = B*A

>> D = B*A

??? Error using ==> mtimes

??? Error using ==> mtimes

Inner matrix dimensions must agree.

Inner matrix dimensions must agree.

74 43

32 18

34 15

6 8 3 2 4 5 2 8 1 2 5 5

6 1 3 6 4 2 2 1 1 6 5 2

6 3 3 4 4 1 2 3 1 4 5 1

6 2

3 1

4 5

8 2 5

1 6 2

3 4 1

(7)

MATLAB HCH

행렬 곱과 벡터 곱 행렬 곱과 벡터 곱

(1/2)(1/2)

행렬의 곱은 교환법칙이 성립하지 않는다

행렬의 곱은 교환법칙이 성립하지 않는다 .

. 즉즉

, AB

, AB≠≠BABA

이다

이다

.

.

벡터 곱

벡터 곱

v

vw

w 의 경우

의 경우

,

,

두 벡터의 원소 개수는 같아야 하고 한쪽 벡터가 행

두 벡터의 원소 개수는 같아야 하고 한쪽 벡터가 행 벡터이면 나머지 벡터는 열벡터이어야 하며

벡터이면 나머지 벡터는 열벡터이어야 하며 ,

,

스칼라 또는 행렬을 얻게 된

스칼라 또는 행렬을 얻게 된 다다

. dot(a, b)

. dot(a, b)

내장함수는 두 벡터의 행∙

내장함수는 두 벡터의 행

∙열 구분 없이 내적을 구한다 열 구분 없이 내적을 구한다 .

.

   













3 3 2

3 1

3

3 2 2

2 1

2

3 1 2

1 1

1 3

2 1 3

2 1 3

3 2 2 1 1 3

2 1 3

2

1 ,

v w v

w v

w

v w v

w v

w

v w v

w v

w v

v v w

w w w

v w v w v w

w w v

v v

>> A = [ 6 2; 4 7]; B = [3 9; 5 1];

>> A = [ 6 2; 4 7]; B = [3 9; 5 1];

>> C = A*B, D = B*A

>> C = A*B, D = B*A % A*B≠B*A% A*B≠B*A C =C =

28 5628 56 47 4347 43 D =D =

54 6954 69 34 1734 17

(8)

MATLAB HCH

>> v = [ 6 2 4 ]; w = [3; 9; 5];

>> v = [ 6 2 4 ]; w = [3; 9; 5];

>> x = v*w

>> x = v*w x = x =

5656

>> z = w*v

>> z = w*v z =z =

18 6 1218 6 12 54 18 3654 18 36 30 10 2030 10 20

>> dot(v, w)

>> dot(v, w) % v*w% v*w ans =

ans = 5656

>> F=[1 3; 5 7]; G=[4 2; 1 6];

>> F=[1 3; 5 7]; G=[4 2; 1 6];

>> F*G

>> F*G ans = ans =

7 207 20 27 5227 52

>> G*F

>> G*F ans = ans =

14 26 14 26 31 45 31 45

>>

>> A=[2 5 7 0; 10 1 3 4; 6 2 11 5]A=[2 5 7 0; 10 1 3 4; 6 2 11 5]

A = A =

2 5 7 02 5 7 0 10 1 3 4 10 1 3 4

6 2 11 56 2 11 5

>> C = 3*A

>> C = 3*A C =C =

6 15 21 0 6 15 21 0 30 3 9 12 30 3 9 12 18 6 33 15 18 6 33 15

>> D=A*3

>> D=A*3 DD = =

6 15 21 0 6 15 21 0 30 3 9 12 30 3 9 12 18 6 33 15 18 6 33 15 v*wv*w

≠ w*v≠ w*v

수와 행렬의 곱은 수와 행렬의 곱은 행렬의 각 원소에 행렬의 각 원소에 수를 곱해 구한다 수를 곱해 구한다 ..

행렬 곱과 벡터 곱

행렬 곱과 벡터 곱

(2/2)(2/2)

(9)

MATLAB HCH

연립선형방정식의 행렬 표현과 나눗셈 연립선형방정식의 행렬 표현과 나눗셈

연립선형방정식을 행렬에 의해 간단히 표현하고 해를 체계적인 방법 연립선형방정식을 행렬에 의해 간단히 표현하고 해를 체계적인 방법 으로 구할 수 있다

으로 구할 수 있다 . .

단위행렬 단위행렬 (identity matrix or unity matrix) I (identity matrix or unity matrix) I

대각선 원소가 모두

대각선 원소가 모두 11 이고 그 외의 원소는 이고 그 외의 원소는 00 인 정방행렬인 정방행렬 (square matrix)(square matrix)로로 서서, MATLAB, MATLAB 에서는 eye(n)에서는 eye(n) 명령어로 생성한다명령어로 생성한다 . . 스칼라 변수에 스칼라 변수에 11 을 곱한 을 곱한

경우처럼 행렬

경우처럼 행렬 (( 또는 벡터또는 벡터 )) 에 단위행렬 에 단위행렬 II 를 곱해도 행렬은 변화가 없다를 곱해도 행렬은 변화가 없다 . . 즉즉, AI = A, Iv = v, BI = B, AI = A, Iv = v, BI = B 이다이다 . . 만일 만일 AA 가 정방행렬이면가 정방행렬이면 , AI = IA = A, AI = IA = A 이이 다다. .

3 3

33 2

32 1

31

2 3

23 2

22 1

21

1 3

13 2

12 1

11

b x

a x

a x

a

b x

a x

a x

a

b x

a x

a x

a

1 1

2

11 12 13

21 22 2 2

3 3

31 32 33 3

x

x

a a a

a a a

a

b a

b b

a x

   

   

 

  

  

  

 

     

Axb

,

1 0 0 1 0 0

0 1 0 0 1 0

0 0 1 0 0 1

6 2 9 6 2 9

5 10 4 5 10 4

7 3

9 9

7 3

   

  

   

  

  

   

   

   

   

        

 

  

 

 

 

(10)

MATLAB HCH

행렬의 역행렬 행렬의 역행렬 (Inverse Matrix) (Inverse Matrix)

정방행렬인

정방행렬인

A

A

B

B

를 곱한 결과가 단위행렬 I

를 곱한 결과가 단위행렬 I

라면

라면

,

,

두 행렬은 서로 역행

두 행렬은 서로 역행 렬의 관계에 있다

렬의 관계에 있다 .

.

A

A

B

B

의 역행렬이며

의 역행렬이며

, B

, B

A

A

의 역행렬이다

의 역행렬이다

.

.

AB = BA = I

AB = BA = I → A=IB

→ A=IB

--1 1 =B

=B

-1 -1 or B=IA

or B=IA

--1 1 =A

=A

--11 AA

AA

-1 -1 =I

=I

→ A→ A-1 -1 은은

A

A

의 역행렬의 역행렬

MATLAB

MATLAB

에서에서 A

A

의 역행렬은 의 역행렬은 A^

A^

-

-

1

1

또는 또는 inv(A)

inv(A)

명령으로 구한다명령으로 구한다.

.

>>

>> AA= [ 7 4 6; 3 1 8; 2 5 4];= [ 7 4 6; 3 1 8; 2 5 4];

>> B=inv(A)

>> B=inv(A) B =B =

0.2278 0.2278 --0.0886 0.0886 --0.16460.1646 - -0.0253 0.0253 --0.1013 0.1013 0.24050.2405 - -0.0823 0.0823 0.1709 0.1709 0.03160.0316

>> A*B

>> A*B % B*A % B*A와 동일와 동일 ansans = =

1.0000 0.0000 0.00001.0000 0.0000 0.0000

0 1.0000 00 1.0000 0 - -0.0000 0.0000 0.0000 0.0000 1.00001.0000

>> A^-1 % A% A의 역행렬의 역행렬 ans =ans =

0.2278 -0.0886 -0.16460.2278 -0.0886 -0.1646 -0.0253 -0.1013 0.2405 -0.0253 -0.1013 0.2405 -0.0823 0.1709 0.0316 -0.0823 0.1709 0.0316

>> A*A^-1 % A% AAA-1-1=I=I ans =

ans =

1.0000 0.0000 0.0000 1.0000 0.0000 0.0000

0 1.0000 00 1.0000 0 --0.0000 0.0000 1.00000.0000 0.0000 1.0000

5.555.55ee--1717

(11)

MATLAB HCH

행렬식 행렬식 (Determinant) (Determinant)

행 렬 행 렬 A A determinant determinant |A| |A| 로 표 시 하 며 로 표 시 하 며 , MATLAB , MATLAB 명 령 어 명 령 어 det(A)

det(A) 에 의해 구한다 에 의해 구한다 . .

12 21 33 11

32 23 32

21 13 31

23 12 33

22 11 33

32 31

23 22

21

13 12

11

21 12 22

11 22

21

12 11

a a a a

a a a

a a a

a a a

a a a

a a

a a

a

a a

a

a a a

a a a

a a

B A

>>

>> AA= [ 1 2 0; 0 1 1; 3 0 1]; det(= [ 1 2 0; 0 1 1; 3 0 1]; det(A)A) ans =ans =

77

>> B=[ 1 2 1; 0 1 1; 3 1 1]; det(B)

>> B=[ 1 2 1; 0 1 1; 3 1 1]; det(B) ans = ans =

33

1 1 3

1 1 0

1 2 1

1 0 3

1 1 0

0 2 1









B A

(12)

MATLAB HCH

행렬 나눗셈 행렬 나눗셈

(1/2)(1/2)

MATLABMATLAB 에는 ‘에는 ‘right division(/)’right division(/)’ 과 ‘과 ‘left division(\)’left division(\)’의 두 가지 형식의 행렬 의 두 가지 형식의 행렬 나누기가 있다

나누기가 있다 . . 연립선형방정식을 연립선형방정식을 Ax=BAx=B의 행렬형태로 나타냈을 때 벡터 의 행렬형태로 나타냈을 때 벡터 xx 는 두 가지 방법으로 구할 수 있다

는 두 가지 방법으로 구할 수 있다 ..

Left division \

Left division \

1)1) Ax = bAx = b의 양변에 의 양변에 AA의 역행렬 의 역행렬 AA-1-1을 곱하면을 곱하면,,

AA-1-1Ax = AAx = A--11b b → Ix = x = → Ix = x = AA--11bb

즉즉, Ax = b, Ax = b 의 해는 의 해는 x = Ax = A-1-1bb이다이다. MATLAB . MATLAB 명령어로 x = inv(A)*b명령어로 x = inv(A)*b 이다이다.. 2)2) MATLABMATLAB에서 left division ‘\’에서 left division ‘\’ 를 이용하여 구할 수도 있다를 이용하여 구할 수도 있다. . 즉즉, , x = A\bx = A\b..

위의 두 방법은 같은 결과를 주는 것처럼 보이지만위의 두 방법은 같은 결과를 주는 것처럼 보이지만 , MATLAB, MATLAB 이 x이 x 를 계산하를 계산하 는 방법은 다르다

는 방법은 다르다 . Left division ‘\’. Left division ‘\’ 는 는 Gauss elimination Gauss elimination 방법에 따라 수치적방법에 따라 수치적 으로 계산한다

으로 계산한다. .

큰 행렬이 포함된 경우큰 행렬이 포함된 경우, , 역행렬 계산이 가우스 소거법보다 정확도가 떨어질 수 역행렬 계산이 가우스 소거법보다 정확도가 떨어질 수 있으므로 선형연립방정식을 푸는 경우에는

있으므로 선형연립방정식을 푸는 경우에는 left divisionleft division 을 사용하는 것이 유리을 사용하는 것이 유리 하다하다. .

(13)

MATLAB HCH

Right division / Right division /

행 벡터 행 벡터 vv 와 와 ww에 대해에 대해 , , 선형방정식 vA = w선형방정식 vA = w 에서 v에서 v 를 구하려면를 구하려면 vAAvAA--11 = wA = wA-1-1 → v → vII = v = wA = v = wA-1-1 or v = w/Aor v = w/A

즉즉, vA = w, vA = w 의 해는 의 해는 v = w/A v = w/A or wAor wA-1-1 이다이다.. Ax=b

>> 4/8

>> 4/8

ans = 0.5000 ans = 0.5000

>> 4\8

>> 4\8 ans = 2 ans = 2

>> A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0];

>> A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0];

>> x=A^

>> x=A^--1 * b1 * b ans = ans =

- -1.80491.8049

0.29270.2927

2.63412.6341

>> x2

>> x2 = inv(A)*b = inv(A)*b x2 =x2 =

--1.80491.8049

0.29270.2927

2.63412.6341

>> x3 = A\b

>> x3 = A\b % % 가우스 소거법가우스 소거법 x3 =

x3 = -1.8049-1.8049

0.29270.2927

2.634122.63412

4 2 6

2 8 2 :

6 1

8 0 3

4 0

  

  

 

  

  

   

 

x Ax = b

행렬 나눗셈

행렬 나눗셈

(2/2)(2/2)

(14)

MATLAB HCH

예제 예제 3.1 3.1 연립선형방정식의 해 연립선형방정식의 해

다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라

다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라

.

.

4x – 2y + 6z = 8

4x – 2y + 6z = 8 2x + 8y + 2z = 4 2x + 8y + 2z = 4 6x + 10y + 3z = 0 6x + 10y + 3z = 0

위 연립방정식을 행렬 형식으로 나타내면 다음과 같다 위 연립방정식을 행렬 형식으로 나타내면 다음과 같다 ::

   

4 2 6 8 4 2 6

2 8 2 4 or 2 8 10 8 4 0

6 10 3 0 6 2 3

x

y x y z

z

    

    

    

    

    

>>

>> A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0];A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0];

>> x=A\ b

>> x=A\ b % % x=inv(A)*bx=inv(A)*b 로 구할 수도 있음로 구할 수도 있음 xx = -1.8049 = -1.8049

0.29270.2927

2.63412.6341

>> C=[4 2 6;-2 8 10; 6 2 3]; w

>> C=[4 2 6;-2 8 10; 6 2 3]; w = [8 4 0]; = [8 4 0];

>> x = w/C

>> x = w/C

x = -1.8049 0.2927 2.6341x = -1.8049 0.2927 2.6341

Ax = b Ax = b

→ A→ A-1-1Ax=AAx=A-1-1bb

→ x=A\b→ x=A\b xC=w xC=w

→ xCC→ xCC--11=wC=wC-1-1

→ x = w/C x = w/C

(15)

MATLAB HCH

원소별 원소별 (Element-by-Element) (Element-by-Element) 연산 연산

행렬에 대한 곱셈과 나눗셈은 선형대수의 법칙을 따른다 행렬에 대한 곱셈과 나눗셈은 선형대수의 법칙을 따른다 . . 그러나 두 행렬 그러나 두 행렬 의 원소와 원소 사이의 연산이 필요한 경우가 많다

의 원소와 원소 사이의 연산이 필요한 경우가 많다 . . 덧셈과 뺄셈은 원래 덧셈과 뺄셈은 원래 행렬의 같은 위치의 원소끼리 더하거나 빼므로 원칙적으로 원소별 연산에 행렬의 같은 위치의 원소끼리 더하거나 빼므로 원칙적으로 원소별 연산에 해당된다 해당된다 . .

원소별 연산은 다음과 같이 점 뒤에 연산기호를 붙이면 된다 원소별 연산은 다음과 같이 점 뒤에 연산기호를 붙이면 된다 : :

.*.* ( ( 원소별 곱셈원소별 곱셈 ), ), .^ (.^ ( 원소별 지수승원소별 지수승 ), ), ./ (./ ( 우측 나눗셈우측 나눗셈 ), ), .\ .\ (( 좌측 나눗좌측 나눗 셈셈))

두 벡터 두 벡터 v v w w 가 각각 가 각각 v=[ v=[ v v

11

, v , v

22

, v , v

33

], w=[w ], w=[ w

11

w w

22

w w

33

] ] 이라면 이라면 , ,

v.* v .* w = [ w = [ v v

11

w w

11

, , v v

22

w w

22

, , v v

33

w w

3 3

] ] v./ v ./ w = [ w = [ v v

11

/ / w w

11

, , v v

22

/ / w w

22

, , v v

33

/ / w w

3 3

] ] v.^ v .^w = [ w = [ v v

11ww11

, v , v

22w2w2

, v , v

33w3w3

] ]

두 행렬 두 행렬 A A

11

B B 에 대해 에 대해

12 13 11 12 13 11 11 12 12 13 13

21 22 23 21 22 23 21 21 22 22 23 23

31 32 33 31 32 33 31 31 32 32 33 33

.*

a a a b b b a b a b a b

a a a b b b a b a b a b

a a a b b b a b a b a b

     

     

      

     

     

A B

(16)

MATLAB HCH

/ /

/

/ /

/

/ /

/ ./

/ .

33 33 32

32 31

31

23 23 22

22 21

21

13 13 12

12 11

11

33 32

31

23 22

21

13 12

11

33 32

31

23 22

21

13 12

11













b a

b a

b a

b a

b a

b a

b a b

a b

a b

b b

b b

b

b b

b a

a a

a a

a

a a

a B

A

.^

33 32

31

23 22

21

13 12

11





n n

n

n n

n

n n

n

a a

a

a a

a

a a

a n

A >> C=A./B>> C=A./B

C =C =

2.0000 1.5000 0.30002.0000 1.5000 0.3000 1.6667 4.0000 0.57141.6667 4.0000 0.5714

>> 2.^B

>> 2.^B ans = ans =

2 16 10242 16 1024 8 4 1288 4 128

>> A*B

>> A*B

??? Error using==> mtimes

??? Error using==> mtimes

Inner matrix dimensions must Inner matrix dimensions must

agree.

agree.



 

 



 

 

7 2 3

10 4

1

4 8 5

3 6 2

B A

행렬의 원소별 연산 행렬의 원소별 연산

>> A=[2 6 3; 5 8 4];

>> A=[2 6 3; 5 8 4];

>> B=[1 4 10; 3 2 7];

>> B=[1 4 10; 3 2 7];

>> A.*B

>> A.*B ans = ans =

2 2 24 3024 30 1515 16 2816 28

(17)

MATLAB HCH

원소별 연산 예 원소별 연산 예

원소별 연산은 많은 독립변수에서 함수값을 계산할 때 매우 유용하다 원소별 연산은 많은 독립변수에서 함수값을 계산할 때 매우 유용하다 . . 저 독립변수의 값들을 벡터로 정의하고 이 벡터를 이용하여 함수값을 원소 저 독립변수의 값들을 벡터로 정의하고 이 벡터를 이용하여 함수값을 원소 별 연산을 이용하여 계산한다

별 연산을 이용하여 계산한다 . .

y(y(x)= 2x)= 2xx22- 5- 5x+x+1 1 함수의 값 계산함수의 값 계산

2 4 6

-10 0 10 20 30 40 50 60 70

x

y

y=2x2 - 5x + 1

-100 -80 -60 -40 -20 0 20 40 60

y

y=(x.3 + 5x)/(4x2 - 10)

>> x = 1:7

>> x = 1:7 x =x =

1 2 3 4 5 6 71 2 3 4 5 6 7

>> y = 2*x.^2 – 5*x + 1

>> y = 2*x.^2 – 5*x + 1 y =y =

-2 -1 4 13 26 43 64-2 -1 4 13 26 43 64

>> plot(x, y)

>> plot(x, y)

y(y(x) = (x) = (xx33 + 5x + 5x)/(4)/(4xx22 – 10) – 10) 의 계산의 계산

>> x = [1:0.03:3];

>> x = [1:0.03:3];

>> >> y = (x.^3 + 5*x)./(4*x.^2 - 10); y = (x.^3 + 5*x)./(4*x.^2 - 10);

>> plot(x, y)>> plot(x, y)

(18)

MATLAB HCH

내장함수에서의 배열 사용 내장함수에서의 배열 사용

(1/2)(1/2)

MATLAB MATLAB 의 내장함수는 입력인자가 배열인 경우 함수에 의해 정의된 연 의 내장함수는 입력인자가 배열인 경우 함수에 의해 정의된 연 산이 배열의 각 원소에 대해 수행되도록 만들어져 있으므로

산이 배열의 각 원소에 대해 수행되도록 만들어져 있으므로 , , 함수를 원소 함수를 원소 별로 적용하는 것으로 생각할 수 있다

별로 적용하는 것으로 생각할 수 있다 . . 따라서 출력은 입력인자 배열의 각 따라서 출력은 입력인자 배열의 각 원소를 함수에 대입하여 얻은 결과를 해당 원소로 갖는 배열이다

원소를 함수에 대입하여 얻은 결과를 해당 원소로 갖는 배열이다 . .

cos(x) cos(x) 함수의 계산 함수의 계산

>> x=[0:pi/6:2*pi]

>> x=[0:pi/6:2*pi]

x =x =

Columns 1 through 7Columns 1 through 7

0 0.5236 1.0472 1.5708 2.0944 2.6180 3.14160 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416 Columns 8 through 13 Columns 8 through 13

3.6652 4.1888 4.7124 5.2360 5.7596 6.28323.6652 4.1888 4.7124 5.2360 5.7596 6.2832

>> y=cos(x)

>> y=cos(x) y =y =

Columns 1 through 7 Columns 1 through 7

1.0000 0.8660 0.5000 0.0000 -0.5000 -0.8660 -1.00001.0000 0.8660 0.5000 0.0000 -0.5000 -0.8660 -1.0000 Columns 8 through 13 Columns 8 through 13

-0.8660 -0.5000 -0.0000 0.5000 0.8660 1.0000-0.8660 -0.5000 -0.0000 0.5000 0.8660 1.0000

>> plot(x, y), grid on

>> plot(x, y), grid on

0 1 2 3 4 5 6

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

(19)

MATLAB HCH

sqrt(x) sqrt(x) 함수의 계산 함수의 계산

>> d=[1 4 9; 16 25 36; 49 64 81]

>> d=[1 4 9; 16 25 36; 49 64 81]

d =d =

1 4 91 4 9 16 25 3616 25 36 49 64 8149 64 81

>> h=sqrt(d)

>> h=sqrt(d) h =h =

1 2 31 2 3 4 5 64 5 6 7 8 97 8 9

내장함수에서의 배열 사용

내장함수에서의 배열 사용

(2/2)(2/2)

(20)

MATLAB HCH

배열 해석용 내장함수 배열 해석용 내장함수

(1/2)(1/2)

함수 설명

mean(A)

mean(A) AA 가 벡터이면가 벡터이면 , , 벡터 원소들의 평균값벡터 원소들의 평균값을 돌려준을 돌려준 ..

>> A=[5,9,2,4];

>> A=[5,9,2,4];

>> mean(A)

>> mean(A) ans = 5 ans = 5

C=max(A)

C=max(A) AA가 벡터이면가 벡터이면, C, CAA에서 가장 큰 원소이다에서 가장 큰 원소이다. A. A 가 행렬인 경우

가 행렬인 경우 , C, C AA 의 각 열에서 가장 큰 원의 각 열에서 가장 큰 원 소들로 구성된 행벡터이다

소들로 구성된 행벡터이다 ..

>> A=[5,9,2,4,11,6,11,1];

>> A=[5,9,2,4,11,6,11,1];

>> C=max(A)

>> C=max(A) C = 11

C = 11

[d,n]=max(x)

[d,n]=max(x) AA가 벡터이면가 벡터이면 , d, dAA 에서 가장 큰 원소이며 에서 가장 큰 원소이며 nn 은 원소의 위치이다

은 원소의 위치이다 (( 최대값이 여러 개인 경우에최대값이 여러 개인 경우에 는 첫 번째 최대값의 위치

는 첫 번째 최대값의 위치 ).).

>>[d,n]=max(A)

>>[d,n]=max(A) d = 11

d = 11 n = 5 n = 5

min(A)

min(A) 최소값을 찾는다는 점을 제외하고는 최소값을 찾는다는 점을 제외하고는 max(A)max(A) 동일하다동일하다..

>> A=[5,9,2,4];

>> A=[5,9,2,4];

>> min(A)

>> min(A) ans = 2 ans = 2

[d,n]=min(A)

[d,n]=min(A) 최 소 값 을 찾 는 다 는 점 을 제 외 하 고 는 최 소 값 을 찾 는 다 는 점 을 제 외 하 고 는 [d,n]=max(A)

[d,n]=max(A)와 동일하다와 동일하다.. sum(A)

sum(A) AA가 벡터이면가 벡터이면, , 벡터 원소들의 합을 돌려준다벡터 원소들의 합을 돌려준다 .. >> A=[5,9,2,4];>> A=[5,9,2,4];

>> sum(A)

>> sum(A) ans = 20 ans = 20

(21)

MATLAB HCH

함수 설명

sort(A)

sort(A) AA가 벡터이면가 벡터이면, , 벡터의 원소들을 오름차순으로 정벡터의 원소들을 오름차순으로 정 렬한다렬한다..

>> A=[5,9,2,4];

>> sort(A)

ans = 2 4 5 9

median(A)

median(A) AA 가 벡터이면가 벡터이면 , , 벡터 원소들의 중앙값벡터 원소들의 중앙값 (median (median value)

value)을 돌려준다을 돌려준다..

>> median(A) ans = 4.5

std(x)

std(x) AA가 벡터이면가 벡터이면, , 벡터의 원소들의 표준편차를 돌려벡터의 원소들의 표준편차를 돌려 준다준다..

>> std(A) ans = 2.9439

det(A)

det(A) 정방행렬 정방행렬 AA의 행렬식을 돌려준다의 행렬식을 돌려준다.. >> A=[2, 4; 3, 5];

>> det(A) ans = -2

dot(a,b)

dot(a,b) 두 벡터 두 벡터 aabb의 스칼라 곱의 스칼라 곱((내적내적)) 을 계산한다을 계산한다. . 벡터는 각각 행벡터 또는 열벡터가 될 수 있다

벡터는 각각 행벡터 또는 열벡터가 될 수 있다 . .

>> a=[1,2,3]; b=[3,4,5];

>> dot(a, b), cross(a, b) ans = 26

ans = -5 3 -2

cross(a,b)

cross(a,b) 두 벡터 두 벡터 aa bb의 외적의 외적(cross product)(cross product) 을 계산한을 계산한 . . 두 벡터는 두 벡터는 33개의 원소를 가져야 한다개의 원소를 가져야 한다..

inv(A)

inv(A) 정방행렬 정방행렬 AA의 역행렬을 돌려준다의 역행렬을 돌려준다. . >> A=[2,-2,1;3,2,-1;2,-3,2];

>> inv(A) ans = …

배열 해석용 내장함수

배열 해석용 내장함수

(2/2)(2/2)

(22)

MATLAB HCH

많은 공학 응용에서 많은 난수들의 집합을 필요로 하는 경우가 종종 있다 많은 공학 응용에서 많은 난수들의 집합을 필요로 하는 경우가 종종 있다 . . MATLAB

MATLAB 은 난수를 생성하는 내장함수로 은 난수를 생성하는 내장함수로 rand, randn rand, randn 이 있다 이 있다 . .

rand rand 명령어 명령어 : 0 : 0 1 1 사이에서 균일하게 분포된 난수들을 생성시킴 사이에서 균일하게 분포된 난수들을 생성시킴

rand : rand : 한 개의 난수 생성한 개의 난수 생성, , rand(1, n) : n rand(1, n) : n 개의 난수 행벡터 생성개의 난수 행벡터 생성

rand(n) : nrand(n) : nn n 크기의 난수 행렬 생성크기의 난수 행렬 생성 , rand(m, n) : m, rand(m, n) : mn n 크기의 난수행렬 생성크기의 난수행렬 생성

randperm randperm 명 령 어 명 령 어 : 1 : 1 에 서 에 서 n n 까 지 의 정 수 의 무 작 위 순 열 까 지 의 정 수 의 무 작 위 순 열 (random (random permutation)

permutation) 으로 구성된 으로 구성된 1 1   n n 의 행벡터를 생성함 의 행벡터를 생성함

>> x = randperm(8)

>> x = randperm(8)

x =x =

8 8

2 7 4 3 6 5 1 2 7 4 3 6 5 1

(0, 1) (0, 1) 이 아닌 구간에 분포되어 있는 난수들이나 정수로만 이루어진 난수들 이 아닌 구간에 분포되어 있는 난수들이나 정수로만 이루어진 난수들 이 필요한 경우

이 필요한 경우 , , 다음과 같은 수학적인 조작에 의해 구할 수 있다 다음과 같은 수학적인 조작에 의해 구할 수 있다 : :

(b-a)*rand+a (b-a)*rand+a

예예) -) -55 와 와 10 10 사이의 난수를 가지는 원소 사이의 난수를 가지는 원소 1010 개의 벡터 개의 벡터 ::

>> v=15*rand(1,10)-5

>> v=15*rand(1,10)-5

v = 7.2209 8.5869 v = 7.2209 8.5869 --3.0952 8.7006 4.4854 3.0952 8.7006 4.4854 -3.5369 -3.5369 -0.8225 3.2032 9.3626 9.4733-0.8225 3.2032 9.3626 9.4733

Random number(

Random number( 난수 난수 ) ) 의 생성 의 생성

(1/2) (1/2)

(23)

MATLAB HCH

모두 정수인 난수의 생성은 실수를 정수로 변환하는 함수를 이용한다 모두 정수인 난수의 생성은 실수를 정수로 변환하는 함수를 이용한다 . .

예예) 1) 1 에서 에서 100 100 사이의 정수 난수를 갖는 사이의 정수 난수를 갖는 2×15 2×15 행렬의 생성행렬의 생성 :: >> A=round(99*rand(2,15)+1) >> A=round(99*rand(2,15)+1)

A =A =

44 77 20 45 71 28 66 13 96 5944 77 20 45 71 28 66 13 96 59 39 80 49 65 76 68 17 50 35 2339 80 49 65 76 68 17 50 35 23

randn randn 명령어 명령어 : : 평균이 평균이 0 0 이고 표준편차가 이고 표준편차가 1 1 인 정규분포 난수들의 생 인 정규분포 난수들의 생

randn(n) : nrandn(n) : nn n 크기의 난수행렬크기의 난수행렬 , rand(m, n) : m, rand(m, n) : mn n 크기의 난수행렬크기의 난수행렬

>> d=randn(3,4)

>> d=randn(3,4) d = d =

-0.5883 -0.1364 1.0668-0.5883 -0.1364 1.0668

2.1832 0.1139 0.05932.1832 0.1139 0.0593

>> x = round( 5*randn(1, 10) + 10)

>> x = round( 5*randn(1, 10) + 10)

x =x =

6 4 10 10 7 10 10 3 13 86 4 10 10 7 10 10 3 13 8

randn

randn 명령어의 결과에 원하는 명령어의 결과에 원하는 평균값을 더하고 원하는 표준편 평균값을 더하고 원하는 표준편 차를 곱함으로써 임의의 평균과 차를 곱함으로써 임의의 평균과 표준편차를 갖는 난수를 생성할 표준편차를 갖는 난수를 생성할 수 있다수 있다..

Random number(

Random number( 난수 난수 ) ) 의 생성 의 생성

(2/2) (2/2)

참조

관련 문서

의료진들도 임상시험 을 시행하는 경우 윤리적이고 과학적인 근거 하에 임상시험관리기준을 엄격히 지키고 환자의 인권 및 권익을 지키고자 최선을 다하고

(reduction)에 수장측 잠김 금속판 고정술(volar plate fix- ation)이 사용되면서 잠김 나사못(screw)에 의한 손등 폄근 힘줄의 손상이 보고된 바 있어 지속적인 근

승진이란 종업원이 보다 유리한 직무로 수직적·상향적으로 이동하는 것으로 승진전의 직무에 비하여 더욱 많은 능력을 필요로 하는 고 수준의 직무로 옮기는 것.. 따라서

화의 정도를 감소시키려고 하는 유전 공학(gene engi- neering) 기법을 이용한 추간판 유전자 치료 14) 와 추간판 이나 척추 후관절을 대상으로한 관절 치환술이 각광을

그러나 보다 일반 적인 환경에서 인물에 대한 인식을 하려면 기울어진 얼굴의 검출이 가능해야 한다. 기존의 많은 방식들에서 영상 내 에 존재하는 회전된 얼굴을

슬관절 부분 치환 술을 시행한 후에 재치환 수술을 필요로 하는 경우는 가장 많은 경우가 폴리에틸렌 삽입물의 마모이며 그 외에도 대퇴골 또는 경골 삽입물의 해리,

ㆍ위의 3 가지 수정사항은 모든 진핵세포 게놈 분석에 적용되지만, 유기체에 따른 특징을 감안하여 다른 수정이 가능하다. 예를들면, 척추동믈은 많은 유전자의 상류에 1kb 에 해당

여 좋은 결과를 보인 연구들이 보고되고 있다.(14) 본 연구 에서도 가성동맥류에 대한 성공적 색전술로 수술을 피할 수 있는 경우가 있었다. 출혈이 발생하면 많은