서브메뉴

본문

MATLAB 기초와응용 (공학설계를 위한)
MATLAB 기초와응용 (공학설계를 위한)
저자 : BRIAN H. HAHN|DANIEL T. VALENTINE
출판사 : 아진
출판년 : 2013
ISBN : 9788957613559

책소개

『MATLAB 기초와응용』은 수학적인 도구이자 프로그램 언어인 MATLAB 사용법을 설명한 책이다. 많은 예제를 통하여 MATLAB의 기초에 대해 설명하고 있으며, 이 예제들은 일상에서 접할 수 있는 영역과 함께 친숙한 과학, 공학 영역에서 폭넓게 선택되었다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

기술이 발전함에 따라 점차 제품 개발에 요구되는 시간이 짧아지고 따라서 엔지니어들에게 있어서 컴퓨터를 활용한 설계 및 해석은 필수적인 요건이 되었다. 예전엔 이러한 컴퓨터 응용 해석에 있어 C나 Pascal을 이용하여 직접 프로그램을 코딩하여 사용해 왔다. 그러나 최근 들어서는 상용화된 소프트웨어를 기본 플랫폼으로 제공받아 그것을 기반으로 프로그래밍을 수행함으로써 비용을 절감하고, 시간과 노력을 현저하게 줄일 수 있게 되었다.
상용화된 엔지니어링 소프트웨어로는 MATLAB, MATHEMATICA, MAPLE, CEMTOOL 등이 있으며, 이 중 MATLAB이 전 세계적으로 가장 많은 엔지니어들에 의해 효과적인 솔루션을 창출하는데 활용되고 있다. 따라서 MATLAB 프로그래밍 기법을 익힌다는 것은 공학도 및 과학도들에게 한 가지 강력한 도구(tool)를 갖출 준비를 한다는 것을 의미하며, 그 필요성이 날로 증가되고 있는 것 또한 사실이다.
역자가 재직하고 있는 대학에서는 그러한 필요성에 맞추어 2002년부터 공학계열 신입생을 대상으로 MATLAB 강좌를 개설해서 운영해 오고 있다. 그동안 공학계열에 입학한 신입생을 대상으로 MATLAB 강의를 해 보면서 본서의 원저인 ?Essential MATLAB for Engineers and Scientists?가 공학문제 해결에 필요한 MATLAB 명령어를 익히는 데 적합한 교재로 판단되어 ?엔지니어를 위한 MATLAB 엣센스?라는 이름으로 번역, 출간하게 되었다.
본 역서는 원저의 내용을 충실히 번역하고자 노력하였으며, 역자가 직접 수행해 보면서 실수하기 쉽거나 다시 한 번 주의가 필요할 때, 또는 다른 명령어와 비교 설명이 필요할 때 각주나 팁을 사용하여 설명을 추가함으로써 이해하는데 도움이 되도록 하였다.
번역서 2판에서는 원서의 파트 I에 해당하는 MATLAB의 필수적인 명령어 부분만을 번역하여 교재로 출간하였다. 원서의 1판 저자인 Brian D. Hahn이 2005년 작고하였고, 2007년 Daniel T. Valentine이 3판을 출시하였다. 이것을 계기로 번역서 3판은 원서 전체의 내용을 담기로 하였으며, 제목도 ?공학설계를 위한 MATLAB 기초와 응용?으로 바꾸어 출판하게 되었다. 그 후 2010년 4판, 2013년 5판의 원서 개정판을 출시하였는데, 4판은 그 변화가 적어 번역본을 출간하지 않았으며, 새로운 내용을 대폭 추가한 5판 개정판을 번역하여 출간하게 되었다.
MATLAB? 개론을 강의하는 데는 파트 I의 내용만을 다루어도 충분하며, 파트 II는 시스템 동역학과 같은 다른 교과목에서 보충 교재로 활용하기에 적합하리라 생각된다. 5판 파트 II에는 신호처리 부분과 시뮬링크 및 심볼릭 툴박스 부분을 상당부분 추가하였다. 시뮬링크 툴박스는 동적 시스템을 해석하는데, 심볼릭 툴박스는 다양한 수학문제를 푸는데 많은 도움이 될 것이다.
[교보문고에서 제공한 정보입니다.]

목차정보

