서브메뉴

본문

공학설계를 위한 MATLAB 기초와 응용
공학설계를 위한 MATLAB 기초와 응용
저자 : Brian D. Hahn|DANIEL T. VALENTINE
출판사 : 아진
출판년 : 2008
정가 : 23000, ISBN : 8957612475

책소개


이 책은 컴퓨터 프로그램에 대한 사전 지식이 깊지 않은 과학도와 공학도를 대상으로 문제 해결 도구로서 MATLAB 프로그램을 설명하고 있다. 이 책은 주로 과학도와 공학도를 위하여 쓰였기 때문에 필수적인 몇몇 예제들은 대학 1학년의 수학적인 내용이 포함되어 있다. 2007년에 개정한 'Essential MATLAB for Scientists and Engineers' 3판을 번역한 것이다.

목차


파트 I. MATLAB 기초
1장 시작하기
1.1 MATLAB 시작하기
1.2 MATLAB 데스크탑
1.3 예제 프로그램
1.3.1 잘라내기와 붙여넣기 (Cut and paste)
1.3.2 프로그램 저장: 스크립트 파일
1.3.3 프로그램의 동작

2장 MATLAB 기초
2.1 변수(variables)와 작업공간(workspace)
2.1.1 변수(Variable)
2.1.2 대소문자 구분(Case sensitivity)
2.1.3 작업공간(workspace)
2.1.4 작업공간에서 공통으로 사용된 상수 더하기
2.2 배열: 벡터(vectors)와 행렬(matrices)
2.2.1 벡터 초기화: 명확한 나열(explicit lists)
2.2.2 벡터 초기화: 콜론 연산자(colon operator)
2.2.3 linspace
2.2.4 벡터의 전치(Transposing vectors)
2.2.5 첨자(Subscripts)
2.2.6 행렬(Matrices)
2.2.7 출력 캡처(Capturing output)
2.3 중력장 하에서의 수직 운동
2.4 연산자, 수식 그리고 명령문
2.4.1 숫자(Numbers)
2.4.2 데이터 유형(Data types)
2.4.3 대수 연산자(Arithmetic operators)
2.4.4 연산자의 우선 순위(Precedence of operators)
2.4.5 콜론 연산자(colon operator)
2.4.6 전치 연산자(transpose operator)
2.4.7 배열에서의 대수 연산자
2.4.8 수식(Expressions)
2.4.9 명령문(Statement)
2.4.10 명령문(Statements), 명령(commands) 그리고 함수(functions)
2.4.11 공식의 벡터화 (Vectorization of formulae)
2.5 출력(output)
2.5.1 disp
2.5.2 format
2.5.3 스케일 인자(Scale factors)
2.6 for를 이용한 루프문
2.6.1 Newton 방법에 의한 제곱근 연산
2.6.2 계승(Factorials!)
2.6.3 연속 과정의 한계
2.6.4 for 루프의 기본 구조
2.6.5 한 줄 for구문
2.6.6 보다 일반적인 for구문
2.6.7 벡터화를 통한 for구문 회피
2.6.8 일반적인 실수(mistake): for가 없는 루프!
2.7 판단문(decisions)
2.7.1 한 줄 if구문
2.7.2 if-else 구문
2.7.3 한 줄 if-else 구문
2.7.4 elseif
2.7.5 논리 연산자
2.7.6 다중 if 구문과 elseif 구문
2.7.7 중첩된 if문
2.7.8 if 문의 벡터화(Vectorizing)
2.7.9 switch
2.8 복소수(complex numbers)
2.9 입출력에 대한 추가 사항
2.9.1 fprintf
2.9.2 fprintf로 디스크 파일에 출력하기
2.9.3 일반적인 파일 I/O
2.9.4 데이터 저장과 불러오기
2.10 보충 설명(odd's ends)
2.10.1 같은 이름을 갖는 변수, 함수 그리고 스크립트
2.10.2 input 명령어
2.10.3 OS 명령어 실행하기
2.10.4 보다 많은 Help 함수들
2.11 프로그래밍 스타일

3장 프로그램설계와 알고리즘개발
3.1 컴퓨터 프로그램 설계 과정
3.1.1. 발사체 문제 예제
3.2 구조계획(structure plan)의 다른 예
3.2.1 2차 방정식(Quadratic equation)
3.3 함수를 이용한 구조화된 프로그래밍

4장 MATLA 함수와 데이터 입출력 기능
4.1 몇 가지 일반 함수
4.2 데이터 입출력
4.2.1 load와 save 명령
4.2.2 텍스트 데이터(ASCII) 출력
4.2.3 텍스트 데이터(ASCII) 입력
4.2.4 이진 데이터 출력
4.2.6 입력 마법사(Wizard)
4.2.6 그 외의 입출력 함수

5장 논리 백터
5.1 예 제
5.1.1 불연속 그래프
5.1.2 영으로 나누는 것 피하기
5.1.3 무한대 값 회피
5.1.4 난수(불규칙수) 세기
5.1.5 주사위 굴리기
5.2 논리 연산자
5.2.1 연산자 우선순위(Operator precedence)
5.2.2 주의!
5.2.3 논리 연산자와 벡터
5.3 논리 벡터에 의한 첨자화
5.4 논리 함수
5.4.1 any와 all의 사용
5.5 elseif 구조문 대신의 논리 벡터

6장 수의 행렬과 문자배열
6.1 행렬
6.1.1 콘크리트 회사의 예
6.1.2 행렬의 생성
6.1.3 첨자(Subscripts)
6.1.4 전치(transpose) 연산자
6.1.5 콜론(colon) 연산자
6.1.6 행과 열의 반복(tiling)
6.1.7 행과 열의 삭제
6.1.8 기본 행렬 (Elementary matrices)
6.1.9 특수 행렬
6.1.10 행렬에서 MATLAB 함수의 활용
6.1.11 행렬 조작
6.1.12 행렬에서의 배열(element-by-element) 연산
6.1.13 행렬과 for 명령문
6.1.14 행렬의 시각화(visualization)
6.1.15 중첩된 for 명령문의 벡터화(vectorizing): 대부금 지불의 예
6.1.16 다차원 배열
6.2 행렬 연산자
6.2.1 행렬 곱셈
6.2.2 행렬의 지수승 (Matrix expenentiation)
6.3 그 밖의 행렬 함수들
6.4 스트링(Strings)
6.4.1 할당(assignment)
6.4.2 입력
6.4.3 스트링과 배열
6.4.4 스트링의 연결
6.4.5 ASCII 코드: double과 char
6.4.6 스트링의 fprintf
6.4.7 스트링의 비교
6.4.8 그 밖의 스트링 함수
6.5 2차원 스트링

7장 그래픽의 소개
7.1 기본 2차원(2-D) 그래프
7.1.1 라벨(Labels)
7.1.2 같은 축을 갖는 다중 그래프(Multiple plots on the same axes)
7.1.3 선의 형태(styles), 표식(makers)과 색상(color)
7.1.4 축의 한계 설정(Axis limits)
7.1.5 한 그림내의 다중 그래프: subplot
7.1.6 명령 figure, clf와 cla
7.1.7 그래프 입력
7.1.8 로그 그래프
7.1.9 극좌표 그래프(polar plots)
7.1.10 수학 함수를 빠르게 변환시켜 그래프를 그리는 함수: fplot
7.1.11 그래프 특성(property) 편집
7.2 3차원(3-D) 그래프
7.2.1 plot3
7.2.2 3차원 애니메이션 함수: comet3
7.2.3 메시 그래프(Mesh surfaces)
7.2.4 등고선 그래프(Contour plots)
7.2.5 NaN을 이용한 표면 그래프 잘라내기
7.2.6 벡터장(vector fields)의 가시화
7.2.7 행렬의 시각화(Visualization)
7.2.8 3차원 그래프의 회전
7.2.9 그 밖의 유용한 그래픽 함수들

8장 루프 문
8.1 for를 사용하는 확정 루프문
8.1.1 이항 계수(binomial coefficient)
8.1.2 갱신 프로세스(Update processes)
8.1.3 중첩 for문
8.2 while을 이용한 불확정 루프문
8.2.1 추측 게임
8.2.2 while 루프문
8.2.3 수익이 2배가 되는 시간
8.2.4 소수(Prime numbers)
8.2.5 발사체 궤적 (Projectile trajectory)
8.2.6 break와 continue
8.2.7 함수 menu

9장 오류와 함정
9.1 구문 오류(syntax errors)
9.1.1 lasterr
9.2 함정(pitfalls)과 허(surprises)
9.2.1 모순된 벡터 크기
9.2.2 이름 숨기기
9.2.3 부주의할 수 있는 다른 함정들
9.3 논리상의 오류
9.4 반올림 오차(roundoff error)
9.5 오차 생성과 덫(trapping)
10장 함수 M-files
10.1 함수 M-file 예제
10.1.1 Inline object: 조화 진동
10.1.2 함수 M-files: 뉴턴 방법(Newton's method)
10.2 기본적인 규칙들
10.2.1 부함수(Subfunctions)
10.2.2 사유함수(Private functions)
10.2.3 P-code 파일
10.2.4 profiler로 M-file 성능 개선
10.3 함수 핸들(function handles)
10.4 명령어/함수의 이중성(duality)
10.5 함수 이름 분석
10.6 M-files 디버깅(debugging)
10.6.1 스크립트 디버깅
10.6.2 함수의 디버깅
10.7 순환(recursion)

11장 배열 및 *고급데이터 구조
11.1 데이터 갱신
11.1.1 단위 스텝
11.1.2 단위 스텝이 아닌 경우
11.1.3 함수의 사용
11.1.4 정확한 해
11.2 도수분포, 막대 그래프, 그리고 히스토그램
11.2.1 무작위 운동
11.2.2 히스토그램
11.3 *정렬
11.3.1 물방울 정렬
11.3.2 MATLAB 함수 sort
11.4 구조체
11.5 세포체
11.5.1 세포체 배열의 생성
11.5.2 세포체 배열의 참조
11.5.3 세포체 배열의 사용
11.5.4 세포체 배열의 표시
11.6 클래스와 객체

12장 고급 그래프
12.1 핸들 그래픽스
12.1.1 핸들의 취득
12.1.2 그래프 객체의 특성값과 이의 수정
12.1.3 핸들 벡터
12.1.4 그래프 객체의 생성 함수
12.1.5 그래프 객체의 생성 위치 지정
12.1.6 그림창의 크기 조정
12.2 그림의 편집
12.2.1 그림 편집 모드
12.2.2 특성값 편집기
12.3 애니메이션
12.3.1 핸들 그래픽스를 이용한 애니메이션
12.4 색에 대하여
12.4.1 색지도
12.4.2 면그래프의 색
12.4.3 트루 칼라
12.5 빛과 카메라
12.6 그래프의 저장, 출력 및 전송
12.6.1 그림 파일의 저장과 열기
12.6.2 그림 파일의 출력
12.6.3 그림 파일의 전송

13장 그래프를 통한 사용자 인터페이스
13.1 GUI의 기본 구조
13.2. 첫번째 예(시간 알기)
13.3 Newton 방법
13.4 GUI에 축 포함하기
13.5 버턴에 색 넣기

파트 II. MATLAB 기초
14장 동적 시스템
14.1 단순보
14.2 전기 회로
14.3 자유낙하
14.4 마찰을 고려한 발사체 문제

15장 시뮬레이션
15.1 임의의 수 만들기
15.1.1 종자수 정하기
15.2 동전 던지기
15.3 주사위 굴리기
15.4 박테리아의 번식
15.5 무작위 걷기
15.6 교통 흐름
15.7 정규분포의 확률 수

16장 항렬의 응용
16.1 Leslie 행렬: 종족 번식
16.2 Markov 프로세스
16.2.1 무작위 걸음
16.3 선형 방정식
16.3.1 MATLAB으로 해 찾기
16.3.2 나머지
16.3.3 미지수보다 방정식 개수가 많은 경우
16.3.4 방정식 개수보다 미지수가 많은 경우
16.3.5 허약 조건
16.3.6 행렬 나눗셈
16.4 압축 행렬

17장 기초적인 수치방법
17.1 방정식
17.1.1 Newton 방법
17.1.2 이분법
17.1.3 fzero
17.1.4 roots
17.2 수치 적분
17.2.1 사다리꼴 공식
17.2.2 Simpson 공식
17.2.3 quad
17.3 수치 미분
17.3.1 diff
17.4 1차 미분 방정식
17.4.1 Euler 방법
17.4.2 예제: 박테리아의 번식
17.4.3 첨자의 다른 표기
17.4.4 예측-수정 방법
17.5 선형 상미분 방정식
17.6 Runge-Kutta 방법
17.6.1 1차 미분 방정식
17.6.2 연립 미분 방정식: 카오스 문제
17.6.3 ODE 풀이기에 입력 첨가하기
17.7 편미분 방정식
17.7.1 열전도
17.8 그 밖의 수치 방법

부록 A.
Syntax quick reference

부록 B.
Operators

부록 C.
Command and function quick reference

부록 D.
ASCII character codes

부록 E.
Solutions to selected exercises

찾아보기