33
MATLAB 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 MATLAB MATLAB 개개개 개개 개개개 개개 3 3 개 개개 개개 개 개개 개개

MATLAB 개요와 응용 3 장 배열 연산

  • Upload
    isaura

  • View
    118

  • Download
    1

Embed Size (px)

DESCRIPTION

MATLAB 개요와 응용 3 장 배열 연산. 목 차. 배열의 덧셈과 뺄셈 배열 곱셈 배열 나눗셈 원소별 연산 MATLAB 내장함수에서의 배열 사용 난수의 발생 응용예제. 개요. 스칼라 또는 배열 변수들이 MATLAB 에서 생성되면 , 이 변수들은 다양한 수학연산에 사용될 수 있다 . MATLAB 은 과학과 공학 분야에서 많은 응용분야를 가진 고급 배열연산을 수행하도록 설계되었다 . 이 장에서는 배열을 이용하여 MATLAB 이 수행하는 기본적이고 가장 일반적인 수학 연산을 제시한다 . - PowerPoint PPT Presentation

Citation preview

Page 1: MATLAB 개요와 응용 3 장 배열 연산

MATLAB

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

MATLABMATLAB 개요와 응용개요와 응용33 장 배열 연산장 배열 연산

Page 2: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 2/35

목 차목 차

배열의 덧셈과 뺄셈배열의 덧셈과 뺄셈 배열 곱셈배열 곱셈 배열 나눗셈배열 나눗셈 원소별 연산원소별 연산 MATLAB MATLAB 내장함수에서의 배열 사용내장함수에서의 배열 사용 난수의 발생난수의 발생 응용예제응용예제

Page 3: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 3/35

개요개요

스 칼 라 또 는 배 열 변 수 들 이 스 칼 라 또 는 배 열 변 수 들 이 MATLABMATLAB 에 서 생 성 되 면에 서 생 성 되 면 , , 이 이 변수들은 다양한 수학연산에 사용될 수 있다변수들은 다양한 수학연산에 사용될 수 있다 . MATLAB. MATLAB 은 과학과 은 과학과 공학 분야에서 많은 응용분야를 가진 고급 배열연산을 수행하도록 공학 분야에서 많은 응용분야를 가진 고급 배열연산을 수행하도록 설 계 되 었 다설 계 되 었 다 . . 이 장 에 서 는 배 열 을 이 용 하 여 이 장 에 서 는 배 열 을 이 용 하 여 MATLABMATLAB 이 이 수행하는 기본적이고 가장 일반적인 수학 연산을 제시한다수행하는 기본적이고 가장 일반적인 수학 연산을 제시한다 .. 배열의 덧셈과 뺄셈 연산배열의 덧셈과 뺄셈 연산 선형대수법칙에 따른 배열의 곱셈과 나눗셈선형대수법칙에 따른 배열의 곱셈과 나눗셈 , , 거듭제곱 연산거듭제곱 연산 ((

표준기호 표준기호 **, /, ^ , /, ^ 이용이용 ) ) 원 소 별 연 산원 소 별 연 산 (element-by-element operation)(element-by-element operation) 을 이 용 한 배 열 의 을 이 용 한 배 열 의

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

Page 4: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 4/35

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

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

232322222121

131312121111

232221

131211

232221

131211 , bababa

bababa

bbb

bbb

aaa

aaaBABA

>> v = [3 6 2]; w=[9 -1 5];>> v = [3 6 2]; w=[9 -1 5];>> z = v + w>> z = v + wz =z = 12 5 712 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 BC = C = --8 8 --10 310 3 19 19 --11 411 4

>> D = A + B>> D = A + BD = 12 4 11D = 12 4 11 --3 19 63 19 6>> D>> D--22ans = 10 2 9ans = 10 2 9 --5 17 45 17 4>> C * 2>> C * 2ans = ans = --16 16 --20 620 6 38 38 --22 822 8