PART I. MATLAB 기초
1장. 시작하기
1.1 MATLAB 시작하기 6
1.1.1 연산 7
1.1.2. 변수 9
1.1.3 수학 함수 10
1.1.4. 함수와 명령어 12
1.1.5 백터 12
1.1.6 선형 방정식 15
1.1.7. 사용 지침과 데모 16
1.2 데스크탑 16
1.2.1 편집기의 사용과 스크립트 18
1.2.2. 도움말, 출판, 보기 22
1.2.3 Symbolic 과 MuPAD 노트북 APP 24
1.2.4 다른 APP들 29
1.2.5 추가 기능 30
1.3 예제 프로그램 33
1.3.1 잘라내기와 붙여넣기 33
1.3.2 프로그램 저장: 스크립트 파일 36
1.3.3 프로그램의 동작 39
요약·41
종합문제·40

2장. MATLAB 기초
2.1 변수 44
2.1.1 대소문자 구분 45
2.2 작업공간 45
2.2.1 작업공간에서 공통으로 사용된
상수 더하기 46
2.3 배열: 벡터와 행렬 47
2.3.1 벡터 초기화: 명확한 나열 48
2.3.2 벡터 초기화: 콜론 연산자 49
2.3.3 linspace와 logspace 50
2.3.4 벡터의 전치 51
2.3.5 첨자 52
2.3.6 행렬 53
2.3.7 출력 캡처 54
2.3.8 구조계획 54
2.4 중력장 하에서의 수직 운동 56
2.5 연산자, 수식 그리고 명령문 59
2.5.1 숫자 59
2.5.2 데이터 유형 60
2.5.3 대수 연산자 61
2.5.4 연산자의 우선 순위 61
2.5.5 콜론 연산자 63
2.5.6 전치 연산자 63
2.5.7 배열에서의 대수 연산자 63
2.5.8 수식 65
2.5.9 명령문 66
2.5.10 명령문, 명령 그리고 함수 67
2.5.11 공식의 벡터화 67
2.6 출력 72
2.6.1 disp 72
2.6.2 format 73
2.6.3 스케일 인자 75
2.7 FOR를 이용한 반복 76
2.7.1 Newton 방법에 의한 제곱근 연산 76
2.7.2 계승 78
2.7.3 연속 과정의 한계 78
2.7.4 for 루프의 기본 구조 79
2.7.5 한 줄 for 구문 81
2.7.6 보다 일반적인 for 구문 81
2.7.7 벡터화를 통한 for 구문 회피 82
2.8 판단문 85
2.8.1 한 줄 if 구문 85
2.8.2 if-else 구문 88
2.8.3 한 줄 if-else 구문 89
2.8.4 elseif 89
2.8.5 논리 연산자 91
2.8.6 다중 if 구문과 elseif 구문 92
2.8.7 중첩된 if문 94
2.8.8 if문의 벡터화 95
2.8.9 switch 95
2.9 복소수 96
요약·99
종합문제·102

3장. 프로그램 설계와 알고리즘 개발
3.1 컴퓨터 프로그램 설계 과정 111
3.1.1 발사체 문제 114
3.2 MATLAB 함수 프로그래밍 123
3.2.1 Inline object: 조화 진동 123
3.2.2 MATLAB 함수 y=f(x) 125
요약·127
종합문제·128

4장. MATLAB 함수와 데이터 입출력 기능
4.1 몇 가지 일반 함수 132
4.2 데이터 입출력 142
4.2.1 load와 save 명령 142
4.2.2 텍스트 데이터(ASCII) 출력 142
4.2.3 텍스트 데이터(ASCII) 입력 143
4.2.4 이진 데이터 출력 143
4.2.4.1 이진 데이터 입력 144
요약·144
종합문제·145

5장. 논리 백터
5.1 예 제 149
5.1.1 불연속 그래프 149
5.1.2 영으로 나누는 것 피하기 150
5.1.3 무한대 값 회피 151
5.1.4 난수(불규칙수) 세기 152
5.1.5 주사위 굴리기 153
5.2 논리 연산자 154
5.2.1 연산자 우선순위 156
5.2.2 주의 157
5.2.3 논리 연산자와 벡터 157
5.3 논리 벡터에 의한 첨자화 158
5.4 논리 함수 160
5.4.1 any와 all의 사용 162
5.5 elseif 구조문 대신의 논리 벡터 163
요약·166
종합문제·167

