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

Slides:



Advertisements
Similar presentations
10-7 부동소수점 (Floating-Point) 계산  컴퓨터에서 숫자를 표기하는 방법  가수 (Fraction) : 부호화된 고정소수점 숫자 지수 (Exponent) : 소수점의 위치를 표시 ( 예 )10 진수 를 표기하면 Fraction Exponent.
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
1.3.1 원의 방정식. 생각해봅시다. SK 텔레콤에서는 중화동에 기지국을 세우려고 한다. 이 기지국은 중화고, 중화우체국, 뚝방에 모두 전파를 보내야 한다. 기지국은 어디에 세워야 할까 ? 중화동의 지도는 다음과 같다 원의 방정식.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
주요 내용 행렬 스칼라, 벡터, 행렬 행렬의 합과 곱 여러가지 행렬들 전치 행렬 정방 행렬 역가능 행렬 역 행렬 행렬식.
4장 배열과 함수 한빛미디어(주).
제 7 장 함수 사용을 통해 엑셀 정복하기.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
공차 및 끼워맞춤.
수치해석 6장 예제문제 환경공학과 천대길.
패턴인식 개론 Ch.3 선형 대수학 - 벡터와 행렬.
부록 1: 행렬대수의 기본개념 1. 기본정의 2. 행렬 연산 전치(transpose) 행렬의 동등(equal)
Chapter 04 C 연산자의 이해.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
CAS (Computer Algebra System) 소개
상관함수 correlation function
Ch4.마디해석법, 메쉬해석법 마디해석법, 초마디 기법, 메쉬해석법, 초메쉬 기법
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
제4장 제어 시스템의 성능.
실험4. 키르히호프의 법칙 실험5. 전압분배회로 실험6. 전지의 내부저항
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
프로그래밍 개요
벡터의 공간 이문현.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
Quiz #7 다음 수들을 합병 정렬과 퀵 정렬 알고리즘을 이용하여 오름 차순으로 정렬하였을 때, 데이터 이동 회수를 각각 구하라. 여러분은 정렬 과정을 단계별로 보이면서 이동 회수를 추적해야 한다. 단, 퀵 정렬시에 피봇으로 배열의 왼쪽 첫 번째 원소를 선택한다. 5.
Metal Forming CAE Lab., Gyeongsang National University
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
4장 기하학적 객체와 변환 - 기하 1장 – 그래픽스 시스템과 모델 2장 – 그래픽스 프로그래밍 3장 – 입력과 상호작용
행렬의 개요 행렬은 수를 원소로 지니는 다차원 배열이다. mn (“m by n”) 행렬은 m개의 행과 n개의 열을 갖는다.
행렬의 개요 행렬은 수를 원소로 지니는 다차원 배열이다. mn (“m by n”) 행렬은 m개의 행과 n개의 열을 갖는다.
합집합과 교집합이란 무엇인가? 01 합집합 두 집합 A, B에 대하여 A에 속하거나 B에 속하는 모든 원소로 이루어진 집합을 A와 B의 합집합이라고 하며, 기호 A∪B로 나타낸다. A∪B ={x | x∈A 또는 x∈B}
제곱근의 곱셈과 나눗셈 제곱근의 곱셈과 나눗셈 a > 0, b > 0 일 때, √ 3 √ 5 √15 3 √ 5
제 3장 행 렬.
1. 2진 시스템.
Fitting / Matrix / Excel
2. Boole 대수와 논리 게이트.
CAS (Computer Algebra System) 소개
미분방정식.
Excel 일차 강사 : 박영민.
제3장 함수와 배열수식 전진환
2장. 일차원에서의 운동 2.1 평균 속도 2.2 순간 속도 2.3 분석 모형: 등속 운동하는 입자 2.4 가속도
에어 PHP 입문.
벡터의 성질 - 벡터와 스칼라 (Vector and Scalars) - 벡터의 합 -기하학적인 방법
Ch4.마디해석법, 메쉬해석법 마디해석법, 초마디 기법, 메쉬해석법, 초메쉬 기법 : 회로를 해석하는 일반적인 방법을 제시.
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
Chapter 1 단위, 물리량, 벡터.
제 5장 제어 시스템의 성능 피드백 제어 시스템 과도 성능 (Transient Performance)
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
Chapter 1 단위, 물리량, 벡터.
행성을 움직이는 힘은 무엇일까?(2) 만유인력과 구심력 만유인력과 케플러 제3법칙.
Loop and Nodal Techniques
Chapter 10 데이터 검색1.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
5.1-1 전하의 흐름과 전류 학습목표 1. 도선에서 전류의 흐름을 설명할 수 있다.
상관계수.
7장 연습 문제 풀이 학번 : 이름 :조 재한.
기체상태와 기체분자 운동론!!!.
수치해석 ch3 환경공학과 김지숙.
2014년 가을학기 손시운 지도 교수: 문양세 교수님 행렬과 배열 2014년 가을학기 손시운 지도 교수: 문양세 교수님.
어서와 C언어는 처음이지 제21장.
회로 전하 “펌핑”; 일, 에너지, 그리고 기전력 1. 기전력(electro-motive force: emf)과 기전력장치
컴퓨터는 어떻게 덧셈, 뺄셈을 할까? 2011년 10월 5일 정동욱.
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
: 3차원에서 입자의 운동 방정식 제일 간단한 경우는 위치만의 함수 : 시간, 위치, 위치의 시간미분 의 함수
6 객체.
Kirchhoff’s Rule (키르히호프의 법칙) Kirchhoff의 전압법칙 Kirchhoff의 전류법칙.
Presentation transcript:

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

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

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