행렬의 덧셈이나 행렬의 덧셈이나 뺄셈에 스칼라가 뺄셈에 스칼라가 포 함 된 경 우포 함 된 경 우 , , 행 렬 의 모 든 행 렬 의 모 든 원소에 스칼라를 원소에 스칼라를 더하거나 뺀다더하거나 뺀다 ..

Page 5: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 5/35

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

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

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

국어국어 영어영어 수학수학 물리물리 국어국어 영어영어 수학수학 물리물리

이스근이스근 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 -4 7 46 -4 7 4 4 0 3 64 0 3 6

Page 6: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 6/35

배열의 곱셈배열의 곱셈

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

322322221221312321221121

321322121211311321121111

3231

2221

1211

232221

131211

,

babababababa

babababababa

bb

bb

bb

aaa

aaa

BA

BA

>> 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*BT = T = 15 3415 34 18 3218 32 43 7443 74

>> D = B*A>> D = B*A??? Error using ==> mtimes??? Error using ==> mtimesInner matrix dimensions must agree.Inner matrix dimensions must agree.

7443

3218

3415

683245281255

613642211652

633441231451

62

31

45

825

162

341

Page 7: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 7/35

행렬 곱과 벡터 곱행렬 곱과 벡터 곱 (1/2)(1/2)

행렬의 곱은 교환법칙이 성립하지 않는다행렬의 곱은 교환법칙이 성립하지 않는다 . . 즉즉 , , ABAB≠≠BABA 이다이다 .. 벡터 곱 벡터 곱 vvww 의 경우의 경우 , , 두 벡터의 원소 개수는 같아야 하고 한쪽 벡터가 두 벡터의 원소 개수는 같아야 하고 한쪽 벡터가

행벡터이면 나머지 벡터는 열벡터이어야 하며행벡터이면 나머지 벡터는 열벡터이어야 하며 , , 스칼라 또는 행렬을 얻게 스칼라 또는 행렬을 얻게 된다된다 . . dot(a, b)dot(a, b) 내장함수는 두 벡터의 행내장함수는 두 벡터의 행∙∙열 구분 없이 내적을 구한다열 구분 없이 내적을 구한다 ..

332313

322212

312111

321

3

2

1

332211

3

2

1

321 ,

vwvwvw

vwvwvw

vwvwvw

vvv

w

w

w

wvwvwv

w

w

w

vvv

>> 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*AC =C = 28 5628 56 47 4347 43D =D = 54 6954 69 34 1734 17

Page 8: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 8/35

>> v = [ 6 2 4 ]; w = [3; 9; 5]; >> v = [ 6 2 4 ]; w = [3; 9; 5]; >> x = v*w>> x = v*wx =x = 5656>> z = w*v>> z = w*vzz = = 18 6 1218 6 12 54 18 3654 18 36 30 10 2030 10 20>> dot(v, w) >> dot(v, w) % v*w% v*wans = 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*Gans = ans = 7 207 20 27 5227 52

>> G*F>> G*Fans =ans = 14 2614 26 31 4531 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 410 1 3 4 6 2 11 56 2 11 5 >> C = 3*A>> C = 3*ACC = = 6 15 21 06 15 21 0 30 3 9 1230 3 9 12 18 6 33 1518 6 33 15>> D=A*3>> D=A*3 DD = = 6 15 21 06 15 21 0 30 3 9 1230 3 9 12 18 6 33 1518 6 33 15

v*wv*w≠ ≠ w*vw*v

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

행렬 곱과 벡터 곱행렬 곱과 벡터 곱 (2/2)(2/2)

Page 9: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 9/35

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

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

단위행렬단위행렬 (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 = BAI = A, Iv = v, BI = B 이다이다 . . 만일 만일 AA 가 정방행렬이면가 정방행렬이면 , AI = , AI = IA = AIA = A 이다이다 . .

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

1 1

2

11 12 13

21 22 2 2

3

3

31 3 3 32 3

x

x

a a a

a a a

a

b

a

b

ba x

Ax b

,

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

Page 10: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 10/35

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

정방행렬인 정방행렬인 AA 와 와 BB 를 곱한 결과가 단위행렬 를 곱한 결과가 단위행렬 II 라면라면 , , 두 행렬은 서로 두 행렬은 서로 역행렬의 관계에 있다역행렬의 관계에 있다 . . 즉 즉 AA 는 는 BB 의 역행렬이며의 역행렬이며 , B, B 는 는 AA 의 역행렬이다의 역행렬이다 . .

AB = BA = I AB = BA = I → A=IB→ A=IB--1 1 =B=B--1 1 or B=IAor B=IA--1 1 =A=A--11

AAAA--1 1 =I =I → A→ A--1 1 은 은 AA 의 역행렬 의 역행렬 MATLABMATLAB 에서 에서 AA 의 역행렬은 의 역행렬은 A^A^--11 또는또는 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 의 역행렬의 역행렬ansans = = 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--11=I=Ians = ans = 1.0000 0.0000 0.00001.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.55 ee--1717

Page 11: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 11/35

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

행렬 행렬 AA 의 의 determinantdeterminant 는 는 |A||A| 로 표시하며로 표시하며 , MATLAB , MATLAB 명령어 명령어 det(A)det(A) 에 의해 구한다에 의해 구한다 . .

122133113223322113312312332211

333231

232221

131211

211222112221

1211

aaaaaaaaaaaaaaa

aaa

aaa

aaa

aaaaaa

aa

B

A

>> >> AA= [ 1 2 0; 0 1 1; 3 0 1]; = [ 1 2 0; 0 1 1; 3 0 1]; det(det(A)A)ansans = = 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)ansans = = 33

113

110

121

103

110

021

B

A

Page 12: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 12/35

행렬 나눗셈행렬 나눗셈 (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--11 을 곱하면을 곱하면 ,,

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

즉즉 , Ax = b, Ax = b 의 해는 의 해는 x = Ax = A--11bb 이다이다 . MATLAB . MATLAB 명령어로 명령어로 x = inv(A)*bx = inv(A)*b 이이다다 ..

2)2) MATLABMATLAB 에서 에서 left division ‘\’left division ‘\’ 를 이용하여 구할 수도 있다를 이용하여 구할 수도 있다 . . 즉즉 , , x = A\bx = A\b.. 위의 두 방법은 같은 결과를 주는 것처럼 보이지만위의 두 방법은 같은 결과를 주는 것처럼 보이지만 , MATLAB, MATLAB 이 이 xx 를 를

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

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

Page 13: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 13/35

Right division /Right division / 행 벡터 행 벡터 vv 와 와 ww 에 대해에 대해 , , 선형방정식 선형방정식 vA = wvA = w 에서 에서 vv 를 구하려면를 구하려면

vAvAAA--11 = w = wAA--11 → v→ vII = v = w = v = wAA--11 or v = wor v = w/A/A

즉즉 , , vA = w vA = w 의 해는의 해는 v = w/A v = w/A oror wA wA--11 이다이다 .. Ax=b

>> 4/8>> 4/8ans = 0.5000ans = 0.5000>> 4\8>> 4\8ans = 2ans = 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 * bansans = = --1.80491.8049 0.29270.2927 2.63412.6341

>> x2>> x2 = inv(A)*b = inv(A)*bx2 =x2 = --1.80491.8049 0.29270.2927 2.63412.6341>> x3 = A\b >> x3 = A\b % % 가우스 가우스 소거법소거법x3 = x3 = --1.80491.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)

Page 14: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 14/35

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

다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라 ..4x – 2y + 6z = 84x – 2y + 6z = 82x + 8y + 2z = 42x + 8y + 2z = 46x + 10y + 3z = 06x + 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/Cxx = -1.8049 0.2927 2.6341 = -1.8049 0.2927 2.6341

Ax = bAx = b→ → AA--11Ax=AAx=A--11bb→→ x=A\bx=A\b

xC=w xC=w → → xCCxCC--11=wC=wC--11

→→ x = w/Cx = w/C

Page 15: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 15/35

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

행렬에 대한 곱셈과 나눗셈은 선형대수의 법칙을 따른다행렬에 대한 곱셈과 나눗셈은 선형대수의 법칙을 따른다 . . 그러나 두 그러나 두 행렬의 원소와 원소 사이의 연산이 필요한 경우가 많다행렬의 원소와 원소 사이의 연산이 필요한 경우가 많다 . . 덧셈과 덧셈과 뺄 셈 은 원 래 행 렬 의 같 은 위 치 의 원 소 끼 리 더 하 거 나 빼 므 로 뺄 셈 은 원 래 행 렬 의 같 은 위 치 의 원 소 끼 리 더 하 거 나 빼 므 로 원칙적으로 원소별 연산에 해당된다원칙적으로 원소별 연산에 해당된다 . .

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

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

두 벡터 두 벡터 vv 와 와 ww 가 각각 가 각각 v=[v=[vv11, , vv22, , vv33], w=[], w=[ww11 ww22 ww33]] 이라면이라면 ,,

vv.*.*w = [ w = [ vv11ww11, , vv22ww22, , vv33ww3 3 ]] vv././w = [ w = [ vv11//ww11, , vv22//ww22, , vv33//ww3 3 ]]

vv.^.^w = [ w = [ vv11ww11, , vv22

ww22, , vv33ww33

]]

두 행렬 두 행렬 AA 와 와 BB 에 대해에 대해11 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

Page 16: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 16/35

///

///

///

./ /.

333332323131

232322222121

131312121111

333231

232221

131211

333231

232221

131211

bababa

bababa

bababa

bbb

bbb

bbb

aaa

aaa

aaa

BA

.^

333231

232221

131211

nnn

nnn

nnn

aaa

aaa

aaa

nA >> 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==> mtimesInner matrix dimensions must Inner matrix dimensions must

agree.agree.

723

1041

485

362

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

Page 17: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 17/35

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

원소별 연산은 많은 독립변수에서 함수값을 계산할 때 매우 유용하다원소별 연산은 많은 독립변수에서 함수값을 계산할 때 매우 유용하다 . .

먼저 독립변수의 값들을 벡터로 정의하고 이 벡터를 이용하여 먼저 독립변수의 값들을 벡터로 정의하고 이 벡터를 이용하여 함수값을 원소별 연산을 이용하여 계산한다함수값을 원소별 연산을 이용하여 계산한다 ..

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

2 4 6-10

0

10

20

30

40

50

60

70

x

y

y=2x2 - 5x + 1

1 1.5 2 2.5 3-100

-80

-60

-40

-20

0

20

40

60

x

y

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

>> x = 1:7>> x = 1:7x =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 + 1y =y = -2 -1 4 13 26 43 64-2 -1 4 13 26 43 64

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

yy((xx) = () = (xx33 + 5 + 5xx)/(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)

Page 18: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 18/35

내장함수에서의 배열 사용내장함수에서의 배열 사용 (1/2)(1/2)

MATLABMATLAB 의 내장함수는 입력인자가 배열인 경우 함수에 의해 정의된 의 내장함수는 입력인자가 배열인 경우 함수에 의해 정의된 연산이 배열의 각 원소에 대해 수행되도록 만들어져 있으므로연산이 배열의 각 원소에 대해 수행되도록 만들어져 있으므로 , , 함수를 함수를 원소별로 적용하는 것으로 생각할 수 있다원소별로 적용하는 것으로 생각할 수 있다 . . 따라서 출력은 입력인자 따라서 출력은 입력인자 배열의 각 원소를 함수에 대입하여 얻은 결과를 해당 원소로 갖는 배열의 각 원소를 함수에 대입하여 얻은 결과를 해당 원소로 갖는 배열이다배열이다 ..

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 13Columns 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 7Columns 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 13Columns 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

Page 19: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 19/35

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)

Page 20: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 20/35

배열 해석용 내장함수배열 해석용 내장함수 (1/2)(1/2)

함수 설명 예

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

>> A=[5,9,2,4];>> A=[5,9,2,4];>> mean(A)>> mean(A)ans = 5ans = 5

C=max(A)C=max(A) AA 가 벡터이면가 벡터이면 , C, C 는 는 AA 에서 가장 큰 원소이에서 가장 큰 원소이다다 . 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 = 11C = 11

[d,n]=max(x)[d,n]=max(x) AA 가 벡터이면가 벡터이면 , d, d 는 는 AA 에서 가장 큰 원소이며 에서 가장 큰 원소이며 nn 은 원소의 위치이다은 원소의 위치이다 (( 최대값이 여러 개인 최대값이 여러 개인 경우에는 첫 번째 최대값의 위치경우에는 첫 번째 최대값의 위치 ).).

>>[d,n]=max(A)>>[d,n]=max(A)d = 11d = 11n = 5n = 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 = 20ans = 20

Page 21: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 21/35

함수 설명 예

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) 두 벡 터 두 벡 터 aa 와 와 bb 의 스 칼 라 곱의 스 칼 라 곱 (( 내 적내 적 )) 을 을 계산한다계산한다 . . 벡터는 각각 행벡터 또는 열벡터가 벡터는 각각 행벡터 또는 열벡터가 될 수 있다될 수 있다 . .

>> a=[1,2,3]; b=[3,4,5];>> dot(a, b), cross(a, b)ans = 26ans = -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)

