10. 수치 미분과 적분

가. 미분diff(x)
    예) >>x=0:0.1:100;
         >>y=x.^2.*exp(-0.1*x)-x;
         >>subplot(1,3,1)
         >>plot(x,y)                    % x^2 그래프
         >>dy=diff(y)./diff(x);       % 차분법에 의한 미분
         >>dx=x(2:length(x));       % 차분법에 의해 x의 개수가 1개 줄어듦
         >>subplot(1,3,2)
         >>plot(dx,dy)                  % 1차 미분 그래프
         >>ddy=diff(dy)./diff(dx);   % 2차 미분
         >>ddx=dx(2:length(dx));   % dx보다 개수가 1개 줄어듦
         >>subplot(1,3,3)
         >>plot(ddx,ddy)               % 2차 미분 그래프
 사용자 삽입 이미지


    [참고] 차분법에 의한 미분은 데이터 사이 간격이 충분히 조밀해야 오차가 작으므로,
              데이터 간격이 클 경우 보간법을 이용한 후 미분법 사용.

나. 적분
quad(‘M-file’,a,b,tol): simpson’s rule, quadl(‘M-file’,a,b,tol): Lobatto quadrature
                int(f,’x’): Symbolic 객체를 이용한 수식 적분, f를 x로 적분
      예제 1) <m-file 내용>
                 function y=func(x)
                   y=1./(1+x).^2;

                 >>quad(‘func’,0,10)
                 ans = 0.909091053721440
                 >>quadl(‘func’,0,10)
                 ans = 0.909090909256147
      예제 2) >>syms x                    % x를 symbolic로 지정
                 >>f=1/((1+x)^2);           % 함수식
                 >>int(f,’x’)                   % symbolic 함수 적분
                 ans = -1/(1+x)
                 >>double(int(f,’x’,0,10))    % 구간 0~10 에서 적분하고 값을 실수 변환
                 ans = 0.909090909090909

p.s. 만약 연산 결과의 소수 자리가 4자리만 표현되면, ‘File’ -> ‘Preference…’ -> ‘Command Window’ 에서
       Numeric Format을 long으로 바꾸면 됩니다.

You may also like...

댓글 남기기