행렬의 덧셈과 뺄셈 같은 크기의(같은 행과 열의 수를 가진) 배열들에 대한 덧셈과 곱셈은 같은 위치의 원소들을 더하거나 빼서 구한다. >> v = [3 6 2]; w=[9 -1 5]; >> z = v + w z = 12 5 7 >> A=[2 -3 7; 8 4 5]; >> B=[10 7 4; -11 15 1]; >> C = A - B C = -8 -10 3 19 -11 4 >> D = A + B D = 12 4 11 -3 19 6 >> D-2 ans = 10 2 9 -5 17 4 >> C * 2 ans = -16 -20 6 38 -22 8 행렬의 덧셈이나 뺄셈에 스칼라가 포함된 경우, 행렬의 모든 원소에 스칼라를 더하거나 뺀다. 3장 배열과 행렬

배열의 덧셈과 뺄셈 응용예 세 학생의 과목별 중간고사 및 기말고사 성적은 다음 표와 같다. 세 학생의 각 과목별 평균점수와 중간고사에 대한 성적향상 점수를 구하라. 이 름 중간고사 기말고사 국어 영어 수학 물리 이스근 61 78 39 42 69 84 51 46 강후동 49 57 24 36 55 53 31 40 이숭기 92 97 89 96 90 >> 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]; %기말고사 성적 >> T = 0.5*(M + F) % 학생별, 과목별 총점 구하기 T = 65.0000 81.0000 45.0000 44.0000 52.0000 55.0000 27.5000 38.0000 94.0000 97.0000 90.5000 87.0000 >> E = F – M % 학생별, 과목별 성적 향상 E = 8 6 12 4 6 -4 7 4 4 0 3 6 3장 배열과 행렬

배열의 곱셈 MATLAB에서 행렬의 곱은 선형대수의 규칙에 따라 행해진다. >> C = A*B T = 15 34 18 32 43 74 >> D = B*A ??? Error using ==> mtimes Inner matrix dimensions must agree. 3장 배열과 행렬

행렬 곱과 벡터 곱 (1/2) 행렬의 곱은 교환법칙이 성립하지 않는다. 즉, AB≠BA이다. 행렬 곱과 벡터 곱 (1/2) 행렬의 곱은 교환법칙이 성립하지 않는다. 즉, AB≠BA이다. 벡터 곱 vw의 경우, 두 벡터의 원소 개수는 같아야 하고 한쪽 벡터가 행벡터이면 나머지 벡터는 열벡터이어야 하며, 스칼라 또는 행렬을 얻게 된다. dot(a, b) 내장함수는 두 벡터의 행∙열 구분 없이 내적을 구한다. >> A = [ 6 2; 4 7]; B = [3 9; 5 1]; >> C = A*B, D = B*A % A*B≠B*A C = 28 56 47 43 D = 54 69 34 17 3장 배열과 행렬