Page 22: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 22/35

많은 공학 응용에서 많은 난수들의 집합을 필요로 하는 경우가 종종 많은 공학 응용에서 많은 난수들의 집합을 필요로 하는 경우가 종종 있다있다 . MATLAB. MATLAB 은 난수를 생성하는 내장함수로 은 난수를 생성하는 내장함수로 rand, randnrand, randn 이 있다이 있다 ..

rand rand 명령어명령어 : 0: 0 과 과 1 1 사이에서 균일하게 분포된 난수들을 생성시킴사이에서 균일하게 분포된 난수들을 생성시킴 rand : rand : 한 개의 난수 생성한 개의 난수 생성 , , rand(1, n) : n rand(1, n) : n 개의 난수 행벡터 개의 난수 행벡터

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

생성생성 randperm randperm 명령어명령어 : 1: 1 에서 에서 nn 까지의 정수의 무작위 순열까지의 정수의 무작위 순열 (random (random

permutation)permutation) 으로 구성된 으로 구성된 11nn 의 행벡터를 생성함의 행벡터를 생성함>> 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.47330.8225 3.2032 9.3626 9.4733

Random number(Random number( 난수난수 )) 의 생성의 생성(1/2)(1/2)

Page 23: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 23/35

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

예예 ) 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 명령어명령어 : : 평균이 평균이 00 이고 표준편차가 이고 표준편차가 11 인 정규분포 인 정규분포 난수들의 생성난수들의 생성 randn(n) : nrandn(n) : nn n 크기의 난수행렬크기의 난수행렬 , rand(m, n) : m, rand(m, n) : mn 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)

Page 24: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 24/35

그림과 같이 고리에 가해지는 세 힘의 합력그림과 같이 고리에 가해지는 세 힘의 합력 (( 등가 힘등가 힘 )) 을 구하라을 구하라 ..

2 2

cos sin (cos sin )

where , tan

x x

yx y

x

F F F F F

FF F F

F

F i j i j i j30°

20°

143°

F1=400 N

F2=500 NFF33=700 N=700 N

합력합력 (( 등가 힘등가 힘 )) 은 고리에 가해지는 세 힘을 모두 더하여 구한다은 고리에 가해지는 세 힘을 모두 더하여 구한다 . . 다음 세 다음 세 단계에 따라 해를 구한다단계에 따라 해를 구한다 ..

