서강대학교 로욜라도서관

탑메뉴

전체메뉴

전체메뉴닫기


검색

상세정보

(이공학도를 위한) 수치해석 : Python으로 코딩하기 / 제2판

최덕기

상세정보
자료유형단행본
서명/저자사항(이공학도를 위한) 수치해석 : Python으로 코딩하기 / 최덕기 지음
개인저자최덕기
판사항제2판
발행사항서울 : 학산미디어, 2019
형태사항454 p. : 삽화, 표 ; 26 cm
대등표제Numerical methods with Python for engineers and scientists
ISBN9791185294278
서지주기참고문헌(p. 449)과 색인수록
언어한국어

이 책의 다른 판을 확인할 수 있습니다. 이 책의 다른 판 보기

소장정보

서비스 이용안내
  • 찾지못한자료찾지못한자료
  • SMS발송SMS발송
메세지가 없습니다
No. 등록번호 청구기호 소장처/자료실 도서상태 반납예정일 예약 서비스
1 1344178 519.4 최223ㅅ 2019 2관4층 일반도서 대출가능
찾지못한자료 SMS발송


서평 (0 건)

서평추가

서평추가
별점
별0점
  • 별5점
  • 별4.5점
  • 별4점
  • 별3.5점
  • 별3점
  • 별2.5점
  • 별2점
  • 별1.5점
  • 별1점
  • 별0.5점
  • 별0점
제목입력
본문입력

*주제와 무관한 내용의 서평은 삭제될 수 있습니다.

출판사 제공 책소개

출판사 제공 책소개 일부

이 책의 목적
수치해석을 일상과는 분리된 학문이라는 생각을 하며 입문하는 사람들의 생각과 달리 수치해석은 매우 현실적인 학문으로서 매일 매일의 생활뿐만 아니라 연구실에서의 소규모 계산으로부터 복잡한 산업 현장에서 적용될 수 있는 유용하고도 방대한 내용을 포함하고 있다. 또한, 수치해석은 고등 수학과 컴퓨터 프로그램을 사용하는 복잡한 학문의 한 분야라고 간주될 수도 있으나 실제로는 다양한 산업 및 과학 기술 분야에서 이미 널리 사용되고 있다. 수치해석은 사람들이 손으로 계산하기 어려운 문제들을 컴퓨터를 사용해서 결과를 얻고자 하는 모든 과정을 의미한다. 사람들이 생각하는 문제 해결의 방식은 동시적 (concurrent)이며 일관적 (coherent)인데 비해서 현재까지의 컴퓨터는 순차적인 과정 (sequential processes)을 통해서만 문제 해결을 할 수 있다.
물론, 병렬연산 (parallel processing)을 할 수 있는 고성능의 컴퓨터도 보편화 되었지만 그 역시 여러 개로 나누어진 작업에 대하여 순차적인 계산으로 결과를 얻는 방식은 동일하다.
여느 학문과 마찬가지로 수치해석에 입문하고자 할 때 반드시 넘어야...

출판사 제공 책소개 전체