행렬 곱과 벡터 곱 (2/2) v*w ≠ w*v >> G*F 행렬 곱과 벡터 곱 (2/2) >> v = [ 6 2 4 ]; w = [3; 9; 5]; >> x = v*w x = 56 >> z = w*v z = 18 6 12 54 18 36 30 10 20 >> dot(v, w) % v*w ans = >> F=[1 3; 5 7]; G=[4 2; 1 6]; >> F*G 7 20 27 52 >> G*F 14 26 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 >> C = 3*A C = 6 15 21 0 30 3 9 12 18 6 33 15 >> D=A*3 D = v*w ≠ w*v 수와 행렬의 곱은 행렬의 각 원소에 수를 곱해 구한다. 3장 배열과 행렬

연립선형방정식의 행렬 표현과 나눗셈 연립선형방정식을 행렬에 의해 간단히 표현하고 해를 체계적인 방법으로 구할 수 있다. 단위행렬(identity matrix or unity matrix) I 대각선 원소가 모두 1이고 그 외의 원소는 0인 정방행렬(square matrix)로서, MATLAB에서는 eye(n) 명령어로 생성한다. 스칼라 변수에 1을 곱한 경우처럼 행렬(또는 벡터)에 단위행렬 I를 곱해도 행렬은 변화가 없다. 즉, AI = A, Iv = v, BI = B 이다. 만일 A가 정방행렬이면, AI = IA = A이다. 3장 배열과 행렬

행렬의 역행렬(Inverse Matrix) 정방행렬인 A와 B를 곱한 결과가 단위행렬 I라면, 두 행렬은 서로 역행렬의 관계에 있다. 즉 A는 B의 역행렬이며, B는 A의 역행렬이다. AB = BA = I → A=IB-1 =B-1 or B=IA-1 =A-1 AA-1 =I → A-1 은 A의 역행렬 MATLAB에서 A의 역행렬은 A^-1 또는 inv(A) 명령으로 구한다. >> A= [ 7 4 6; 3 1 8; 2 5 4]; >> B=inv(A) B = 0.2278 -0.0886 -0.1646 -0.0253 -0.1013 0.2405 -0.0823 0.1709 0.0316 >> A*B % B*A와 동일 ans = 1.0000 0.0000 0.0000 0 1.0000 0 -0.0000 0.0000 1.0000 >> A^-1 % A의 역행렬 -0.0253 -0.1013 0.2405 -0.0823 0.1709 0.0316 >> A*A^-1 % AA-1=I 1.0000 0.0000 0.0000 0 1.0000 0 -0.0000 0.0000 1.0000 5.55 e-17 3장 배열과 행렬

행렬식(Determinant) 행렬 A의 determinant는 |A|로 표시하며, MATLAB 명령어 det(A)에 의해 구한다. >> A= [ 1 2 0; 0 1 1; 3 0 1]; det(A) ans = 7 >> B=[ 1 2 1; 0 1 1; 3 1 1]; det(B) 3 3장 배열과 행렬

행렬 나눗셈 (1/2) Left division \ 행렬 나눗셈 (1/2) MATLAB에는 ‘right division(/)’과 ‘left division(\)’의 두 가지 형식의 행렬 나누기가 있다. 연립선형방정식을 Ax=B의 행렬형태로 나타냈을 때 벡터 x는 두 가지 방법으로 구할 수 있다. Left division \ Ax = b의 양변에 A의 역행렬 A-1을 곱하면, A-1Ax = A-1b → Ix = x = A-1b 즉, Ax = b의 해는 x = A-1b이다. MATLAB 명령어로 x = inv(A)*b 이다. MATLAB에서 left division ‘\’를 이용하여 구할 수도 있다. 즉, x = A\b. 위의 두 방법은 같은 결과를 주는 것처럼 보이지만, MATLAB이 x를 계산하는 방법은 다르다. Left division ‘\’는 Gauss elimination 방법에 따라 수치적으로 계산한다. 큰 행렬이 포함된 경우, 역행렬 계산이 가우스 소거법보다 정확도가 떨어질 수 있으므로 선형연립방정식을 푸는 경우에는 left division을 사용하는 것이 유리하다. 3장 배열과 행렬

