Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
CH. 3 연산연산
학습 목표학습 목표
배열의 산술 연산, 관계 연산, 논리 연산 그리고
내장함수를 이용한 연산을 이해한다.1
MATLAB의 배열 연산을 위한 각각의 연산자2 를 이해하고 적용한다.2
배열을 이용하는 응용 문제에 적용한다.3
MATLAB PROGRAMMING CH. 3 2
매트랩에서 제공하는 연산매트랩에서 제공하는 연산
① 산술 연산② 관계 연산② 관계 연산③ 논리 연산④ 내장 함수를 이용한 연산④ 내장 함수를 이용한 연산
MATLAB PROGRAMMING CH. 3 3
3.1 배열의 산술 연산3.1 배열의 산술 연산
산술연산 배열을 이용한 덧셈, 뺄셈, 곱셈, 나눗셈, 거듭제곱
배열의 산술 연산은 연산에 참여하는 배열의 종류에 따라
① 스칼라(상수 또는 스칼라 변수)와 스칼라의 연산② 배열과 스칼라의 연산③ 배열과 배열의 연산배 과 배 의
스칼라 : 크기가 1x1인 배열 벡터: 행벡터- 크기가 1xn인 배열 열 벡터- 크기가 nX1 인 배열 벡터: 행벡터 크기가 1xn인 배열, 열 벡터 크기가 nX1 인 배열 배열: 크기가 n x m 인 배열, 또는 다차원 배열
*편의상 벡터가 배열에 포함되는 것으로 함.
MATLAB PROGRAMMING CH. 3 4
편의상 벡터가 배열에 함되는 것 함.
배열의 산술 연산은 연산 방법에 따라
① 원소별 연산: 배열의 같은 위치에 있는 원소들끼리 연산② 선형대수적인 배열의 연산② 선형대수적인 배열의 연산
MATLAB PROGRAMMING CH. 3 5
3.1.1 스칼라와 스칼라의 산술 연산스칼라와 스칼라의 산술 연산
MATLAB PROGRAMMING CH. 3 6
(예제 3-1) 명령어 창에서 다음의 스칼라와 스칼라의 산술 연산을 실행해 보자명령어 창에서 다음의 스칼라와 스칼라의 산술 연산을 실행해 보자.
MATLAB PROGRAMMING CH. 3 7
3.1.2 배열과 스칼라의 산술 연산
배열 A와 스칼라 c 의 산술 연산
MATLAB PROGRAMMING CH. 3 8
( 예제 3-2 ) 명령어 창에서 다음의 배열과 스칼라의 덧셈(+)과 뺄셈(-)을 실행해 보고 교환법칙이 성립함을 확인하자칙이 성립함을 확인하자.
MATLAB PROGRAMMING CH. 3 9
(예제 3-3) 명령어 창에서 다음의 배열과 스칼라의 곱셈(.*)을 실행하여 교환법칙이 성립함을확인해 보자.
MATLAB PROGRAMMING CH. 3 10
(예제 3-4) 명령어 창에서 다음의 배열과 스칼라의 오른쪽 나눗셈(./)과 왼쪽 나눗셈(.\)을 실행해 자행해 보자.
MATLAB PROGRAMMING CH. 3 11
(예제 3-5) 명령어 창에서 다음의 배열과 스칼라 거듭제곱을 실행해 보자.
MATLAB PROGRAMMING CH. 3 12
< 배열과 스칼라 연산에서 대수적 연산자 >
- 덧셈(+)과 뺄셈(-)
덧셈과 뺄셈은 배열의 대수적 연산에서도 같은 위치의 원소들 끼리의 연산이기
때문에 대수적 연산이나 원소별 연산이나 구분없이 사용되고 교환법칙이 성립
한다.
- 원소별 곱셈(.*) 과 대수적 곱셈(*)
대수적 곱셈(*)은 배열과 스칼라의 연산에서는 원소별 곱셈(.*)과 동일한 의미로
사용되고 교환법칙이 성립한다.
배열 A와 스칼라 c 에 대해
A .* c = c .* A = A * c = c * A
MATLAB PROGRAMMING CH. 3 13
- 원소별 오른쪽 나눗셈(./) 과 대수적 오른쪽 나눗셈(/)
대수적 오른쪽 나눗셈 (/)은 배열을 스칼라로 나누는 경우는 동일한 의미로 사
용되지만 스칼라를 배열로 나누는 경우는 정의되지 않는다, 즉 c / A를 실행하
면 에러가 발생한다.
A ./ c = A / c c ./ A ≠ A / c배열 A와 스칼라 c 에 대해
- 원소별 왼쪽 나눗셈(.\ 과 대수적 왼쪽 나눗셈(\)
A ./ c A / c c ./ A ≠ A / c배열 A와 스칼라 c 에 대해
대수적 왼쪽 나눗셈 (\)은 스칼라를 배열로 나누는 경우는 동일한 의미로 사용되지
만 배열을 스칼라로 나누는 경우는 정의되지 않는다, 즉 A \ c를 실행하면 에러가
발생한다.
c ₩ A = c ₩ A A ₩ c ≠ A ₩ c배열 A와 스칼라 c 에 대해 c .₩ A = c ₩ A A .₩ c ≠ A ₩ c배열 A와 스칼라 c 에 대해
MATLAB PROGRAMMING CH. 3 14
- 원소별 거듭 제곱(.^) 과 대수적 거듭제곱(^)
오른쪽 나눗셈이나 왼쪽 나눗셈에 대해서 원소별 연산자와 대수적 연산자가 제한
적인 경우에 같은 의미로 사용되었지만 거듭제곱에서는 대수적 거듭제곱과 원소
별 거듭 제곱이 동일하지 않다.
배열 A와 스칼라 c 에 대해배열 와 칼라 에 대해
A.^c ≠ A^c , c.^A ≠ c^A
MATLAB PROGRAMMING CH. 3 15
(예제 3-6) 명령어 창에서 다음의 원소별 곱셈과 대수적 곱셈을 실행하여 결과가 동일한 지를확인해 보자확인해 보자.
MATLAB PROGRAMMING CH. 3 16
(예제 3-7)명령어 창에서 다음의 원소별 오른쪽 나눗셈과 대수적 오른쪽 나눗셈을 실행하여결과를 확인해 보자결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 17
(예제 3-8)명령어 창에서 다음의 원소별 왼쪽 나눗셈과 대수적 왼쪽 나눗셈을 실행하여 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 18
(예제 3-9)명령어 창에서 다음의 원소별 거듭제곱과 대수적 거듭제곱을 실행하여 결과를확인해 보자확인해 보자.
MATLAB PROGRAMMING CH. 3 19
3.1.3 배열과 배열의 연산
(1). 원소별 연산
두 배열 A와 B에 대해
MATLAB PROGRAMMING CH. 3 20
(예제 3-10) 명령어 창에서 다음의 배열 사이의 원소별 연산을 실행해 결과를확인해 보자.
MATLAB PROGRAMMING CH. 3 21
(예제 3-11) 명령어 창에서 다음의 배열 사이의 원소별 나눗셈 연산을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 22
(예제 3-12) 명령어 창에서 다음의 배열 사이의 원소별 거듭제곱 연산을 실행해 결(예제 3 12) 명령어 창에서 다음의 배열 사이의 원소별 거듭제곱 연산을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 23
(예제 3-13) 배열의 원소별 연산을 이용해서 다음의 주어진 정의역에 대한 함수값을 구하시오.
,
(풀이)(풀이)
MATLAB PROGRAMMING CH. 3 24
(2) 대수적 연산(2). 대수적 연산
● 덧셈(+)과 뺄셈(-)
두 배열 A와 B에 대해
● 곱셈 (*)
두 배열 A와 B에 대해
MATLAB PROGRAMMING CH. 3 25
(예제 3-14) 명령어 창에서 다음의 배열의 대수적 곱셈을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 26
● 나눗셈 (왼쪽 나눗셈 \ 과 오른쪽 나눗셈 /)
왼쪽 나눗셈(\)
라고 정의하면
MATLAB PROGRAMMING CH. 3 27
(예제 3-15) 앞의 행렬식을 왼쪽 나눗셈을 이용해서 계산해 보자.
MATLAB PROGRAMMING CH. 3 28
오른쪽 나눗셈(/)
라고 정의하면
MATLAB PROGRAMMING CH. 3 29
(예제 3-16)앞의 행렬식을 배열의 오른쪽 나눗셈을 이용해서 계산해보자.
MATLAB PROGRAMMING CH. 3 30
● 거듭제곱 (^)
n x n 배열 A에 대한 k 거듭제곱은 다음과 같이 정의된다n x n 배열 A에 대한 k 거듭제곱은 다음과 같이 정의된다.
(예제 3-17)명령어 창에서 다음의 배열의 거듭제곱을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 31
3.2 관계 연산
관계연산 두 값의 크거나 작음 또는 같거나 다름 등의 관계를비교하는 연산비교하는 연산
관계 연산자 의미 결과
x < y x가 y보다 작다.
참인 경우: 1
x > y x가 y보다 크다.
x <= y x가 y보다 작거나 같다.
거짓인 경우: 0x >= y x가 y보다 크거나 같다.
x == y x가 y와 같다.
x ~= y x가 y와 같지 않다.
MATLAB PROGRAMMING CH. 3 32
관계 연산의 피연산자 형식과 결과의 형식관계 연산의 피연산자 형식과 결과의 형식
MATLAB PROGRAMMING CH. 3 33
(예제 3-18)명령어 창에서 다음의 관계 연산을 수행하여 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 34
MATLAB PROGRAMMING CH. 3 35
3 3 논리 연산3.3 논리 연산
논리연산 참 또는 거짓을 나타내는 논리 데이터에 대해 수행되는 연산
MATLAB PROGRAMMING CH. 3 36
논리연산의 피연산자 형식과 결과의 형식
MATLAB PROGRAMMING CH. 3 37
논리 연산의 연산자
MATLAB PROGRAMMING CH. 3 38
(예제 3-19)예제명령어 창에서 다음의 논리 연산을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 39
예제 3-21)명령어 창에서 다음의 숫자 데이터와 논리 데이터를 이용하여 논리 연산자&& & || |을 실행해 결과를 확인해 보자&&, &, ||, |을 실행해 결과를 확인해 보자.
MATLAB PROGRAMMING CH. 3 40
MATLAB PROGRAMMING CH. 3 41
3.4 매트랩 내장함수를 이용한 연산
● 행렬식과 역행렬 관련 내장함수
- det(A) 내장함수 det()는 정사각 행렬에 대해
- inv(A)내장 함수 int()는 정사각행내 수 사각 에 대해
서만 정의되는 함수로서 행렬 A의 행렬식을 리턴한다.
내 수 사각렬 A의 역행렬을 리턴한다.
>> A=[5 2 8; 3 7 1; 11 5 6];>> det(A)
325
>> A=[5 2 8; 3 7 1; 11 5 6];>> inv(A)
ans = -325 ans =-0.1138 -0.0862 0.16620.0215 0.1785 -0.05850 1908 0 0092 0 08920.1908 0.0092 -0.0892
MATLAB PROGRAMMING CH. 3 42
● 통계 관련 내장함수
- max(A)내장 함수 max()는• A가 벡터일 때, A의 최대 원소를 리턴하거나 또는 A의 최대원소와A가 벡터일 때, A의 최대 원소를 리턴하거나 또는 A의 최대원소와
그것의 위치를 리턴한다.
• A가 2차원 배열일 때, A의 각 열의 최대원소를 나타내는 행벡터를가 차원 배열일 때, 의 각 열의 최대원 를 나타내는 행벡터를리턴한다.
>> A=[1 8 2 19 4 7];>> max(A)ans =19
>> A=[3,4; 9,10];>> max(A)ans = 9 10
>> [v p]=max(A)v = 19 p = 4
ans 9 10
v는 최대값, p는 최대값의 위치
벡터일때 2차원 배열일때
MATLAB PROGRAMMING CH. 3 43
- min(A)내장 함수 min()는• A가 벡터일 때, A의 최소 원소를 리턴하거나 또는 A의 최소원소와 그것의 위치
를 리턴한다.
A가 2차원 배열일 때 A의 각 열의 최소원소를 나타내는 행벡터를 리턴한다• A가 2차원 배열일 때, A의 각 열의 최소원소를 나타내는 행벡터를 리턴한다.
>> A=[1 8 2 19 4 7];>> min(A)
>> A=[3,4; 9,10];>> min(A)
ans = 1>> [v p]=min(A)v = 1 p = 1
ans = 3 4
벡터일때 2차원 배열일때
v는 최소값 p는 최소값의 위치v는 최소값, p는 최소값의 위치
MATLAB PROGRAMMING CH. 3 44
- sum(A)함수 sum()은• A가 벡터일 때, A의 각 원소의 합을 리턴한다.A가 벡터일 때, A의 각 원소의 합을 리턴한다.• A가 2차원 배열일 때, A의 각 열의 모든 원소의 합을 나타내는 행벡터를 리
턴한다.
>> A=[1 8 2 19 4 7];>> sum(A)ans = 41
>> A=[3,4;9,10];>> sum(A)ans = 12 14
벡터일때 2차원 배열일때
- mean(A)내장 함수 mean()은• A가 벡터일 때 벡터 A의 평균값을 리턴한다A가 벡터일 때, 벡터 A의 평균값을 리턴한다. • A가 2차원 배열일 때, 각 열벡터의 평균값을 가지는 행벡터를 리턴한다.
>> A=[1 8 2 19 4 7]; >> A=[3:4;9:10];[ ]>> mean(A)ans = 6.8333
[ ]>> mean(A)ans =6 7
MATLAB PROGRAMMING CH. 3 45
벡터일때 2차원 배열일때
- median(A)내장 함수 median()은• A가 벡터일 때, A의 중앙값을 리턴한다.가 벡터일 때, 의 중앙값을 리턴한다• A가 2차원 배열일 때, A의 각 열의 중앙값을 가지는 행벡터를 리턴한다.
>> A=[1 8 2 19 4 7]; >> A=[3:4;9:10];A [ ]>> median(A)ans =5.5000
[ ]>> mean(A)ans =6 7
벡터일때 2차원 배열일때
td(A)- std(A)내장 함수 std()은• A가 벡터일 때, A의 표준편차를 리턴한다.• A가 2차원 배열일 때 A의 각 열의 표준편차를 가지는 행벡터를 리턴한다• A가 2차원 배열일 때, A의 각 열의 표준편차를 가지는 행벡터를 리턴한다.
>> A=[1 8 2 19 4 7];>> std(A)
>> A=[5 2 8; 3 7 1; 11 5 6];>> std(A)( )
ans = 6.5549( )
ans =4.1633 2.5166 3.6056
MATLAB PROGRAMMING CH. 3 46
벡터일때 2차원 배열일때
● 내적 및 외적 관련 내장함수
- dot(A, B)내장 함수 d t()는
- cross(A, B)내장 함수 ()는내장 함수 dot()는
같은 길이를 가지는 두 행벡터 A와 B에 대한 내적의 결과를 리턴한다
내장 함수 cross()는길이가 3인 두 벡터 A와 B의 외적의 결과를 리턴한다.
한다.
>> A=[ 2 -5 8]; >> A=[4 -2 7];>> B=[7 4 3];>> dot(A,B)ans = 18
[ ]>> B=[1 5 4];>> cross(A,B)ans =-43 -9 22
MATLAB PROGRAMMING CH. 3 47
● 정렬관련 내장함수
- sort(A)내장 함수 sort()는• A가 벡터일 때, 벡터A의 원소들을 오름차순으로 정렬한다.• A가 2차원 배열일 때, 행렬 A의 각 열의 모든 원소들을 오름차순으로 정렬한다.
>> A=[1 8 2 19 4 7];>> sort(A)ans =
>> A=[5 9; 29 4];>> sort(A)ans =
1 2 4 7 8 19 5 429 9
벡터일때 2차원 배열일때벡터일때 2차원 배열일때
MATLAB PROGRAMMING CH. 3 48
공학 예제 1.
MATLAB PROGRAMMING CH. 3 49
( 풀이 ) 각각의 풍속에 대해 체감온도를 계산하기 위해서 기온 T는 스칼라 변수로 정의하고 풍속 V는 6개의 풍속값을 가져야 함으로 행벡터로 정의한다. 체감온도T_real을 위의 수식을 이용하여 명령어 창에서 다음과 같이 계산한다.
MATLAB PROGRAMMING CH. 3 50
공학 예제 2.
MATLAB PROGRAMMING CH. 3 51
MATLAB PROGRAMMING CH. 3 52
대해서 정리전류
방정식으로 표현하면
R I VR I V
MATLAB PROGRAMMING CH. 3 53
MATLAB PROGRAMMING CH. 3 54
매트랩의 명령어 창에서 계산매트랩의 명령어 창에서 계산
MATLAB PROGRAMMING CH. 3 55