6장. 행렬과 배열
6.1 행렬 172
6.1.1 콘크리트 회사의 예 172
6.1.2 행렬의 생성 174
6.1.3 첨자 175
6.1.4 전치 연산자 175
6.1.5 콜론 연산자 176
6.1.6 행과 열의 반복 180
6.1.7 행과 열의 삭제 181
6.1.8 기본 행렬 183
6.1.9 특수 행렬 184
6.1.10 행렬에서 MATLAB 함수의 활용 185
6.1.11 행렬 조작 186
6.1.12 행렬에서의 배열 연산 187
6.1.13 행렬과 for 명령문 188
6.1.14 행렬의 시각화 189
6.1.15 중첩된 for 명령문의 벡터화:
대부금 지불의 예 189
6.1.16 다차원 배열 192
6.2 행렬 연산자 193
6.2.1 행렬 곱셈 193
6.2.2 행렬의 지수승 195
6.3 그 밖의 행렬 함수 196
6.4 종족 번식 : Leslie 행렬 197
6.5 Markov 프로세스 201
6.5.1 무작위 걷기 202
6.6 선형 방정식 205
6.6.1 MATLAB으로 해 찾기 206
6.6.2 나머지 206
6.6.3 미지수보다 방정식 개수가 많은 경우 207
6.6.4 방정식 개수보다 미지수가 많은 경우 208
6.6.5 허약 조건 208
6.6.6 행렬 나눗셈 209
6.7 압축 행렬 211
요약·214
종합문제·215

7장. 함수 M-files
7.1 예제 : 뉴턴 방법 218
7.2 기본적인 규칙들 220
7.2.1 부함수 227
7.2.2 사유함수 227
7.2.3 P-code 파일 228
7.2.4 profiler로 M-file 성능 개선 228
7.3 함수 핸들 228
7.4 명령어/함수의 이중성 231
7.5 함수 이름 분석 232
7.6 M-files 디버깅 232
7.6.1 스크립트 디버깅 233
7.6.2 함수의 디버깅 235
7.7 순환 236
요약·238
종합문제·240

8장. 루프 문
8.1 for를 사용하는 확정 루프문 244
8.1.1 이항 계수 244
8.1.2 갱신 프로세스 245
8.1.3 중첩 for문 247
8.2 while을 이용한 불확정 루프문 247
8.2.1 추측 게임 247
8.2.2 while 루프문 249
8.2.3 수익이 2배가 되는 시간 250
8.2.4 소수 251
8.2.5 발사체 궤적 253
8.2.6 break와 continue 255
8.2.7 함수 menu 256
요약·258
종합문제·259

9장. MATLAB 그래픽
9.1 기본 2차원(2-D) 그래프 266
9.1.1 라벨 267
9.1.2 같은 축을 갖는 다중 그래프 268
9.1.3 선의 형태, 표식과 색상 269
9.1.4 축의 한계 설정 270
9.1.5 한 그림내의 다중 그래프: subplot 271
9.1.6 명령 figure, clf와 cla 273
9.1.7 그래프 입력 273
9.1.8 로그 그래프 274
9.1.9 극좌표 그래프 275
9.1.10 수학 함수를 빠르게 변환시켜
그래프를 그리는 함수: fplot 276
9.1.11 그래프 특성 편집 277
9.2 3차원(3-D) 그래프 277
9.2.1 plot3 277
9.2.2 3차원 애니메이션 함수: comet3 278
9.2.3 그물망 표면 그래프 279
9.2.4 등고선 그래프 282
9.2.5 NaN을 이용한 표면 그래프 잘라내기 284
9.2.6 벡터장의 가시화 284
9.2.7 행렬의 시각화 285
9.2.8 3차원 그래프의 회전 286
9.3 핸들 그래픽스 288
9.3.1 핸들의 취득 289
9.3.2 그래프 객체의 특성값과 이의 수정 290
9.3.3 핸들 벡터 292
9.3.4 그래프 객체의 생성 함수 294
9.3.5 그래프 객체의 생성 위치 지정 294
9.3.6 그림창의 크기 조정 294
9.4 그림의 편집 296
9.4.1 그림 편집 모드 296
9.4.2 특성값 편집기 297
9.5 애니메이션 298
9.5.1 핸들 그래픽스를 이용한 애니메이션 299
9.6 색에 대하여 302
9.6.1 색지도 302
9.6.2 면그래프의 색 305
9.6.3 트루 칼라 306
9.7 빛과 카메라 307
9.8 그래프의 저장, 출력 및 내보내기 308
9.8.1 그림 파일의 저장과 열기 308
9.8.2 그림 파일의 출력 308
9.8.3 그림 파일 내보내기 309
요약·310
종합문제·312

10장. 배열 및 고급데이터 구조
10.1 갱신 프로세스 316
10.1.1 단위 스텝 316
10.1.2 단위 스텝이 아닌 경우 320
10.1.3 함수의 사용 321
10.1.4 정확한 해 322
10.2 도수분포, 막대 그래프,
그리고 히스토그램 324
10.2.1 무작위 운동 324
10.2.2 히스토그램 325
10.3 정렬 326
10.3.1 물방울 정렬 326
10.3.2 MATLAB 함수 sort 329
10.4 구조체 330
10.5 세포체 332
10.5.1 세포체 배열의 생성 332
10.5.2 세포체 배열의 참조 334
10.5.3 세포체 배열의 사용 334
10.5.4 세포체 배열의 표시 336
10.6 클래스와 객체 336
요약·337