행렬 나눗셈 (2/2) Right division / 행 벡터 v와 w에 대해, 선형방정식 vA = w 에서 v를 구하려면 행렬 나눗셈 (2/2) Right division / 행 벡터 v와 w에 대해, 선형방정식 vA = w 에서 v를 구하려면 vAA-1 = wA-1 → vI = v = wA-1 or v = w/A 즉, vA = w의 해는 v = w/A or wA-1 이다. Ax=b >> 4/8 ans = 0.5000 >> 4\8 ans = 2 >> A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0]; >> x=A^-1 * b ans = -1.8049 0.2927 2.6341 >> x2 = inv(A)*b x2 = >> x3 = A\b % 가우스 소거법 x3 = 2.63412 3장 배열과 행렬

예제 3.1 연립선형방정식의 해 다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라. 4x – 2y + 6z = 8 예제 3.1 연립선형방정식의 해 다음 선형연립방정식을 행렬 형식으로 나타내고 해를 구하라. 4x – 2y + 6z = 8 2x + 8y + 2z = 4 6x + 10y + 3z = 0 위 연립방정식을 행렬 형식으로 나타내면 다음과 같다: >> A=[ 4 -2 6; 2 8 2; 6 10 3]; b=[8; 4; 0]; >> x=A\ b % x=inv(A)*b로 구할 수도 있음 x = -1.8049 0.2927 2.6341 >> C=[4 2 6;-2 8 10; 6 2 3]; w = [8 4 0]; >> x = w/C x = -1.8049 0.2927 2.6341 Ax = b → A-1Ax=A-1b → x=A\b xC=w → xCC-1=wC-1 → x = w/C 3장 배열과 행렬

원소별(Element-by-Element) 연산 행렬에 대한 곱셈과 나눗셈은 선형대수의 법칙을 따른다. 그러나 두 행렬의 원소와 원소 사이의 연산이 필요한 경우가 많다. 덧셈과 뺄셈은 원래 행렬의 같은 위치의 원소끼리 더하거나 빼므로 원칙적으로 원소별 연산에 해당된다. 원소별 연산은 다음과 같이 점 뒤에 연산기호를 붙이면 된다: .* (원소별 곱셈), .^ (원소별 지수승), ./ (우측 나눗셈), .\ (좌측 나눗셈) 두 벡터 v와 w가 각각 v=[v1, v2, v3], w=[w1 w2 w3]이라면, v.*w = [ v1w1, v2w2, v3w3 ] v./w = [ v1/w1, v2/w2, v3/w3 ] v.^w = [ v1w1, v2w2, v3w3 ] 두 행렬 A와 B에 대해 3장 배열과 행렬

행렬의 원소별 연산 >> C=A./B C = 2.0000 1.5000 0.3000 1.6667 4.0000 0.5714 >> 2.^B ans = 2 16 1024 8 4 128 >> A*B ??? Error using==> mtimes Inner matrix dimensions must agree. >> A=[2 6 3; 5 8 4]; >> B=[1 4 10; 3 2 7]; >> A.*B ans = 2 24 30 15 16 28 3장 배열과 행렬

원소별 연산 예 원소별 연산은 많은 독립변수에서 함수값을 계산할 때 매우 유용하다. 먼저 독립변수의 값들을 벡터로 정의하고 이 벡터를 이용하여 함수값을 원소별 연산을 이용하여 계산한다. y(x)= 2x2- 5x+1 함수의 값 계산 >> x = 1:7 x = 1 2 3 4 5 6 7 >> y = 2*x.^2 – 5*x + 1 y = -2 -1 4 13 26 43 64 >> plot(x, y) y(x) = (x3 + 5x)/(4x2 – 10)의 계산 >> x = [1:0.03:3]; >> y = (x.^3 + 5*x)./(4*x.^2 - 10); 3장 배열과 행렬

