본문 바로가기
전공백서/화학생물공학부

화학생물공학부: 화공전산응용

by STEMSNU 2023. 8. 29.

강의를 수강한 학과: 화학생물공학부
작성자 성함/기수: 최준성 13.5

1. 과목에서 배울 수 있는 내용

화공전산응용은 화학공학 분야에 적용할 수 있는 수치해석 기법들에 대해 배우고, 이를 실제로 활용하여 프로젝트를 수행해보는 과목입니다. 그래서 과목의 전반부에서는 유한요소해석, 체비셰프 다항식 등 수치해석 이론의 기초를 다지고, 후반부에서는 실제로 기체 액체 상평형 문제와 1차원 물질 확산 시뮬레이션 등 다양한 수치해석 기법들을 활용하여 분석하는 실습을 진행합니다.

1) MATLAB

강의의 앞부분에서는 수치 해석을 실습할 수 있는 소프트웨어인 MATLAB의 사용법에 대해 다룹니다. 간단한 유한요소해석 문제를 MATLAB 코드를 이용해 풀어보면서 m-file 만드는 법, script 작성법, for 문과 array, matrix와 같은 MATLAB의 기본기를 다지게 됩니다. 

단, 수업 내용에서 MATLAB의 모든 부분을 다루지는 않기 때문에 후술할 강의의 뒷부분 실습을 위해서는 별도의 MATLAB 라이브러리를 다운받거나, 사용법을 공부할 필요가 있습니다.

2) 오차와 수렴

수치해석이란, 해석적으로 해결하기 어려운(해석적인 해가 존재하지 않거나, 연산량이 너무 많은 경우) 문제를 수치적인 접근으로 해결하는 기법을 다루는 학문입니다. 따라서 수치해석 기법은 필연적으로 오차를 수반하며, 어느정도의 오차까지 감내할 것인지가 중요한 논의점입니다.

이에 강의의 초반부에서는 수치해석에서의 오차와 수렴에 대해서 다룹니다. 컴퓨터를 이용한 수치해석 진행 시 수반되는 round-off 오차와 근사 과정에서 발생하는 truncation 오차에 대해서 배우고, 각각의 오차 요인이 step-size에 따라서 어떤 trade-off가 발생하는지 배우게 됩니다.

또한 condition number criteria를 이용하여 오차가 발산하는지 수렴하는지를 판단하는 방법을 배우게 됩니다. 

3) 선형/비선형 방정식

Bisection method, False position method, Newton-Raphson method, Secant method, Fixed point method 등을 이용해 비선형 방정식의 해를 구하는 법을 배우게 됩니다. 이후 선형 방정식 체계에 대해 Naive Gauss elimination, LU decomposition을 MATLAB 코드로 구현해보고, nearly singular case와 small pivot element 문제 등을 해결할 수 있는 개선된 코드를 작성해보는 실습을 수행합니다.

bisection method를 이용한 해 구하기: 구간을 계속해서 반으로 나눠 해를 찾는다.

또한 Sparse matrix, tridiagonal matrix 등, 특수한 matrix에 대해서 연산을 효율적으로 수행할 수 있는 Cholesky decomposition, Jacobi method, Gauss-Seidel method 등에 대해 배웁니다.

4) 최적화

최적화란, 어떠한 시스템에 대해 최적점을 찾는 기법을 의미합니다. 이는 화학공학에서 시스템의 최적 운용 조건을 얻어내는 방식과 결부되기 때문에 중요합니다. 그러나 각종 최적화 기법을 온전히 이해하기 위해서는 수학적인 배경지식을 요하기 때문에 본 강의에서는 이들을 가볍게 다룹니다.

Golden Search Method(1D)와 Multidimensional optimization 중 Direct method (Random, Genetic, Simulated annealing, Powell’s)와 Gradient method (Newton/Quasi-Newton, Steepest ascent/descent, Conjugate gradient) 등을 배우고, 관련된 코드를 작성해보는 실습을 진행합니다.

5) 여러가지 수치해석 문제와 시뮬레이션

강의의 후반부에서는 각종 ODE, PDE, 적분 문제 등 앞서 배운 수치해석 이론들을 적용하여 여러 수치해석 문제들을 해결하는 실습을 진행합니다. 각 문제별로 적절한 코드 작성 실습 과제가 주어지면, 2개의 큰 프로젝트를 수행하게 됩니다.

각각의 프로젝트에 대해서 보고서와 발표자료를 준비하게 되며, 2번째 프로젝트에 대해서는 교수님 앞에서 직접 발표를 진행하고 연구에 대한 피드백을 받게 됩니다.

 

2. 선배의 조언

교재는 Steven C. Chapra의 공학 수치해석을 사용합니다. 교재 설명이 워낙 친절하기도 하고 다루는 내용도 직관적이어서 관련 배경지식이 높지 않아도 수업을 따라오는데에는 어려움이 없습니다. 다만 과제의 양이 적지 않고, 과제의 90%가 MATLAB을 이용한 코드 작성인 만큼 MATLAB 코드 작성 훈련을 하면 강의 초반부 과제를 해결하는데 많은 도움이 됩니다. 

개인적으로는 수업 내용이나 과제와 관련하여 이해가 되지 않는 부분이 생겼을 때, 인도 유튜브 영상 등에서 많은 도움을 받았던 것으로 기억합니다.

수치해석학 과목은 대부분의 공과대학 학부에서 열리는 수업입니다(강의명은 조금씩 상이). 세부적인 내용, 예시등은 각 학부별로 다르지만 배우는 내용의 큰 맥락은 비슷하기 때문에 수치해석학을 다루는 다 학부 전공과목을 수강하셔도 무방합니다.

 

3. 진로 선택에 도움되는 점

공과대학 학부에서는 화학생물공학부, 자연과학부에서는 화학부와 물리천문학부에서 주로 다루는 계산화학 분야에 관심이 있는 분들께 추천드리고 싶은 과목입니다. 단, 계산 화학의 주요 개념(분자 운동 모델 등)을 직접 다루지는 않습니다

그러나 각 모델들을 수치적으로 푸는데 필요한 기법들에 대한 기초를 다지고, 프로젝트를 통해 계산화학 문제를 수치적으로 푸는 경험을 해볼 수 있다는 점에서 관련 분야를 입문하는데 많은 도움이 될 것으로 생각됩니다.

또한 본 강의가 화학공학에 대한 수칙 해석의 적용에 초점을 맞추고 있기는 하지만, 수치해석 개념 자체는 공학 분야에서 폭넓게 사용되는 만큼 관련 내용에 관심이 있다면 누구나 수강하여도 큰 도움을 받을 수 있는 강의입니다.

 

4. 맺음말

개인적으로 강의 내용과 구성이 좋은 강의라고 생각합니다. 또한 강의 내용의 활용도 또한 높은 강의입니다. 화학생물공학부의 4가지 세부전공 중 공정 분야에 관심이 있다면 졸업 전 전공 선택 과목으로 꼭 들어보시면 좋을 것 같습니다.

 

 

 

댓글