• 각 힘을 두 원소의 벡터로 나타낸다각 힘을 두 원소의 벡터로 나타낸다 . . 벡터의 첫 번째 원소는 힘 벡터의 벡터의 첫 번째 원소는 힘 벡터의 x x

축 성분이고 두 번째 원소는 힘 벡터의 축 성분이고 두 번째 원소는 힘 벡터의 y y 축 성분이다축 성분이다 ..

• 세 벡터를 더하여 등가 힘을 벡터 형태로 구한다세 벡터를 더하여 등가 힘을 벡터 형태로 구한다 ..

• 등가 힘의 크기와 방향을 구한다등가 힘의 크기와 방향을 구한다 ..

풀이풀이

직각좌표계에서 힘 벡터 직각좌표계에서 힘 벡터 FF 는 다음과 같이 쓸 수 는 다음과 같이 쓸 수 있다있다 ::

예제 예제 3.2 3.2 등가 힘의 계산등가 힘의 계산 (1/2)(1/2)

Page 25: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 25/35

스 크 립 트 파 일 스 크 립 트 파 일 Ch3Ex3_2.mCh3Ex3_2.m

64.95°

F1=400 N

F2=500 N

FF33=700 N=700 N FFtottot=589.98 N=589.98 N

명 령 어 창 에 서 의 프 로 그 램 명 령 어 창 에 서 의 프 로 그 램 실행실행

예제 예제 3.2 3.2 등가 힘의 계산등가 힘의 계산 (2/2)(2/2)

Page 26: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 26/35

예제 예제 3.3 3.3 마찰 실험마찰 실험 (( 원소별 계산원소별 계산 ))

시험 번호시험 번호 11 22 33 44 55 66

질량 질량 m m (kg)(kg) 22 44 55 1010 2020 5050

힘 힘 F F (N)(N) 12.512.5 23.523.5 3030 6161 117117 294294

실험에서 마찰 계수 실험에서 마찰 계수 μμ 는 질량 는 질량 mm 을 이동시키는데 필요한 힘 을 이동시키는데 필요한 힘 FF 를 측정하면 를 측정하면 다음 식에 의해 구할 수 있다다음 식에 의해 구할 수 있다 ::

2/ ( ) ( 9.81 m/s ) F mg g Fmm

>> m=[2 4 5 10 20 50]; F = [12.5, 23.5, 30, 61, 117, 294];>> m=[2 4 5 10 20 50]; F = [12.5, 23.5, 30, 61, 117, 294];>> mu=F./(m*9.81)>> mu=F./(m*9.81)mu =mu = 0.6371 0.5989 0.6116 0.6218 0.5963 0.59940.6371 0.5989 0.6116 0.6218 0.5963 0.5994>> mu_ave = mean(mu)>> mu_ave = mean(mu)mu_ave =mu_ave = 0.61090.6109

mm 과 과 FF 의 의 값을 벡터로 값을 벡터로 입력함입력함

원 소 별 연 산 으 로 원 소 별 연 산 으 로 각 시 험 에 대 한 각 시 험 에 대 한 mumu 의 값을 계산함의 값을 계산함

여섯 번의 시험을 통한 여섯 번의 시험을 통한 FF 에 대한 측정 결과가 다음 표로 에 대한 측정 결과가 다음 표로 주어졌다주어졌다 . . 각 시험에 대한 마찰계수를 구하고각 시험에 대한 마찰계수를 구하고 , , 모든 시험 모든 시험 결과에 대한 마찰계수의 평균을 구하라결과에 대한 마찰계수의 평균을 구하라 ..

Page 27: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 27/35

예제 예제 3.4 3.4 전기저항회로 분석전기저항회로 분석 (1/3)(1/3)

다음 전기회로에 대해 다음 전기회로에 대해 KirchhoffKirchhoff 의 전압법칙에 의한 의 전압법칙에 의한 망전류 방법망전류 방법 (mesh current method)(mesh current method) 을 이용하여 각 을 이용하여 각 저항에서의 전류를 구하라저항에서의 전류를 구하라 ..

VV11 = 20 V, = 20 V, VV22 = 12 V, = 12 V, VV33 = 40 V = 40 V

RR11 = 18 = 18 , , RR22 = 10 = 10 , , RR33 = 16 = 16

RR44 = 6 = 6 , , RR55 = 15 = 15 , , RR66 = 8 = 8

RR77 = 12 = 12 , , RR88 = 14 = 14

풀이 풀이 ::

Kirchhoff Kirchhoff 전압법칙전압법칙 (voltage law)(voltage law) : : 폐회로상의 전압을 모두 더하면 폐회로상의 전압을 모두 더하면 00 이다이다 . .

각 망에 전류 각 망에 전류 ii11, , ii22, , ii33, , ii44 를 할당한 후를 할당한 후 , , Kirchhoff Kirchhoff 전압 제전압 제 22 법칙을 각 망에 법칙을 각 망에 적용하면적용하면 , , 전류에 대한 선형 연립방정식 전류에 대한 선형 연립방정식 44 개를 얻을 수 있으며개를 얻을 수 있으며 , , 이 선형 이 선형 연립방정식으로부터 망전류의 값을 구할 수 있다연립방정식으로부터 망전류의 값을 구할 수 있다 . . 두 망에 모두 속해 있는 두 망에 모두 속해 있는 저항을 흐르는 전류는 각 망에서의 전류를 더한 값과 같다저항을 흐르는 전류는 각 망에서의 전류를 더한 값과 같다 . . 모든 전류는 모든 전류는 시계방향으로 흐른다고 가정한다시계방향으로 흐른다고 가정한다 . .

각 망에 대한 식에서각 망에 대한 식에서 , , 전압원의 부호는 전류가 전압원의 부호는 전류가 -- 극 쪽으로 흐를 때 양극 쪽으로 흐를 때 양 (+)(+) 이며이며 , , 저항의 전압 부호는 망전류 방향의 전류에 대해 음저항의 전압 부호는 망전류 방향의 전류에 대해 음 ((--)) 이다이다 . .

Page 28: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 28/35

네 망 에 대 해 전 압 제네 망 에 대 해 전 압 제 22 법 칙 을 적 용 하 여 얻 은 법 칙 을 적 용 하 여 얻 은 선형방정식선형방정식

1 1 1 3 1 3 2 1 2

5 2 2 2 1 4 2 3 7 2 4

2 6 3 4 4 3 2 3 3 1

3 8 4 7 4 2 6 4 3

0

0

0

0

V R i R i i R i i

R i R i i R i i R i i

V R i i R i i R i i

V R i R i i R i i

위 의 연 립 방 정 식 을 행 렬 형 태 로 위 의 연 립 방 정 식 을 행 렬 형 태 로 나타낸다나타낸다 ..

1 2 3 2 3 11

2 2 4 5 7 4 7 2

3 4 3 4 6 6 23

7 6 6 7 8 34

0

0

0

R R R R R Vi

R R R R R R R i

R R R R R R Vi

R R R R R Vi

예제 예제 3.4 3.4 전기저항회로 분석전기저항회로 분석 (2/3)(2/3)

Page 29: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 29/35

스 크 립 트 파 일 스 크 립 트 파 일 Ch3Ex3_4.mCh3Ex3_4.m 명 령 어 창 에 서 의 실 행 명 령 어 창 에 서 의 실 행

결과결과

1

2

3

4

i

i

i

i

예제 예제 3.4 3.4 전기저항회로 분석전기저항회로 분석 (3/3)(3/3)

Page 30: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 30/35

기차와 자동차가 교차로로 가고 있다기차와 자동차가 교차로로 가고 있다 . . tt=0=0 에서 기차는 에서 기차는 교차로의 남쪽 교차로의 남쪽 400 ft 400 ft 지점에서 지점에서 54 mi/h54 mi/h 의 정속으로 의 정속으로 북쪽으로 달리고 있으며북쪽으로 달리고 있으며 ,, 동시에 자동차는 교차로의 동시에 자동차는 교차로의 서쪽 서쪽 200 ft 200 ft 지점에서 지점에서 28 mi/h28 mi/h 의 속력과 의 속력과 4 ft/s4 ft/s22 의 의 가속도로 동쪽으로 달리고 있다가속도로 동쪽으로 달리고 있다 . . 이후 이후 1010 초 동안에 초 동안에 대해 매초마다 대해 매초마다 기차와 자동차의 위치기차와 자동차의 위치 , , 둘 사이의 거리둘 사이의 거리 , , 자동차에 대한 기차의 상대 속력을 구하라자동차에 대한 기차의 상대 속력을 구하라 .. 결과는 결과는 11×11×66 의 행렬로 생성하여 출력한다의 행렬로 생성하여 출력한다 .. 행렬의 각 행에서 첫째 행렬의 각 행에서 첫째 원소는 시간원소는 시간 , , 나머지 다섯 원소는 각각 기차의 위치나머지 다섯 원소는 각각 기차의 위치 , , 자동차의 위치자동차의 위치 , , 기차와 자동차 사이의 거리기차와 자동차 사이의 거리 , , 자동차의 자동차의 속력속력 , , 자동차에 대한 기차의 상대 속력이다자동차에 대한 기차의 상대 속력이다 ..

0

20

400

1200

(

(2

)

)

tra

car

n

car

i

x v t

y

t

v

a

t

자동차

풀이 풀이 ::

일정한 가속도로 직선을 따라 움직이는 기차와 자동차의 일정한 가속도로 직선을 따라 움직이는 기차와 자동차의 위치위치 ::

기차와 자동차 사이의 거기차와 자동차 사이의 거리리 ::

2 2d x y

vv=54 mi/h=54 mi/h

xx

yyvv=28 mi/h=28 mi/ha=4 ft/sa=4 ft/s22

400 ft400 ft200 ft200 ft

예제 예제 3.5 3.5 두 질점의 운동두 질점의 운동 (1/3)(1/3)

Page 31: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 31/35

기차의 속도는 일정하며기차의 속도는 일정하며 , , 벡터 기호로는 벡터 기호로는 vvtrain train = = vv0 0 traintrain jj 이다이다 . . 자동차는 가속하고 자동차는 가속하고 있으며 시간 있으며 시간 tt 에서의 속도는 에서의 속도는 vvcarcar=(=(vv0 0 car car + + aacar car tt))ii 이다이다 . . 자동차에 대한 기차의 자동차에 대한 기차의 상대속도는 상대속도는 vvt/c t/c = = vvtraintrain – – vvcarcar = ( = (vvocar ocar + + aacar car tt))i i + + vv0 0 traintrain jj 이며이며 , , 상대속도의 크기는 상대속도의 크기는 벡터의 길이와 같다벡터의 길이와 같다 ..

예제 예제 3.5 3.5 두 질점의 운동두 질점의 운동 (2/3)(2/3)

Page 32: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 32/35

스크립트 파일을 명령창에서 실행하면 다음 결과를 얻는다스크립트 파일을 명령창에서 실행하면 다음 결과를 얻는다 ::

시간시간

기차 위치기차 위치 (ft)(ft)

차 위치차 위치 (ft)(ft)차와 기차 사이의 거리차와 기차 사이의 거리 (ft)(ft)

차에 대한 기차의 상대속력차에 대한 기차의 상대속력 (ft/s)(ft/s)

예제 예제 3.5 3.5 두 질점의 운동두 질점의 운동 (3/3)(3/3)

Page 33: MATLAB 개요와 응용 3 장 배열 연산

MATLAB HCH

3 장 배열과 행렬 33/35

33 장 강의록 끝장 강의록 끝

3 장 끝