Buscar

LAB5-interpolação e integração

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

LABORATÓRIO 5 
Interpolação e Integração Numérica 
 
Ano 1872 1890 1900 1920 1940 1950 1960 1970 1980 1991 1996 
População 9.9 14.3 17.4 30.6 41.2 51.9 70.2 93.1 119.0 146.2 157.1 
 
1. Interpolação – Algoritmo de Lagrange 
Faça uma função com o nome Lagrange 
Algoritmo de Lagrange 
 
Entrada: Vetores coluna “x” e “y” dos pares de pontos da função a 
ser interpolada e ponto “p” onde a função interpoladora será 
avaliada. 
Saída: valor S da função interpoladora no ponto “p”. 
 
n = comprimento(x) 
S = 0; 
para i = 1 até n 
 L = 1 
 para j = 1 até n 
 se (i~=j) 
 L = L*(p-x(j))/(x(i)-x(j)) 
 fim_se 
 fim_para 
 S = S+L*y(i); 
fim_para 
Estime a população em 1955 e plote a função resultante da interpolação de Lagrange 
para os dados do item 1, a) (deve-se chamar o método de Lagrange para cada um dos 
pontos que compõem o gráfico). Tal método é apropriado para se estimar a população 
em 2010? 
2. Interpolação – Algoritmo de Newton 
Faça uma função com o nome InterNewton 
Algoritmo da interpolação de Newton 
 
Entrada: Vetores coluna “x” e “y” dos pares de pontos da função a ser 
interpolada e ponto “p” onde a função interpoladora será avaliada. 
Saída: Valor P da função interpoladora no ponto “p” 
 
n = comprimento(x) 
Tabdiffdiv = diffdiv(x,y); //funcao diffdiv definida abaixo 
P = y(1); 
para i=2 ate n 
 M = 1 
 para j = 1 ate i-1 
 M = M*(p - x(j)) 
 fim_para 
 P = P + M*Tabdiffdiv(1,i) 
fim_para 
 
 
Algoritmo das diferenças divididas 
 
Entrada: Vetores coluna x e y dos pares de pontos 
Saída: Tabela Tab com as diferenças divididas (de ordem zero até a 
ordem máxima) 
 
n = comprimento(x) 
Tab(:,1)=y; //diferencas divididas de ordem zero 
para i = 1 ate n-1 
 para j = 1 ate n-i 
 Tab(j,i+1) = (Tab(j+1,i)-Tab(j,i))/(x(j+i)-x(j)); 
 fim_para 
fim_para 
 
 
Plote a função resultante da interpolação de Newton para os dados do item 1, a). 
Compare com o gráfico da interpolação de Lagrange. 
3. Interpolação Polinomial como Sistema de Equações 
 
Faça um algoritmo que construa a matriz de Vandermonde para um conjunto de pares 
de pontos (x,y) e em seguida chame o método de Gauss para achar o polinômio 
interpolador de tais pontos. Dica: semelhante ao ajuste polinomial. 
 
4. Funções Nativas para Interpolação 
 [yp]=interp1(x, y, xp, [method]) // Calcula quais os yp correspondentes 
aos xp no polinômio gerado a partir da interpolação dos pontos dados 
nos vetores x e y. 
*method+=”nearest” ->Retorna o y correspondente ao x mais próximo 
de xp. 
*method+=”linear” ->Interpolação polinomial linear a cada 2 pontos. 
*method+=”spline” ->Interpolação por splines. 
ex: 
x=0:%pi 
y=sin(x) 
yp= interp1(x, y, 0.5, “linear”) //resp: yp= 0.4207355 
 
5. Exercício: 
Dados os pontos (0;1) (1;2) (2;5) e (7;2), utilize as funções nativas do Scilab para: 
a) Qual o valor retornado pela interpolação utilizando a função interp1 se 
utilizarmos como parâmetros para a função os pontos dados no enunciado, 
xp=5 e os métodos com critério de proximidade (nearest), linear e splines? 
b) Desenhe o gráfico de zero à 10 contendo os pontos dados no enunciado, a 
interpolação utilizando o método com critério de proximidade (nearest), a 
interpolação utilizando o método linear e a interpolação utilizando o método 
de splines. 
 
6. Aquecimento 
 
a. Abra o console do scilab e plote um gráfico da função descrita logo abaixo 
variando o de 0 a 1 com passo de 0.01. 
 
b. Plote a mesma função com passo de 1, em vermelho. Calcule a área abaixo do 
gráfico em vermelho (atenção para onde está o eixo ). 
 
c. Por último crie uma função com o nome TrapSimples: 
Algoritmo Trapézio Simples 
 
Entrada: Intervalo da integral [a,b]. 
Saída: Valor da integral I. 
 
function I = TrapSimples(a,b) 
I = (b-a)*(f(b) + f(a))/2 
endfunciton 
 
 Utilize o algoritmo para aproximar o valor da integral de no intervalo 
desejado. Em seguida, calcule o erro através da forma analítica de resolução de 
integrais. 
7. Trapézio Composto 
 Faça uma função com o nome TrapComposto. 
Algoritmo Trapézio Composto 
 
Entrada: Intervalo da integral [a,b], número de subintervalos n (a 
função que iremos achar a integral será declarada em f). 
Saída: Valor da integral I. 
 
h=(b-a)/n 
x(1)=a 
y(1)=f(x(1)) // f é função cuja integral será calculada 
I=y(1) 
para i=2 até n 
 x(i)=x(i-1)+h 
 y(i)=f(x(i)) 
 I=I+2*y(i) 
fim_para 
x(n+1)=b 
y(n+1)=f(x(n+1)) 
I=h/2*(I+y(n+1)) 
 Utilizando o código, determine o valor da integral para n = 6. Em seguida 
compare com o método do Trapézio Simples. Qual dos dois apresenta menor erro? 
8. Primeira Regra de Simpson (Simpson 1/3) 
 Faça uma função com o nome Simpson13 
Algoritmo de Simpson 1/3 
 
Entrada: Intervalo da integral [a,b], número de subintervalos n (a 
função que iremos achar a integral será declarada em f). 
Saída: Valor da integral I. 
 
h=(b-a)/n 
x(1)=a 
y(1)=f(x(1)) // f é função cuja integral será calculada 
I=y(1) 
para i=2 até n 
 x(i)=x(i-1)+h 
 y(i)=f(x(i)) 
 se i mod 2 == 0 //resto pela divisão por 2 nulo 
 I=I+4*y(i) 
 senao 
 I=I+2*y(i) 
 fim_se 
fim_para 
x(n+1)=b 
y(n+1)=f(x(n+1)) 
I=h/3*(I+y(n+1)) 
 
 Utilizando o código, determine o valor da integral para n = 6. 
9. Segunda Regra de Simpson (Simpson 3/8) 
 Faça uma função com o nome Simpson38 
Algoritmo de Simpson 3/8 
 
Entrada: Intervalo da integral [a,b], número de subintervalos n (a 
função que iremos achar a integral será declarada em f). 
Saída: Valor da integral I. 
 
h=(b-a)/n 
I=f(a) // f é função cuja integral será calculada 
para i=2 até n 
 se i mod 3 == 1 //resto pela divisao por 3 = 1 
 I=I+2*f(a+i*h-h) //tem que subtrair h pq i começa com 2 
 senao 
 I=I+3*f(a+i*h-h) 
 fim_se 
fim_para 
I=3*h/8*(I+f(b)) 
 
 Utilizando a mesma quantidade de subintervalos do Simpson 1/3 compare os 
resultados obtidos. 
 
10. Funções Nativas para Integração 
a. Trapezio: função I=inttrap(x,y) 
Ex: 
X= 0:0.1:%pi/2 
I = inttrap(x,sin(x)) 
 
b. Quadratura: função I = integrate(expr,v,x0,x1 [,atol [,rtol]])) 
 
 Ex: 
 x0=0;x1=%pi/2; 
 I=integrate('sin(x)','x',x0,x1);

Outros materiais