11장. 오류와 함정
11.1 구문 오류 340
11.1.1 모순된 벡터 크기 340
11.1.2 이름 숨기기 341
11.2 논리상의 오류 341
11.3 반올림 오차 341
요약·343
종합문제·344

PART II. MATLAB 응용
12장. 동적 시스템
12.1 단순보 350
12.2 전기 회로 352
12.3 자유낙하 354
12.4 마찰을 고려한 발사체 문제 365
요약·369
종합문제·370

13장. 시뮬레이션
13.1 임의의 수 만들기 372
13.1.1 종자수 정하기 372
13.2 동전 던지기 373
13.3 주사위 굴리기 374
13.4 박테리아의 번식 375
13.5 무작위 걷기 375
13.6 교통 흐름 377
13.7 정규분포의 확률 수 381
요약·382
종합문제·383

14장. 기초적인 수치방법
14.1 방정식 388
14.1.1 Newton 방법 388
14.1.1.1 복소수 근 390
14.1.2 이분법 391
14.1.3 fzero 393
14.1.4 roots 393
14.2 수치 적분 393
14.2.1 사다리꼴 공식 394
14.2.2 Simpson 공식 396
14.2.3 quad 396
14.3 수치 미분 397
14.3.1 diff 398
14.4 1차 미분 방정식 399
14.4.1 Euler 방법 399
14.4.2 예제: 박테리아의 번식 400
14.4.3 첨자의 다른 표기 403
14.4.4 예측-수정 방법 404
14.5 선형 상미분 방정식 405
14.6 Runge-Kutta 방법 405
14.6.1 1차 미분 방정식 406
14.6.2 연립 미분 방정식: 카오스 문제 407
14.6.3 ODE 풀이기에 입력 첨가하기 410
14.7 편미분 방정식 412
14.7.1 열전도 412
14.8 그 밖의 수치 방법 416
요약·418
종합문제·419

15장. 신호 처리
15.1 고조파 분석 425
15.2 고속 푸리에 변환 430

16장. 시뮬링크 툴박스
16.1 질량-스프링-댐퍼 동적 시스템 444
16.2 튀어 오르는 공 446
16.3 VAN DER POL 진동자 450
16.4 더핑 진동자 451
종합문제·454

17장. 심볼릭 툴박스
17.1 대수학 459
17.1.1 다항식 460
17.1.2 벡터 463
17.1.3 행렬 464
17.2 미적분 468
17.3 라플라스와 Z 변환 471
17.4 일반 함수들 472
17.5 미분 방정식 474
17.6 FUNTOOL, MUPAD,
그리고 HELP 실행하기 475
17.6.1 Funtool 476
17.6.2 MuPAD Notebook과
Symbolic 도움말 477
종합문제·479


부록 A. Syntax quick reference
A.1 Expressions 481
A.2 Function M-files 481
A.3 Graphics 482
A.4 if and switch 482
A.5 for and while 483
A.6 Input/output 484
A.7 load/save 485
A.8 Vectors and matrices 485

부록 B. Command and function quick reference
B.1 General purpose commands 488
B.1.1 Managing commands 488
B.1.2 Managing variables and the
workspace 488
B.1.3 Files and the operating system 489
B.1.4 Controlling the Command Window 489
B.1.5 Starting and quitting MATLAB 489
B.2 Logical functions 489
B.3 Language constructs and
debugging 490
B.3.1 MATLAB as a programming
language 490
B.3.2 Interactive input 490
B.4 Matrices and matrix manipulation 490
B.4.1 Elementary matrices 490
B.4.2 Special variables and constants 491
B.4.3 Time and date 491
B.4.4 Matrix manipulation 491
B.4.5 Specialized matrices 492
B.5 Mathematical functions 492
B.6 Matrix function 493
B.7 Data analysis 494
B.8 Polynomial function 494
B.9 Function functions 494
B.10 Sparse matrix functions 495
B.11 Character string functions 495
B.12 File I/O functions 495
B.13 Graphics 496
B.13.1 2-D 496
B.13.2 3-D 496
B.13.3 General 497
부록 C. ASCII character codes 499
부록 D. Solutions to Selected Exercises 501
찾아보기 517
[교보문고에서 제공한 정보입니다.]