550 likes | 692 Views
CH. 3 연산. 학습 목표. 1. 2. 3. 매트랩에서 제공하는 연산. ① 산술 연산 ② 관계 연산 ③ 논리 연산 ④ 내장 함수를 이용한 연산. 3.1 배열의 산술 연산. 산술연 산. 배열을 이용한 덧셈 , 뺄셈 , 곱셈 , 나눗셈 , 거듭제곱. 배열의 산술 연산은 연산에 참여하는 배열의 종류에 따라. ① 스칼라 ( 상수 또는 스칼라 변수 ) 와 스칼라의 연산 ② 배열과 스칼라의 연산 ③ 배열과 배열의 연산. 스 칼 라 : 크기가 1x1 인 배열
E N D
학습 목표 1 2 3
매트랩에서 제공하는 연산 ① 산술 연산 ② 관계 연산 ③ 논리 연산 ④ 내장 함수를 이용한 연산
3.1 배열의 산술 연산 산술연산 배열을 이용한 덧셈, 뺄셈, 곱셈, 나눗셈, 거듭제곱 배열의 산술 연산은 연산에 참여하는 배열의 종류에 따라 ① 스칼라(상수 또는 스칼라 변수)와 스칼라의 연산 ② 배열과 스칼라의 연산 ③ 배열과 배열의 연산 • 스칼라 : 크기가 1x1인 배열 • 벡터: 행벡터- 크기가 1xn인 배열, 열 벡터- 크기가 nX1 인 배열 • 배열: 크기가 n x m 인배열, 또는 다차원 배열 • *편의상 벡터가 배열에 포함되는 것으로 함.
배열의 산술 연산은 연산 방법에 따라 ① 원소별 연산: 배열의 같은 위치에 있는 원소들끼리 연산 ② 선형대수적인 배열의 연산
(예제 3-1) 명령어 창에서 다음의 스칼라와 스칼라의 산술 연산을 실행해 보자.
3.1.2 배열과 스칼라의 산술 연산 배열 A와 스칼라 c 의 산술 연산
( 예제 3-2 ) 명령어 창에서 다음의 배열과 스칼라의 덧셈(+)과 뺄셈(-)을 실행해 보고 교환법칙이 성립함을 확인하자.
(예제 3-3) 명령어 창에서 다음의 배열과 스칼라의 곱셈(.*)을 실행하여 교환법칙이 성립함을 확인해 보자.
(예제 3-4) 명령어 창에서 다음의 배열과 스칼라의 오른쪽 나눗셈(./)과 왼쪽 나눗셈(.\)을 실행해 보자.
(예제 3-5) 명령어 창에서 다음의 배열과 스칼라 거듭제곱을 실행해 보자.
< 배열과 스칼라 연산에서 대수적 연산자 > - 덧셈(+)과 뺄셈(-) 덧셈과 뺄셈은 배열의 대수적 연산에서도 같은 위치의 원소들 끼리의 연산이기 때문에 대수적 연산이나 원소별 연산이나 구분없이 사용되고 교환법칙이 성립한다. - 원소별 곱셈(.*) 과 대수적 곱셈(*) 대수적 곱셈(*)은 배열과 스칼라의 연산에서는 원소별 곱셈(.*)과 동일한 의미로 사용되고 교환법칙이 성립한다. 배열 A와 스칼라 c 에대해 A .* c = c .* A = A * c = c * A
- 원소별 오른쪽 나눗셈(./) 과 대수적 오른쪽 나눗셈(/) 대수적 오른쪽 나눗셈 (/)은 배열을 스칼라로 나누는 경우는 동일한 의미로 사용되지만 스칼라를 배열로 나누는 경우는 정의되지 않는다, 즉 c / A를 실행하면 에러가 발생한다. 배열 A와 스칼라 c 에대해 A ./ c = A / c c ./ A ≠ A / c - 원소별 왼쪽 나눗셈(.\ 과 대수적 왼쪽 나눗셈(\) 대수적 왼쪽 나눗셈 (\)은 스칼라를 배열로 나누는 경우는 동일한 의미로 사용되지만 배열을 스칼라로 나누는 경우는 정의되지 않는다, 즉 A \ c를 실행하면 에러가 발생한다. 배열 A와 스칼라 c 에대해 A .\ c ≠ A \ c c .\ A = c \ A
- 원소별 거듭 제곱(.^) 과 대수적 거듭제곱(^) 오른쪽 나눗셈이나 왼쪽 나눗셈에 대해서 원소별 연산자와 대수적 연산자가 제한적인 경우에 같은 의미로 사용되었지만 거듭제곱에서는 대수적 거듭제곱과 원소별 거듭 제곱이 동일하지 않다. 배열 A와 스칼라 c 에대해 A.^c ≠ A^c , c.^A ≠ c^A
(예제 3-6) 명령어 창에서 다음의 원소별 곱셈과 대수적 곱셈을 실행하여 결과가 동일한 지를 확인해 보자.
(예제 3-7) 명령어 창에서 다음의 원소별 오른쪽 나눗셈과 대수적 오른쪽 나눗셈을 실행하여 결과를 확인해 보자.
(예제 3-8) 명령어 창에서 다음의 원소별 왼쪽 나눗셈과 대수적 왼쪽 나눗셈을 실행하여 결과를 확인해 보자.
(예제 3-9) 명령어 창에서 다음의 원소별 거듭제곱과 대수적 거듭제곱을 실행하여 결과를 확인해 보자.
3.1.3 배열과 배열의 연산 (1). 원소별 연산 두 배열 A와 B에대해
(예제 3-10) 명령어 창에서 다음의 배열 사이의 원소별 연산을 실행해 결과를 확인해 보자.
(예제 3-11) 명령어 창에서 다음의 배열 사이의 원소별 나눗셈 연산을 실행해 결과를 확인해 보자.
(예제 3-12) 명령어 창에서 다음의 배열 사이의 원소별 거듭제곱 연산을 실행해 결과를 확인해 보자.
(예제 3-13) 배열의 원소별 연산을 이용해서 다음의 주어진 정의역에 대한 함수값을 구하시오. , (풀이)
(2). 대수적 연산 ● 덧셈(+)과 뺄셈(-) 두 배열 A와 B에 대해 ● 곱셈 (*) 두 배열 A와 B에 대해
(예제 3-14) 명령어 창에서 다음의 배열의 대수적 곱셈을 실행해 결과를 확인해 보자.
● 나눗셈 (왼쪽 나눗셈 \ 과 오른쪽 나눗셈 /) 왼쪽 나눗셈(\) 라고 정의하면
(예제 3-15) 앞의 행렬식을 왼쪽 나눗셈을 이용해서 계산해 보자.
오른쪽 나눗셈(/) 라고 정의하면
(예제 3-16) 앞의 행렬식을 배열의 오른쪽 나눗셈을 이용해서 계산해보자.
● 거듭제곱 (^) n x n배열 A에 대한 k거듭제곱은 다음과 같이 정의된다. (예제 3-17) 명령어 창에서 다음의 배열의 거듭제곱을 실행해 결과를 확인해 보자.
3.2 관계 연산 두 값의 크거나 작음 또는 같거나 다름 등의 관계를 비교하는 연산 관계연산
(예제 3-18) 명령어 창에서 다음의 관계 연산을 수행하여 결과를 확인해 보자.
3.3 논리 연산 참 또는 거짓을 나타내는 논리 데이터에 대해 수행되는 연산 논리연산
(예제 3-19) 명령어 창에서 다음의 논리 연산을 실행해 결과를 확인해 보자.
예제 3-21) 명령어 창에서 다음의 숫자 데이터와 논리 데이터를 이용하여 논리 연산자 &&, &, ||, |을 실행해 결과를 확인해 보자.
3.4 매트랩 내장함수를 이용한 연산 ● 행렬식과 역행렬 관련 내장함수 - det(A) 내장함수 det()는 정사각 행렬에 대해서만 정의되는 함수로서 행렬 A의 행렬식을 리턴한다. - inv(A) 내장 함수 int()는 정사각행렬A의 역행렬을리턴한다. >> A=[5 2 8; 3 7 1; 11 5 6]; >> det(A) ans = -325 >> A=[5 2 8; 3 7 1; 11 5 6]; >> inv(A) ans = -0.1138 -0.0862 0.1662 0.0215 0.1785 -0.0585 0.1908 0.0092 -0.0892
● 통계 관련 내장함수 • - max(A) • 내장 함수 max()는 • A가 벡터일 때, A의 최대 원소를 리턴하거나 또는 A의 최대원소와 그것의 위치를 리턴한다. • A가 2차원 배열일 때, A의 각 열의 최대원소를 나타내는 행벡터를리턴한다. >> A=[1 8 2 19 4 7]; >> max(A) ans =19 >> [v p]=max(A) v = 19 p = 4 >> A=[3,4; 9,10]; >> max(A) ans = 9 10 벡터일때 2차원 배열일때 v는 최대값, p는 최대값의 위치
- min(A) • 내장 함수 min()는 • A가 벡터일 때, A의 최소 원소를 리턴하거나 또는 A의 최소원소와 그것의 위치를 리턴한다. • A가 2차원 배열일 때, A의 각 열의 최소원소를 나타내는 행벡터를리턴한다. >> A=[1 8 2 19 4 7]; >> min(A) ans = 1 >> [v p]=min(A) v = 1 p = 1 >> A=[3,4; 9,10]; >> min(A) ans = 3 4 벡터일때 2차원 배열일때 v는 최소값, p는 최소값의 위치
- sum(A) • 함수 sum()은 • A가 벡터일 때, A의 각 원소의 합을 리턴한다. • A가 2차원 배열일 때, A의 각 열의 모든 원소의 합을 나타내는 행벡터를리턴한다. >> A=[3,4;9,10]; >> sum(A) ans = 12 14 >> A=[1 8 2 19 4 7]; >> sum(A) ans = 41 벡터일때 2차원 배열일때 • - mean(A) • 내장 함수 mean()은 • A가 벡터일 때, 벡터 A의 평균값을 리턴한다. • A가 2차원 배열일 때, 각 열벡터의 평균값을 가지는 행벡터를리턴한다. >> A=[1 8 2 19 4 7]; >> mean(A) ans = 6.8333 >> A=[3:4;9:10]; >> mean(A) ans = 6 7 벡터일때 2차원 배열일때
- median(A) • 내장 함수 median()은 • A가 벡터일 때, A의 중앙값을 리턴한다. • A가 2차원 배열일 때, A의 각 열의 중앙값을 가지는 행벡터를리턴한다. >> A=[3:4;9:10]; >> mean(A) ans = 6 7 >> A=[1 8 2 19 4 7]; >> median(A) ans = 5.5000 벡터일때 2차원 배열일때 • - std(A) • 내장 함수 std()은 • A가 벡터일 때, A의 표준편차를 리턴한다. • A가 2차원 배열일 때, A의 각 열의 표준편차를 가지는 행벡터를리턴한다. >> A=[1 8 2 19 4 7]; >> std(A) ans = 6.5549 >> A=[5 2 8; 3 7 1; 11 5 6]; >> std(A) ans = 4.1633 2.5166 3.6056 벡터일때 2차원 배열일때
● 내적 및 외적 관련 내장함수 - dot(A, B) 내장 함수 dot()는 같은 길이를 가지는 두 행벡터A와 B에 대한 내적의 결과를 리턴한다. - cross(A, B) 내장 함수 cross()는 길이가 3인 두 벡터 A와 B의 외적의 결과를 리턴한다. >> A=[ 2 -5 8]; >> B=[7 4 3]; >> dot(A,B) ans = 18 >> A=[4 -2 7]; >> B=[1 5 4]; >> cross(A,B) ans = -43 -9 22
● 정렬관련 내장함수 • - sort(A) • 내장 함수 sort()는 • A가 벡터일 때, 벡터A의 원소들을 오름차순으로 정렬한다. • A가 2차원 배열일 때, 행렬 A의 각 열의 모든 원소들을 오름차순으로 정렬한다. >> A=[1 8 2 19 4 7]; >> sort(A) ans = 1 2 4 7 8 19 >> A=[5 9; 29 4]; >> sort(A) ans = 5 4 29 9 벡터일때 2차원 배열일때
( 풀이 ) 각각의 풍속에 대해 체감온도를 계산하기 위해서 기온 T는 스칼라 변수로 정의하고 풍속 V는 6개의 풍속값을 가져야 함으로 행벡터로 정의한다. 체감온도 T_real을 위의 수식을 이용하여 명령어 창에서 다음과 같이 계산한다.