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-200200)                % dx = 1, 최솟값 = -200, 최댓값 = 200인 수치 적분
sol_0001 = myintegral(0.0001-200200)        % 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);
= integral(expr, -200200)                   % 수치 적분을 통해 정답을 검증
 
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


질문이나 지적 있으시면 댓글로 남겨주세요~

도움 되셨으면 하트 꾹!


+ Recent posts