728x90
0. [matlab] - Numerical Integration |
1. 풀이 |
matlab에서 적분을 구현하였다.
적분을 구현하기 위해서 for문을 활용한 방법과, 익명 함수를 활용한 방법을 해보았다.
2. 소스코드 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | % 1번 문제 format long; % 긴 고정소수점 형식 % 풀이 1. function을 사용하는 방법 sol_1 = myintegral(1, -200, 200) % dx = 1, 최솟값 = -200, 최댓값 = 200인 수치 적분 sol_0001 = myintegral(0.0001, -200, 200) % dx가 0.0001인 수치 적분 % 풀이 2. 익명 함수를 사용하는 방법 % 이후 문제는 function 사용으로 통일함 % y = @(x)((1/sqrt(2*pi))*exp(-(x.^2)/2)); % 익명 함수를 활용, y(x) 함수 제작 % ret = 0; % ret = 결과값을 담는 변수 % for i = [-200 : gap : 200] % ret = ret + h*y(i); % 수치 적분 시행 % end % ret expr = @(x) exp(-x.^2/2)/sqrt(2*pi); F = integral(expr, -200, 200) % 수치 적분을 통해 정답을 검증 function a = myintegral(gap, min, max) % 반복을 줄이기 위해 함수 선언 a= 0; % 결과로 반환될 a를 0으로 초기화 for i = min : gap : max a = a + (exp(-i^2 / 2) / sqrt(2*pi) * gap); % 반복문 활용한 수치 적분 end end | cs |
3. 참고 |
https://kr.mathworks.com/help/matlab/matlab_prog/anonymous-functions.html
질문이나 지적 있으시면 댓글로 남겨주세요~
도움 되셨으면 하트 꾹!