내장함수에서의 배열 사용 (1/2) MATLAB의 내장함수는 입력인자가 배열인 경우 함수에 의해 정의된 연산이 배열의 각 원소에 대해 수행되도록 만들어져 있으므로, 함수를 원소별로 적용하는 것으로 생각할 수 있다. 따라서 출력은 입력인자 배열의 각 원소를 함수에 대입하여 얻은 결과를 해당 원소로 갖는 배열이다. cos(x) 함수의 계산 >> x=[0:pi/6:2*pi] x = Columns 1 through 7 0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416 Columns 8 through 13 3.6652 4.1888 4.7124 5.2360 5.7596 6.2832 >> y=cos(x) y = 1.0000 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 3장 배열과 행렬

내장함수에서의 배열 사용 (2/2) sqrt(x) 함수의 계산 내장함수에서의 배열 사용 (2/2) sqrt(x) 함수의 계산 >> d=[1 4 9; 16 25 36; 49 64 81] d = 1 4 9 16 25 36 49 64 81 >> h=sqrt(d) h = 1 2 3 4 5 6 7 8 9 3장 배열과 행렬

배열 해석용 내장함수 (1/2) 함수 설명 예 mean(A) C=max(A) [d,n]=max(x) min(A) 배열 해석용 내장함수 (1/2) 함수 설명 예 mean(A) A가 벡터이면, 벡터 원소들의 평균값을 돌려준다. >> A=[5,9,2,4]; >> mean(A) ans = 5 C=max(A) A가 벡터이면, C는 A에서 가장 큰 원소이다. A가 행렬인 경우, C는 A의 각 열에서 가장 큰 원소들로 구성된 행벡터이다. >> A=[5,9,2,4,11,6,11,1]; >> C=max(A) C = 11 [d,n]=max(x) A가 벡터이면, d는 A에서 가장 큰 원소이며 n은 원소의 위치이다(최대값이 여러 개인 경우에는 첫 번째 최대값의 위치). >>[d,n]=max(A) d = 11 n = 5 min(A) 최소값을 찾는다는 점을 제외하고는 max(A)와 동일하다. >> min(A) ans = 2 [d,n]=min(A) 최소값을 찾는다는 점을 제외하고는 [d,n]=max(A)와 동일하다. sum(A) A가 벡터이면, 벡터 원소들의 합을 돌려준다. >> sum(A) ans = 20 3장 배열과 행렬

배열 해석용 내장함수 (2/2) 함수 설명 예 sort(A) median(A) std(x) det(A) dot(a,b) 배열 해석용 내장함수 (2/2) 함수 설명 예 sort(A) A가 벡터이면, 벡터의 원소들을 오름차순으로 정렬한다. >> A=[5,9,2,4]; >> sort(A) ans = 2 4 5 9 median(A) A가 벡터이면, 벡터 원소들의 중앙값(median value)을 돌려준다. >> median(A) ans = 4.5 std(x) A가 벡터이면, 벡터의 원소들의 표준편차를 돌려준다. >> std(A) ans = 2.9439 det(A) 정방행렬 A의 행렬식을 돌려준다. >> A=[2, 4; 3, 5]; >> det(A) ans = -2 dot(a,b) 두 벡터 a와 b의 스칼라 곱(내적)을 계산한다. 벡터는 각각 행벡터 또는 열벡터가 될 수 있다. >> a=[1,2,3]; b=[3,4,5]; >> dot(a, b), cross(a, b) ans = 26 ans = -5 3 -2 cross(a,b) 두 벡터 a와 b의 외적(cross product)을 계산한다. 두 벡터는 3개의 원소를 가져야 한다. inv(A) 정방행렬 A의 역행렬을 돌려준다. >> A=[2,-2,1;3,2,-1;2,-3,2]; >> inv(A) ans = … 3장 배열과 행렬

Random number(난수)의 생성 (1/2) 많은 공학 응용에서 많은 난수들의 집합을 필요로 하는 경우가 종종 있다. MATLAB은 난수를 생성하는 내장함수로 rand, randn이 있다. rand 명령어 : 0과 1 사이에서 균일하게 분포된 난수들을 생성시킴 rand : 한 개의 난수 생성, rand(1, n) : n개의 난수 행벡터 생성 rand(n) : nn 크기의 난수 행렬 생성, rand(m, n) : mn 크기의 난수행렬 생성 randperm 명령어 : 1에서 n까지의 정수의 무작위 순열(random permutation)으로 구성된 1n의 행벡터를 생성함 >> x = randperm(8) x = 8 2 7 4 3 6 5 1 (0, 1)이 아닌 구간에 분포되어 있는 난수들이나 정수로만 이루어진 난수들이 필요한 경우, 다음과 같은 수학적인 조작에 의해 구할 수 있다: (b-a)*rand+a 예) -5와 10 사이의 난수를 가지는 원소 10개의 벡터 : >> v=15*rand(1,10)-5 v = 7.2209 8.5869 -3.0952 8.7006 4.4854 -3.5369 -0.8225 3.2032 9.3626 9.4733 3장 배열과 행렬

Random number(난수)의 생성 (2/2) 모두 정수인 난수의 생성은 실수를 정수로 변환하는 함수를 이용한다. 예) 1에서 100 사이의 정수 난수를 갖는 2×15 행렬의 생성: >> A=round(99*rand(2,15)+1) A = 44 77 20 45 71 28 66 13 96 59 39 80 49 65 76 68 17 50 35 23 randn 명령어 : 평균이 0이고 표준편차가 1인 정규분포 난수들의 생성 randn(n) : nn 크기의 난수행렬, rand(m, n) : mn 크기의 난수행렬 >> d=randn(3,4) d = -0.5883 -0.1364 1.0668 2.1832 0.1139 0.0593 >> x = round( 5*randn(1, 10) + 10) x = 6 4 10 10 7 10 10 3 13 8 randn 명령어의 결과에 원하는 평균값을 더하고 원하는 표준편차를 곱함으로써 임의의 평균과 표준편차를 갖는 난수를 생성할 수 있다. 3장 배열과 행렬

예제 3.2 등가 힘의 계산 (1/2) 그림과 같이 고리에 가해지는 세 힘의 합력(등가 힘)을 구하라. 풀이 예제 3.2 등가 힘의 계산 (1/2) 그림과 같이 고리에 가해지는 세 힘의 합력(등가 힘)을 구하라. 30° 20° 143° F1=400 N F2=500 N F3=700 N 합력(등가 힘)은 고리에 가해지는 세 힘을 모두 더하여 구한다. 다음 세 단계에 따라 해를 구한다. 각 힘을 두 원소의 벡터로 나타낸다. 벡터의 첫 번째 원소는 힘 벡터의 x 축 성분이고 두 번째 원소는 힘 벡터의 y 축 성분이다. 세 벡터를 더하여 등가 힘을 벡터 형태로 구한다. 등가 힘의 크기와 방향을 구한다. 풀이 직각좌표계에서 힘 벡터 F는 다음과 같이 쓸 수 있다: 3장 배열과 행렬

예제 3.2 등가 힘의 계산 (2/2) 스크립트 파일 Ch3Ex3_2.m 명령어 창에서의 프로그램 실행 예제 3.2 등가 힘의 계산 (2/2) 스크립트 파일 Ch3Ex3_2.m 64.95° F1=400 N F2=500 N F3=700 N Ftot=589.98 N 명령어 창에서의 프로그램 실행 3장 배열과 행렬

예제 3.3 마찰 실험(원소별 계산) 실험에서 마찰 계수 μ는 질량 m을 이동시키는데 필요한 힘 F를 측정하면 다음 식에 의해 구할 수 있다: F m >> m=[2 4 5 10 20 50]; F = [12.5, 23.5, 30, 61, 117, 294]; >> mu=F./(m*9.81) mu = 0.6371 0.5989 0.6116 0.6218 0.5963 0.5994 >> mu_ave = mean(mu) mu_ave = 0.6109 m과 F의 값을 벡터로 입력함 원소별 연산으로 각 시험에 대한 mu의 값을 계산함 여섯 번의 시험을 통한 F 에 대한 측정 결과가 다음 표로 주어졌다. 각 시험에 대한 마찰계수를 구하고, 모든 시험 결과에 대한 마찰계수의 평균을 구하라. 시험 번호 1 2 3 4 5 6 질량 m (kg) 10 20 50 힘 F (N) 12.5 23.5 30 61 117 294 3장 배열과 행렬

예제 3.4 전기저항회로 분석 (1/3) 다음 전기회로에 대해 Kirchhoff의 전압법칙에 의한 망전류 방법(mesh current method)을 이용하여 각 저항에서의 전류를 구하라. V1 = 20 V, V2 = 12 V, V3 = 40 V R1 = 18 , R2 = 10 , R3 = 16  R4 = 6 , R5 = 15 , R6 = 8  R7 = 12  , R8 = 14  풀이 : Kirchhoff 전압법칙(voltage law) : 폐회로상의 전압을 모두 더하면 0이다. 각 망에 전류 i1, i2, i3, i4 를 할당한 후, Kirchhoff 전압 제2법칙을 각 망에 적용하면, 전류에 대한 선형 연립방정식 4개를 얻을 수 있으며, 이 선형 연립방정식으로부터 망전류의 값을 구할 수 있다. 두 망에 모두 속해 있는 저항을 흐르는 전류는 각 망에서의 전류를 더한 값과 같다. 모든 전류는 시계방향으로 흐른다고 가정한다. 각 망에 대한 식에서, 전압원의 부호는 전류가 -극 쪽으로 흐를 때 양(+)이며, 저항의 전압 부호는 망전류 방향의 전류에 대해 음(-)이다. 3장 배열과 행렬

예제 3.4 전기저항회로 분석 (2/3) 네 망에 대해 전압 제2법칙을 적용하여 얻은 선형방정식 예제 3.4 전기저항회로 분석 (2/3) 네 망에 대해 전압 제2법칙을 적용하여 얻은 선형방정식 위의 연립방정식을 행렬 형태로 나타낸다. 3장 배열과 행렬

예제 3.4 전기저항회로 분석 (3/3) 스크립트 파일 Ch3Ex3_4.m 명령어 창에서의 실행 결과 3장 배열과 행렬

예제 3.5 두 질점의 운동 (1/3) 기차와 자동차가 교차로로 가고 있다. t=0에서 기차는 교차로의 남쪽 400 ft 지점에서 54 mi/h의 정속으로 북쪽으로 달리고 있으며, 동시에 자동차는 교차로의 서쪽 200 ft 지점에서 28 mi/h의 속력과 4 ft/s2의 가속도로 동쪽으로 달리고 있다. 이후 10초 동안에 대해 매초마다 기차와 자동차의 위치, 둘 사이의 거리, 자동차에 대한 기차의 상대 속력을 구하라. 결과는 11×6의 행렬로 생성하여 출력한다. 행렬의 각 행에서 첫째 원소는 시간, 나머지 다섯 원소는 각각 기차의 위치, 자동차의 위치, 기차와 자동차 사이의 거리, 자동차의 속력, 자동차에 대한 기차의 상대 속력이다. 풀이 : 일정한 가속도로 직선을 따라 움직이는 기차와 자동차의 위치: 기차와 자동차 사이의 거리: v=54 mi/h x y v=28 mi/h a=4 ft/s2 400 ft 200 ft 3장 배열과 행렬

예제 3.5 두 질점의 운동 (2/3) 기차의 속도는 일정하며, 벡터 기호로는 vtrain = v0 train j이다. 자동차는 가속하고 있으며 시간 t 에서의 속도는 vcar=(v0 car + acar t)i 이다. 자동차에 대한 기차의 상대속도는 vt/c = vtrain – vcar = (vocar + acar t)i + v0 train j 이며, 상대속도의 크기는 벡터의 길이와 같다. 3장 배열과 행렬

예제 3.5 두 질점의 운동 (3/3) 스크립트 파일을 명령창에서 실행하면 다음 결과를 얻는다: 예제 3.5 두 질점의 운동 (3/3) 스크립트 파일을 명령창에서 실행하면 다음 결과를 얻는다: 시간 기차 위치(ft) 차 위치(ft) 차와 기차 사이의 거리(ft) 차에 대한 기차의 상대속력(ft/s) 3장 배열과 행렬

3장 강의록 끝 3장 끝 3장 배열과 행렬