Escolar Documentos
Profissional Documentos
Cultura Documentos
Integração em MatLab
f(xi) -2 12 -6 10 11
1
e I=
∫ f ( x)dx
−1
o valor da sua integral:
3. Escreva um programa em Matlab que dada uma função f(x), um intervalo [a,b]
e um número n de subintervalos:
(a) usando a regra dos trapézios composta com n subintervalos determina um
valor aproximado para:
b
I = ∫ f ( x ) dx
a
(b) determine o valor exacto desta integral, o erro absoluto e erro relativo
desta aproximação.
0 .5
I = ∫ cos( x ) − e − x dx (exerc. 2 FP3)
0
6. Escreva um programa em Matlab que dada uma função f(x), um intervalo [a,b]
e um número de subintervalos n:
Métodos Numéricos e Estatísticos Exercícios para o Matlab
Integração Numérica
T=TRAPZ (X,Y) – aproxima a integral duma função definida pelos pontos com
abcissas X e ordenadas Y usando a regra dos trapézios
» X= [-1,-0.5,0,0.5,1]
X=
-1.0000 -0.5000 0 0.5000 1.0000
» Y=[-2,12,-6,10,11]
Y=
-2 12 -6 10 11
» i=trapz(X,Y)
i=
10.2500 !!! resultado
Para utilizar a função quad primeiramente a função f(x) deverá ser definida
num ficheiro externo.
function y=f(x)
y=cos(x)-exp(-x);
Computação simbólica
Exemplo 1: Determinar I = ∫ 1 − x 2 dx
» syms x
» i=int(sqrt(1-x^2))
i=
1/2*x*(1-x^2)^(1/2)+1/2*asin(x)
» pretty(i)
1/2
1/2 x (1 - x 2) + 1/2 asin(x)
1
Exemplo 2: Determinar I = ∫ 1 − x 2 dx
0
» syms
» int(sqrt(1-x^2),0,1)
ans =
1/4*pi
Métodos Numéricos e Estatísticos Exercícios para o Matlab
1.
format long;
X= [-1,-0.5,0,0.5,1];
Y=[-2,12,-6,10,11];
i=trapz(X,Y);
disp('O valor que aproxima a integral pelo método dos trapezios
é:'), disp(i)
2.
function s = trapezio(f,a,b,n)
%------------------------------------------------------------------
% Esta função implementa a Regra do Trapézio Composta que aproxima o
% valor da integral duma função num intervalo dado
% I ≈ h/2 [f(x0)+ 2f(x1) + 2f(x2) + ... + 2f(xn-1) + f(xn-1)
%
% Para executar chamar:
% s = trapezio(f,a,b,n)
% Parâmetros de entrada
% f - a função deve ser introduzida como string
% a,b - intervalo [a,b]
% n - número de subintervalos
% Parâmetros de saída
% s - o valor aproximado da integral obtido pela regra do trapézio
composto
%--------------------------------------------------------------------------
Como executar:
» s=trapezio('sqrt(1-x^2)',0,1,5)
s=
0.75926220722089
Métodos Numéricos e Estatísticos Exercícios para o Matlab
3.
%--------------------------------------------------------------
% Este programa dada uma função f(x), um intervalo [a,b] e um
% número n de subintervalos determina um valor aproximado para
% a integral da função usando a regra dos trapézios
%--------------------------------------------------------------
echo off;
format long;
fun=input('Introduza a função (como string): ');
disp('Introduza o intervalo para x:');
a=input('a='); b=input('b=');
n=input('Introduza o número de subintervalos: ');
s=trapezio(fun,a,b,n);
disp('O valor aproximado da integral: '), disp(s);
syms x;
i=int(fun,a,b);
i=double(i); % converte de simbólico a double
erroabs=i-s;
errorel=erroabs/abs(i);
disp('O valor exacto da integral: '), disp(i);
format short e;
disp('O erro absoluto:' ), disp(erroabs);
disp('O erro relativo:' ), disp(errorel);
format short;
Como executar:
» int3
Introduza a função (como string): 'sqrt(1-x^2)'
Introduza o intervalo para x:
a=0
b=1
Introduza o número de subintervalos: 5
O valor aproximado da integral:
0.75926220722089
O erro absoluto:
2.6136e-002
O erro relativo:
3.3277e-002
4.
1º. Definir na função num m ficheiro. Neste caso foi definida em f2.m
function y=f(x)
y=cos(x)-exp(-x);
2º. Usar esta função como parâmetro de entrada da função quad do Matlab
echo off;
format long
fun=input('Introduza o nome da função (como string): ');
disp('Introduza o intervalo para x:');
a=input('a='); b=input('b=');
s=quad(fun,a,b);
disp('O valor aproximado da integral é'), disp(s);
Métodos Numéricos e Estatísticos Exercícios para o Matlab
5.
function s = simpson(f,a,b,n)
%--------------------------------------------------------------
% Esta função implementa a Regra de Simpson que aproxima o
% valor da integral duma função num intervalo dado
% Para executar chamar:
% s = simpson(f,a,b,n)
% Parâmetros de entrada
% f - a função deve ser introduzida como string
% a,b - intervalo [a,b]
% n - número de subintervalos
% Parâmetros de saída
% s - o valor aproximado da integral obtido pela regra de
% simpson composto
%--------------------------------------------------------------
if mod(n,2)~=0
disp ('O número de intervalos tem de ser par');
else
format short;
h=(b-a)/n; % determina o incremento para n subintervalos
disp(['O incremento: ',h]);
x= zeros(1,n+1);
% calcular os pontos
disp(n);
x(1)=a;
x(n+1)=b;
for k=2:n
x(k)=x(k-1)+ h;
end
format long;
s =h/3 *s % multipica a soma por h/3 para obter o resultado
end
Como executar:
» s= simpson('cos(x)-exp(-x)',0,0.5,4)
O incremento:
4
x=
0 0.1250 0.2500 0.3750 0.5000
f(x)=
0 0.1097 0.1901 0.2432 0.2711
s=
0.08595631710502