이 책의 목적
수치해석을 일상과는 분리된 학문이라는 생각을 하며 입문하는 사람들의 생각과 달리 수치해석은 매우 현실적인 학문으로서 매일 매일의 생활뿐만 아니라 연구실에서의 소규모 계산으로부터 복잡한 산업 현장에서 적용될 수 있는 유용하고도 방대한 내용을 포함하고 있다. 또한, 수치해석은 고등 수학과 컴퓨터 프로그램을 사용하는 복잡한 학문의 한 분야라고 간주될 수도 있으나 실제로는 다양한 산업 및 과학 기술 분야에서 이미 널리 사용되고 있다. 수치해석은 사람들이 손으로 계산하기 어려운 문제들을 컴퓨터를 사용해서 결과를 얻고자 하는 모든 과정을 의미한다. 사람들이 생각하는 문제 해결의 방식은 동시적 (concurrent)이며 일관적 (coherent)인데 비해서 현재까지의 컴퓨터는 순차적인 과정 (sequential processes)을 통해서만 문제 해결을 할 수 있다.
물론, 병렬연산 (parallel processing)을 할 수 있는 고성능의 컴퓨터도 보편화 되었지만 그 역시 여러 개로 나누어진 작업에 대하여 순차적인 계산으로 결과를 얻는 방식은 동일하다.
여느 학문과 마찬가지로 수치해석에 입문하고자 할 때 반드시 넘어야 장벽들이 존재하는데 그중의 하나는 알고리즘 (algorithms)이고 다른 하나는 프로그래밍(programming) 또는 코딩 (coding) 실력이다. 알고리즘은 문제를 푸는 방식을 컴퓨터가 수행할 수 있도록 만들어주는 것이 목적이며, 프로그래밍 또는 코딩은 프로그래밍 언어를 사용해서 알고리즘을 구현하는 과정을 말한다. 그러므로 연필과 종이로서만 해결하기 어려운 문제에 대한 답을 컴퓨터를 사용해서 구하기 위해서는 먼저 주어진 문제를 정확하게 정의하고 그 해법을 체계적 및 순차적으로 설명할 수 있어야 한다. 일반적으로 이러한 과정은 대학 수준의 수학으로 기술되어 있으며 이를 컴퓨터에서 순차적으로 실행될 수 있도록 변환시키는 작업이 알고리즘의 중요한 역할이다.
따라서 문제 해결에 대한 순차적인 방법인 알고리즘을 이해하는 것이 수치해석의 첫번째 장벽을 넘는 것이 된다. 알고리즘은 수학과 순서도 (flow charts) 등에 의해서 설명되고 이해될 수 있다. 일단 알고리즘에 대한 이해가 완결되면 코딩을 통해서 컴퓨터에서 구현할 수 있게 되어 문제에 대한 수치해석적인 답을 기대할 수 있다. 물론 입문자에게 있어서는 수학뿐만 아니라 순차적 과정으로 구성되어 있는 알고리즘 자체를 이해하는 것이 어려울 수도 있다. 또한, 알고리즘에 대한 이해를 획득하였다고 해도 그 내용을 컴퓨터 언어로 구현해야 한다는 더 큰 어려움이 기다리고 있다. 즉, 생각하고 있는 아이디어를 컴퓨터 언어를 사용해서 구현한다는 것은 또 다른 문제이다.
본서를 집필하게 된 가장 중요한 목적은 수치해석 입문자들이 만나게 되는 이러한 두 가지 장벽을 넘어가는데 있어서 도움을 주고자 하는 것이다. 이 책에서는 알고리즘을 정의하고 설명하는데 있어서 수학적으로 현학적인 내용을 가능한 한 배제하고 실제로 코딩을 구현하는데 염두를 두고 진행하고자 하였다. 두 번째로는 알고리즘이 어떠한 방식으로 실제 프로그램으로 구현되는 지를 프로그래밍 언어의 가장 기본적인 기능들을 사용하여 알려주고자 하였다. 따라서 이러한 과정을 이해한다면 독자들은 수치해석에서 널리 사용되고 있는 알고리즘과 그에 대한 코딩 기술을 얻을 수 있을 것으로 기대할 수 있을 것이다. 또한, 본서에서 채택한 프로그래밍 언어는 최근 전 세계적으로 다양한 분야에서 각광을 받고 있는 Python을 사용하였으며 장점은 다음과 같다.
C 언어 등과 달리 따로 컴파일 작업이 필요 없고, 대화형으로 사용하기에 적합하므로 아이디어를 직관적으로 구현하는데 적합하다.
MS-Windows, OS X, 그리고 Linux에 이르기까지 다양한 컴퓨터 운영체계에서 사용이 가능하다.
Open-source 라이선스에 의해서 무료로 배포된다.
다양한 분야에서 즉시 사용될 수 있는 다양한 라이브러리를 보유하고 있다.
전 세계를 망라하는 방대한 사용자 커뮤니티 및 자발적이며 열성적인 개발자 그룹을 보유하고 있다.

끝으로, 이 책을 가지고 학습한 독자들은 다음과 같은 목표를 성취할 수 있을 것으로 기대된다.
문제를 다루는 수치해석 이론에 대한 지식
Python 언어를 사용하여 알고리즘을 코딩할 수 있는 능력
실제 문제에 대한 해법을 수치해석 적으로 해결할 수 있다는 자신감

이 책의 구성
이 책의 구성은 다음과 같다. 1장에서는 수치해석, 컴퓨터, Python 그리고 알고리즘에 대해서 간략하게 설명하고 있다. 2장에서는 수치해석이 추구하는 근삿값과 오차의 종류에 대하여 설명하고 있다. 3장부터 6장에서는 컴퓨터 언어인 Python의 설치와 문법에 대한 내용을 소개하고 있다. 특히 수치해석 분야에서 필요한 모든 종류의 라이브러리를 제공하는 Numpy와 Matplotlib에 대해서 예제와 함께 상세하게 설명하고 있다. 그러므로 처음으로 Python을 접하는 독자들도 본문 내용을 차분하게 따라간다면 이 책에서 다루고 있는 정도의 문제를 해석하는 데는 크게 불편함이 없을 것으로 본다.
7장부터 14장에서는 방정식의 근을 구하는 알고리즘을 다룬다. 근을 구하기 위한 몇 가지의 알고리즘을 중심으로 설명하며 실제 코딩을 통해서 근을 구하는 과정을 학습한다. 수치해석에서 가장 널리 사용되는 선형연립방정식에 대한 내용을 16장부터 23장에서는 방정식의 해를 구하기 위한 다양한 알고리즘이 소개된다. 또한, 데이터 처리와 정보 획득에대한 관심이 증가하고 있으므로 24장부터 30장에서는 데이터를 확인하고, 가공하여 필요한 정보를 추출하는 회귀법과 보간법 등의 다양한 내용을 설명하고 있다.
수치적분과 미분은 31장부터 34장에서는 수치적분의 내용을 설명하고 35장에서는 수치미분에 대한 개념을 다룬다. 끝으로 36장부터 43장에서는 상미분 방정식에 대한 여러가지 해법을 소개한다. 특별히 수치해석과 함께 Python에 입문하는 독자들을 위하여, 동일한 문제에 대하여 다른 알고리즘에서 얻은 내용을 본다는 것은 흥미롭고도 중요하다고 생각하기 때문에 15장과 44장에서는 모듈의 개념을 이용하여 복수의 알고리즘을 수행하여 결과를 비교하는 과정을 상세하게 설명하였다.

이 책의 특징
이 책은 수치해석의 기본 이론뿐만 아니라 대부분의 독자들에게 있어서 낯선 컴퓨터 언어인 Python을 사용하여 다양한 수치해석 알고리즘을 프로그램으로 구현하는데 도움을 줄 수 있는 내용으로 구성되어 있다. 시중에는 이미 수치해석에 대한 책과 Python에 대한 도서가 많이 나와 있으나 두 가지를 결합하여 최소한의 노력으로 작업을 수행시킬 수 있도록 하는 내용을 담고 있는 문헌은 찾아보기가 힘들다. 그러므로 본서에서는 수치해석 이론과 Python이라고 하는 두 가지 목표를 하나의 책으로부터 획득하는데 도움을 줄 수 있는 내용으로 구성하였다. 지나치게 현학적인 수치해석 이론 설명을 지양하였으며 그보다는 알고리즘을 쉽게 코딩에 적용할 수 있도록 상세하게 설명하였다. 또한, 컴퓨터 프로그래밍에 대한 독자들의 경험과 수준이 다양한 점을 감안하여 어느 수준에서든지 보다 쉽게 접근할 수 있도록 예제 프로그램을 작성하였다. 이 책은 매 장마다 다음과 같은 학습체계를 준수하여 쓰여졌다.
1. 수치해석 알고리즘에 대한 예제를 통한 설명
2. 알고리즘의 일반화
3. 알고리즘의 코딩 및 프로그램 수행
4. 결과에 대한 설명과 비교
또한 각 장마다 제공되고 있는 과제 문제들은 하나 하나 수행하여 모두 검증을 거친 문제들이며, 알고리즘의 비교를 원하는 경우를 고려하여 같은 주제에 대해서는 가능한 한 동일한 내용의 문제들을 배치하였다. 과제 문제를 해결하기 위하여 새로이 프로그램을 작성할 필요는 없으며 최소한의 수정만으로 실행이 가능하도록 세심하게 배려하였으로 프로그래밍 입문자라도 큰 어려움은 없을 것으로 생각한다. 끝으로 이 책에서 사용된 모든 Python 프로그램은 https://github.com/rursvd/pynumerical2 에서 다운로드 받을 수 있다.

감사의 글
책을 집필하느라 주말에도 연구실에서 밤늦게까지 시간을 보냈음에도 격려해준 사랑하는 가족들에게 고마움을 표하고 싶다. 그리고 학산미디어 관계자들에게 감사한다. 끝으로 독자들이 이 책을 읽고 수치해석과 Python 프로그래밍에 대해 관심과 자신감이 생겼다면 저자로서 더 기쁜 일은 없을 것이다.
2019년
죽전 연구실에서 최 덕 기
이전 다음
이전 다음

함께 비치된 도서