목차
파트 Ⅰ. MATLA$$B^◆U00AE◆$$ 기초
1장 시작하기
1.1 MATLA$$B^◆U00AE◆$$ 시작하기 = 3
1.2 MATLA$$B^◆U00AE◆$$ 데스크탑 = 16
1.3 예제 프로그램 = 18
1.3.1 잘라내기와 붙여넣기 (Cut and paste) = 18
1.3.2 프로그램 저장: 스크립트 파일 = 21
1.3.3 프로그램의 동작 = 23
2장 MATLA$$B^◆U00AE◆$$ 기초
2.1 변수(variables)와 작업공간(workspace) = 28
2.1.1 변수(Variable) = 28
2.1.2 대소문자 구분(Case sensitivity) = 29
2.1.3 작업공간(workspace) = 29
2.1.4 작업공간에서 공통으로 사용된 상수 더하기 = 30
2.2 배열: 벡터(vectors)와 행렬(matrices) = 31
2.2.1 벡터 초기화: 명확한 나열(explicit lists) = 32
2.2.2 벡터 초기화: 콜론 연산자(colon operator) = 33
2.2.3 linspace = 34
2.2.4 벡터의 전치(Transposing vectors) = 34
2.2.5 첨자(Subscripts) = 35
2.2.6 행렬(Matrices) = 36
2.2.7 출력 캡처(Capturing output) = 37
2.3 중력장 하에서의 수직 운동 = 37
2.4 연산자, 수식 그리고 명령문 = 40
2.4.1 숫자(Numbers) = 40
2.4.2 데이터 유형(Data types) = 41
2.4.3 대수 연산자(Arithmetic operators) = 42
2.4.4 연산자의 우선 순위(Precedence of operators) = 43
2.4.5 콜론 연산자(colon operator) = 44
2.4.6 전치 연산자(transpose operator) = 45
2.4.7 배열에서의 대수 연산자 = 45
2.4.8 수식(Expressions) = 47
2.4.9 명령문(Statement) = 47
2.4.10 명령문(Statements), 명령(commands) 그리고 함수(functions) = 48
2.4.11 공식의 벡터화 (Vectorization of formulae) = 49
2.5 출력(output) = 54
2.5.1 disp = 54
2.5.2 format = 55
2.5.3 스케일 인자(Scale factors) = 57
2.6 for를 이용한 루프문 = 58
2.6.1 Newton 방법에 의한 제곱근 연산 = 59
2.6.2 계승(Factorials!) = 60
2.6.3 연속 과정의 한계 = 60
2.6.4 for 루프의 기본 구조 = 61
2.6.5 한 줄 for구문 = 63
2.6.6 보다 일반적인 for구문 = 63
2.6.7 벡터화를 통한 for구문 회피 = 64
2.6.8 일반적인 실수(mistake): for가 없는 루프! = 66
2.7 판단문(decisions) = 67
2.7.1 한 줄 if구문 = 67
2.7.2 if-else 구문 = 70
2.7.3 한 줄 if-else 구문 = 71
2.7.4 elseif = 71
2.7.5 논리 연산자 = 73
2.7.6 다중 if 구문과 elseif 구문 = 74
2.7.7 중첩된 if문 = 75
2.7.8 if 문의 벡터화(Vectorizing) = 76
2.7.9 switch = 76
2.8 복소수(complex numbers) = 77
2.9 입출력에 대한 추가 사항 = 79
2.9.1 fprintf = 79
2.9.2 fprintf로 디스크 파일에 출력하기 = 81
2.9.3 일반적인 파일 I/O = 81
2.9.4 데이터 저장과 불러오기 = 81
2.10 보충 설명(odd's ends) = 82
2.10.1 같은 이름을 갖는 변수, 함수 그리고 스크립트 = 82
2.10.2 input 명령어 = 82
2.10.3 OS 명령어 실행하기 = 84
2.10.4 보다 많은 Help 함수들 = 84
2.11 프로그래밍 스타일 = 84
3장 프로그램설계와 알고리즘개발
3.1 컴퓨터 프로그램 설계 과정 = 96
3.1.1. 발사체 문제 예제 = 102
3.2 구조계획(structure plan)의 다른 예 = 109
3.2.1 2차 방정식(Quadratic equation) = 110
3.3 함수를 이용한 구조화된 프로그래밍 = 112
4장 MATL$$A^◆U00AE◆$$ 함수와 데이터 입출력 기능
4.1 몇 가지 일반 함수 = 118
4.2 데이터 입출력 = 128
4.2.1 load와 save 명령 = 128
4.2.2 텍스트 데이터(ASCII) 출력 = 128
4.2.3 텍스트 데이터(ASCII) 입력 = 129
4.2.4 이진 데이터 출력 = 129
4.2.6 입력 마법사(Wizard) = 130
4.2.6 그 외의 입출력 함수 = 131
5장 논리 백터
5.1 예제 = 136
5.1.1 불연속 그래프 = 136
5.1.2 영으로 나누는 것 피하기 = 137
5.1.3 무한대 값 회피 = 138
5.1.4 난수(불규칙수) 세기 = 139
5.1.5 주사위 굴리기 = 141
5.2 논리 연산자 = 142
5.2.1 연산자 우선순위(Operator precedence) = 143
5.2.2 주의! = 144
5.2.3 논리 연산자와 벡터 = 145
5.3 논리 벡터에 의한 첨자화 = 146
5.4 논리 함수 = 147
5.4.1 any와 all의 사용 = 149
5.5 elseif 구조문 대신의 논리 벡터 = 150
6장 수의 행렬과 문자배열
6.1 행렬 = 158
6.1.1 콘크리트 회사의 예 = 158
6.1.2 행렬의 생성 = 160
6.1.3 첨자(Subscripts) = 160
6.1.4 전치(transpose) 연산자 = 161
6.1.5 콜론(colon) 연산자 = 161
6.1.6 행과 열의 반복(tiling) = 166
6.1.7 행과 열의 삭제 = 166
6.1.8 기본 행렬 (Elementary matrices) = 168
6.1.9 특수 행렬 = 169
6.1.10 행렬에서 MATLAB 함수의 활용 = 170
6.1.11 행렬 조작 = 171
6.1.12 행렬에서의 배열(element-by-element) 연산 = 172
6.1.13 행렬과 for 명령문 = 172
6.1.14 행렬의 시각화(visualization) = 173
6.1.15 중첩된 for 명령문의 벡터화(vectorizing): 대부금 지불의 예 = 174
6.1.16 다차원 배열 = 176
6.2 행렬 연산자 = 177
6.2.1 행렬 곱셈 = 177
6.2.2 행렬의 지수승 (Matrix expenentiation) = 179
6.3 그 밖의 행렬 함수들 = 180
6.4 스트링(Strings) = 181
6.4.1 할당(assignment) = 181
6.4.2 입력 = 181
6.4.3 스트링과 배열 = 181
6.4.4 스트링의 연결 = 182
6.4.5 ASCII 코드: double과 char = 182
6.4.6 스트링의 fprintf = 183
6.4.7 스트링의 비교 = 184
6.4.8 그 밖의 스트링 함수 = 184
6.5 2차원 스트링 = 185
7장 그래픽의 소개
7.1 기본 2차원(2-D) 그래프 = 190
7.1.1 라벨(Labels) = 191
7.1.2 같은 축을 갖는 다중 그래프(Multiple plots on the same axes) = 192
7.1.3 선의 형태(styles), 표식(makers)과 색상(color) = 193
7.1.4 축의 한계 설정(Axis limits) = 194
7.1.5 한 그림내의 다중 그래프: subplot = 195
7.1.6 명령 figure, clf와 cla = 196
7.1.7 그래프 입력 = 197
7.1.8 로그 그래프 = 197
7.1.9 극좌표 그래프(polar plots) = 198
7.1.10 수학 함수를 빠르게 변환시켜 그래프를 그리는 함수: fplot = 199
7.1.11 그래프 특성(property) 편집 = 200
7.2 3차원(3-D) 그래프 = 200
7.2.1 plot3 = 201
7.2.2 3차원 애니메이션 함수: comet3 = 202
7.2.3 메시 그래프(Mesh surfaces) = 202
7.2.4 등고선 그래프(Contour plots) = 205
7.2.5 NaN을 이용한 표면 그래프 잘라내기 = 206
7.2.6 벡터장(vector fields)의 가시화 = 207
7.2.7 행렬의 시각화(Visualization) = 208
7.2.8 3차원 그래프의 회전 = 209
7.2.9 그 밖의 유용한 그래픽 함수들 = 210
8장 루프 문
8.1 for를 사용하는 확정 루프문 = 223
8.1.1 이항 계수(binomial coefficient) = 223
8.1.2 갱신 프로세스(Update processes) = 224
8.1.3 중첩 for문 = 227
8.2 while을 이용한 불확정 루프문 = 227
8.2.1 추측 게임 = 227
8.2.2 while 루프문 = 228
8.2.3 수익이 2배가 되는 시간 = 229
8.2.4 소수(Prime numbers) = 231
8.2.5 발사체 궤적 (Projectile trajectory) = 232
8.2.6 break와 continue = 234
8.2.7 함수 menu = 235
9장 오류와 함정
9.1 구문 오류(syntax errors) = 244
9.1.1 lasterr = 246
9.2 함정(pitfalls)과 허(surprises) = 246
9.2.1 모순된 벡터 크기 = 246
9.2.2 이름 숨기기 = 247
9.2.3 부주의할 수 있는 다른 함정들 = 247
9.3 논리상의 오류 = 248
9.4 반올림 오차(roundoff error) = 248
9.5 오차 생성과 덫(trapping) = 249
10장 함수 M-files
10.1 함수 M-file 예제 = 254
10.1.1 Inline object: 조화 진동 = 254
10.1.2 함수 M-files: 뉴턴 방법(Newton's method) = 255
10.2 기본적인 규칙들 = 257
10.2.1 부함수(Subfunctions) = 263
10.2.2 사유함수(Private functions) = 264
10.2.3 P-code 파일 = 264
10.2.4 profiler로 M-file 성능 개선 = 264
10.3 함수 핸들(function handles) = 265
10.4 명령어/함수의 이중성(duality) = 267
10.5 함수 이름 분석 = 267
10.6 M-files 디버깅(debugging) = 268
10.6.1 스크립트 디버깅 = 268
10.6.2 함수의 디버깅 = 271
10.7 순환(recursion) = 271
11장 배열 및 고급데이터 구조
11.1 데이터 갱신 = 280
11.1.1 단위 스텝 = 280
11.1.2 단위 스텝이 아닌 경우 = 283
11.1.3 함수의 사용 = 285
11.1.4 정확한 해 = 286
11.2 도수분포, 막대 그래프, 그리고 히스토그램 = 287
11.2.1 무작위 운동 = 287
11.2.2 히스토그램 = 289
11.3 정렬 = 290
11.3.1 물방울 정렬 = 290
11.3.2 MATLA$$B^◆U00AE◆$$ 함수 sort = 293
11.4 구조체 = 293
11.5 세포체 = 296
11.5.1 세포체 배열의 생성 = 296
11.5.2 세포체 배열의 참조 = 297
11.5.3 세포체 배열의 사용 = 298
11.5.4 세포체 배열의 표시 = 299
11.6 클래스와 객체 = 300
12장 고급 그래프
12.1 핸들 그래픽스 = 303
12.1.1 핸들의 취득 = 305
12.1.2 그래프 객체의 특성값과 이의 수정 = 305
12.1.3 핸들 벡터 = 307
12.1.4 그래프 객체의 생성 함수 = 309
12.1.5 그래프 객체의 생성 위치 지정 = 309
12.1.6 그림창의 크기 조정 = 309
12.2 그림의 편집 = 311
12.2.1 그림 편집 모드 = 311
12.2.2 특성값 편집기 = 312
12.3 애니메이션 = 313
12.3.1 핸들 그래픽스를 이용한 애니메이션 = 314
12.4 색에 대하여 = 317
12.4.1 색지도 = 317
12.4.2 면그래프의 색 = 319
12.4.3 트루 칼라 = 320
12.5 빛과 카메라 = 320
12.6 그래프의 저장, 출력 및 전송 = 321
12.6.1 그림 파일의 저장과 열기 = 321
12.6.2 그림 파일의 출력 = 322
12.6.3 그림 파일의 전송 = 322
13장 그래프를 통한 사용자 인터페이스
13.1 GUI의 기본 구조 = 326
13.2 첫번째 예(시간 알기) = 327
13.3 Newton 방법 = 331
13.4 GUI에 축 포함하기 = 335
13.5 버턴에 색 넣기 = 336
파트 Ⅱ. MATLA$$B^◆U00AE◆$$ 기초
14장 동적 시스템
14.1 단순보 = 343
14.2 전기 회로 = 345
14.3 자유낙하 = 348
14.4 마찰을 고려한 발사체 문제 = 358
15장 시뮬레이션
15.1 임의의 수 만들기 = 366
15.1.1 종자수 정하기 = 366
15.2 동전 던지기 = 367
15.3 주사위 굴리기 = 368
15.4 박테리아의 번식 = 368
15.5 무작위 걷기 = 369
15.6 교통 흐름 = 371
15.7 정규분포의 확률 수 = 374
16장 항렬의 응용
16.1 Leslie 행렬: 종족 번식 = 381
16.2 Markov 프로세스 = 385
16.2.1 무작위 걸음 = 385
16.3 선형 방정식 = 388
16.3.1 MATLA$$B^◆U00AE◆$$으로 해 찾기 = 389
16.3.2 나머지 = 390
16.3.3 미지수보다 방정식 개수가 많은 경우 = 390
16.3.4 방정식 개수보다 미지수가 많은 경우 = 391
16.3.5 허약 조건 = 391
16.3.6 행렬 나눗셈 = 392
16.4 압축 행렬 = 394
17장 기초적인 수치방법
17.1 방정식 = 402
17.1.1 Newton 방법 = 402
17.1.2 이분법 = 405
17.1.3 fzero = 407
17.1.4 roots = 407
17.2 수치 적분 = 407
17.2.1 사다리꼴 공식 = 408
17.2.2 Simpson 공식 = 409
17.2.3 quad = 410
17.3 수치 미분 = 410
17.3.1 diff = 412
17.4 1차 미분 방정식 = 412
17.4.1 Euler 방법 = 413
17.4.2 예제: 박테리아의 번식 = 414
17.4.3 첨자의 다른 표기 = 416
17.4.4 예측-수정 방법 = 417
17.5 선형 상미분 방정식 = 418
17.6 Runge-Kutta 방법 = 418
17.6.1 1차 미분 방정식 = 419
17.6.2 연립 미분 방정식: 카오스 문제 = 420
17.6.3 ODE 풀이기에 입력 첨가하기 = 423
17.7 편미분 방정식 = 424
17.7.1 열전도 = 425
17.8 그 밖의 수치 방법 = 429
부록 A. Syntax quick reference = 435
부록 B. Operators = 441
부록 C. Command and function quick reference = 443
부록 D. ASCII character codes = 453
부록 E. Solutions to selected exercises = 455
찾아보기 = 465