Método do trapézio composto com gráfico

Segue abaixo um algoritmo para cálculo de Integral pelo método do trapézio composto com resultado gráfico no final.

Código feito no MATLAB


function integral2
    f=input('nDigite a função f(x):nExemplo: @(x)x^2+4*x+4n ');
    a=input ('nDigite o limite inferior a: ');
    b=input ('nDigite o limite superior b: ');
    n=input ('nDigite a quantidade de intervalos: ' );
    h=(b-a)/n; %intervalo h
    xi=a+h;  %valor inicial para x
    soma=0;

   for i=1:n-1 % contagem da soma das partes
                soma=soma+f(xi); % soma partes intermediárias
                xi=xi+h;  % novo valor de xi
   end

    I=(h/2)*(f(a)+f(b))+h*soma; % resultado da integral
    fprintf('nO valor da Integral numérica é: %fnn',I); % imprime resultado

    %Desenhando o gráfico
    pause (3);

    x=a:h:b; % Cria vetor X do gráfico

    for j=1:1:length(x) % Conta ate o tamanho de x
    y=subs(f,x); % Cria o vetor Y, substituindo 1a1
    end

    ezplot(f,x); % Plota a função f em funçao de X
    hold on % mantém os desenhos no gráfico
    plot(x,y,'r'); % liga pontos Y na direção X

    for k=1:1:length(x)-1 %Contador para criar os polígonos do intervalo
    rx = [x(k) x(k) x(k+1) x(k+1)];
    ry = [y(k) 0 y(k+1) 0];
    k = convhull(rx, ry);
    fill (rx(k), ry(k), 'g','facealpha', 0.23); %preeenche o polígono com cor
    end
stem(x,y,'r') %circula os pontos y em vermelho
end

O resultado do gráfico no exemplo fica conforme a figura abaixo:

O código fonte Matlab se encontra no link abaixo:

Abraços, até uma próxima.

9 Comentários

  1. Rafael Acurcio

    Valeu cara, ajudou bastante.

    Responder
  2. Thais

    A mim também. Só estou me enrolando para passar a função como parâmetro .

    Responder
  3. Roberta Palermo

    olá quando coloco a função dá erro , sabe como faço para definir a função

    Responder
    1. gutomelo

      A função ele pede quando vc executa o script, o que acontece é que a função pode dar erro devido a versão do Matlab, por falta de compatibilidade ou algo assim. Eu atualizei o link no post pra baixar o script. Tente executar e se der erro, só pode ser o Matlab mesmo..

      Responder
  4. Roberta Palermo

    Você sabe me dizer o que significa o ponto na frente de um intervalo ? ex:[1:.1:2] , isso foi teste que fiz e meu programa só rodou assim. obrigada

    Responder
    1. gutomelo

      Olha tem um tempinho que eu não mexo no Matlab, este post é de 2011. Só sei que os dois pontos representa o intervalo.
      Abraços.

      Responder
  5. Matheus

    Ola Guto.
    Tem como você manda um exemplo com as funções e todos os parâmetros já declarados?
    Ainda estou aprendendo a usar o MATLAB, então nem sei muito como vou declarar os parâmetros.
    Vlw!

    Responder
    1. Guto Melo

      Matheus, segue link: https://onedrive.live.com/redir?resid=FD97C184DB3B30C1!105&authkey=!AAJVWqfKIIC8_JQ&ithint=folder%2czip

      Desculpa a demora, não estou podendo dar atenção ao blog.

      Responder
  6. Rhelrison

    Obg Guto pela ajuda, vou tentar fazer rodar esse trapezio rsrs. Vlw pela força.

    Responder

Deixar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *