Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function P = numInt(f1, f2, a, b, n, met, disp)
- %Método retangular
- if met == 0
- %largura dos retângulos
- dx=(b-a)/n;
- %x de cada ret
- xl=a:dx:b-dx;
- %soma das áreas dos retângulos
- A=sum(abs(f1(xl) - f2(xl))*dx);
- %coloca os retângulos no gráfico
- if disp == 0
- for i=1:n
- rectangle('Position',[xl(i) f2(xl(i)) dx (f1(xl(i)) - f2(xl(i)))],'FaceColor','b');
- hold on;
- end;
- endif
- endif
- %Método trapezoidal
- if met == 1
- dx=(b-a)/n;
- xl=a:dx:b-dx;
- %Vetor em que a área de cada trapézio será armazenada
- AnT = zeros(1, n);
- %Coloca os trapézios no gráfico ou só calcula a área estima pelos trapézios que não serão colocados
- if disp == 0
- for i=1:n
- v=[xl(i) f1(xl(i));(xl(i) + dx) f1(xl(i) + dx);(xl(i) + dx) f2(xl(i) + dx);xl(i) f2(xl(i))];
- fill(v(:,1), v(:,2) ,'r');
- AnT(i)=polyarea(v(:,1), v(:,2));
- hold on;
- endfor
- else
- for i=1:n
- v=[xl(i) f1(xl(i));(xl(i) + dx) f1(xl(i) + dx);(xl(i) + dx) f2(xl(i) + dx);xl(i) f2(xl(i))];
- AnT(i)=polyarea(v(:,1), v(:,2));
- endfor
- endif
- %Soma da área dos trapézios
- A = sum(AnT);
- endif
- %plota as funções f1 e f2
- if disp == 0
- s=a:0.01:b;
- plot(s,f1(s),'LineWidth',2,'Color','k');
- hold on;
- plot(s,f2(s),'LineWidth',2,'Color','k');
- grid on;
- xlim([a b]);
- set(gca,'FontSize',18);
- pbaspect([1 1 1]);
- title((num2str(A)));
- endif
- P = A;
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement