Simple Example to Understand FDM MATLAB을 이용한 FDM 풀이 학습 목표 MATLAB에 대한 기본적인 조작 이해 MATLAB에 대한 기본적인 이해 행렬 생성 및 연산 기능 숙지 MATLAB 을 이용하여 미분방정식의 근사해 유도 행렬을 이용하여 FDM 풀이 Exact solution과 근사 해의 비교 직접 계산한 결과와 MATLAB을 이용한 결과값의 비교 MATLAB을 이용한 결과값과 실제 값의 비교 MATLAB의 이해 MATLAB MATLAB은 MATrix LABoratory의 줄임 말 즉, 모든 변수를 행렬로 처리하여 계산하는 CODE 임 (FDM 기반) 사용하고 있는 변수들의 값을 실시간으로 알 수 있으며, 벡터와 행렬의 조작이 매우 편리함. 수치해석, 신호처리, 그래픽 등에 관련된 다양한 함수 제공 Code data는 .m 파일로 저장함. MATLAB의 이해 Window 파일이 저장된 경로 MATLAB 명령을 입력 파일이 저장된 폴더 명령한 Data를 확인 명령한 이력을 확인 MATLAB의 이해 변수 정의 변수 이름은 대소문자 구별 변수 이름은 문자로 시작, 두 번째부터는 문자, 숫자, 밑줄,이어야 함 items, Items, iTEMS, ITEMS는 다른 변수임 ex) X514483, A_B_C 예약 문자는 MATLAB에서 특별한 의미가 있기 때문에 사용할 수 없음 ex) sin, cos, pi, plot 등 MATLAB 조작 기본 조작 기호 연산 + 덧셈 - 뺄셈 * 명령어 기능 clear 작업공간에서 모든 변수를 제거 곱셈 clc 창을 깨끗이 함 / 왼쪽 나눗셈 plot 그래프를 확인 \ 오른쪽 나눗셈 ^ 지수 grid 그래프에 눈금을 표시 ‘ 전치 syms 기호변수로 선언 dot(x,y) 외적 whos 입력한 변수명을 표시 cross(x,y) 내적 exp(x) e^x expand() 주어진 다항식들은 전개함 Sqrt(x) 제곱근 factor() 주어진 다항식을 인수분해함 abs(x) x의 절대값 simplify 공식을 가능한 간단하게 표현 log(x) Ln x log10(x) Log10 x sub 주어진 식에서 변수를 치환함 sin(x) cos(x) tan(x) sin x cos x tan x % 코멘트 추가 ; 스크린 출력 억제 MATLAB 조작 행렬 명령어 [ ] 안에 열은 띄어쓰기 행은 ;로 구분 명령어 기능 transpoes(A) 전치행렬 A’ A의 원소가 복소수가 존재할때 켤레복소수의 전치행렬응 구함 A.’ A의 원소가 복소수라도 켤레복소수를 취하지 않음 diag(A,n) A의 대각 행렬을 찾음 sum(A,n) 행렬 A의 각 열의 합 zeros(m,n) 모든 원소가 0인 m행n열의 행렬 ones(m,n) 모든 원소가 1인 m행n열의 행렬 eye(m,n) m행n열 항등행렬 size(A) 행렬의 크기 length(x) 행렬에 있는 원소의 개수, 길이 det(A) A행렬의 determinant inv(A) A행렬이 역행렬 MATLAB을 이용한 FDM 풀이 미분 방정식 예제 𝑦” − 2𝑦 − 3 = 0 IC: 𝑦(0) = 1 𝑎𝑛𝑑 𝑦(1) = 0 𝑓𝑟𝑜𝑚 0 𝑡𝑜 1. Exact solution y(x)= (exp(2^(1/2)*x)*(3*exp(2^(1/2)) - 5))/(2*(exp(2*2^(1/2)) - 1)) + (exp(2^(1/2)*x)*exp(2^(1/2))*(5*exp(2^(1/2)) - 3))/(2*(exp(2*2^(1/2)) - 1)) - 3/2 MATLAB을 이용한 FDM 풀이 MATLAB Code: 직접 작성 해보기 과제 HW #2에 포함된 문제 𝑦” − 𝑦 = 0 𝐼𝐶: 𝑦(0) = 6 𝑎𝑛𝑑 𝑦’(0) = −2 𝑓𝑟𝑜𝑚 0 𝑡𝑜 1. 𝐸𝑥𝑎𝑐𝑡 𝑆𝑜𝑙𝑢𝑡𝑖𝑜𝑛: 𝑦 𝑡 = 2𝑒 𝑥 − 4𝑒 −𝑥 (1) ℎ = 0.25일 때 직접 계산한 결과와 MATLAB으로 계산한 결과 비교 (2) MATLAB를 이용하여 FDM 결과값과 실제 값의 비교 및 고찰 ※ MATLAB code를 첨부하여 제출, 온·오프라인 모두 제출