# Lista 3
Grupo
---
João Vitor Prado
Larissa Toledo
Kaleb Alves
Os enunciados dos 7 exercícios desta lista se encontram [aqui](https://drive.google.com/file/d/1QTGabd1bW2FtmLKFmmd2UpwesjBRimKN/view).
[toc]
## Exercício 1
Código:







## Exercício 2
Para essa questão, uma vez definido o polinômio como:
$C2*X^2+C1*X+C0= P(x)$, e fazendo uso dos pontos apresentados P(1)=-32, P(2)=1 e P(4)=3, teremos o seguinte sistema:

Para resolver, usaremos as matrizes A, X e B, respectivamente:

Onde:
$A*X=B$
$A^-*A*X=A^-*B$
$X=A^-*B$
e obteremos: C0= -17, C1=13 e C2= -2
Portanto:
$P(X)=-2*X^2+13*X-17$
Gráfico:

---
Código em Python:
```
import numpy as np
#declarar as matrizes
A = np.array([[1,-1,1],[4,2,1],[16,4,1]])
B = np.array([[-32],[1],[3]])
#encontrar a inversa de A
A_inversa = np.linalg.inv(A)
#encontrar x
X = np.dot(A_inversa,B)
print (X)
```
## Exercício 3
O Método de Interpolação Polinomial de Newton resulta em um polinômio parecido com o dado no exercício em questão.
Após calcularmos os K's, substituímos em um polinômio para resolvê-lo.
$\ K_1$
$$
s1 =f(x_1)-f(x_0) \over x_1 - x_0
$$
$$
s2 =f(x_2)-f(x_1) \over x_2 - x_1
$$
$$
s3 =f(x_3)-f(x_2) \over x_3 - x_2
$$
$\ K_2$
$$
u_1 = s2 - s1 \over x_2 - x_0
$$
$$
u_2 = s3 - s2 \over x_3 - x_1
$$
Após isso é só substituir no polinômio a seguir:
$$
P(x)= f(x_0)+(x-x_0)*K_1+(x-x_0)*(x-x_1)K_2
$$
Fazendo a substituição direta dos pontos em P(x):
| | $f(x)$ | x | $K_1$ | $K_2$ |
| -------- | -------- | -------- | -------- |-------|
| $x_0$ | -32 | -1 | 11 | -2 |
| $x_1$ | 1 | 2 | 1 | |
| $x_2$ | 3 | 4 | | |
Criando o sistema:

Resolvendo:

Fazendo as substituições, chegamos em:
$P(x)=-32+11(x+1)-2(x+1)(x-2)$
## Exercício 4
Dada a função $f(x) = e^x$
| | $x$ | $f(x)$ |
| -------- | -------- | -------- |
| $x_0$ | 0 | 1 | | |
| $x_1$ | $1 \over 2$ | $\sqrt e$ | | |
| $x_2$ | 1 | $e$ | | |
Para encontrarmos a função de interpolação, basta acharmos os K's ou deltas e susbstituirmos na equação abaixo:
$P(x) = f(x_0) + (x – x_0)*K_1 + (x – x_0)*(x – x_1) K_2$
#### Método de La Grange
O método de La Grange genericamente se utiliza quando pretendemos determinar o polinómio interpolador de grau menor ou igual a n sendo conhecidos (n+1) pontos.
$L_0=(x-0,5)(x-1)(0-0,5)(0-1)$
$L_0=2x^2-3x+1$
$L_1=-4x^2+4x$
$L_2=2x^2-x$
Substituindo:
$P(x)=(2x^2-3x+1)+1,648721271(-4x^2+4x)+2,71828182(2x^2-x)$
$P(x)=0,841678572x^2+0,876603256x+1$
Plotando o gráfico:
```
x=[0:.2:1]
y=exp(x)
y2= ((21/25)*((x)^2)) + (((22/25)*(x))+1)
my=[y; y2]'
plot2d(x,[my])
```
Obs: Se analisarmos uma função $e^x$ e nosso polinômio, no mesmo interval, as curvas serão muito parecidas:

## Exercício 5
Dados os pontos da tabela, realizamos uma interpolação linear e sobrepomos o gráfico obtido com $f(x)=cos(x)$ no intervalo dado.
(Aproximando a escala, temos um valor de x(0.96 , 0.56)).

Vamos assumir 3 valores próximos do cruzamento das funções:
$(x_0, y_0) = (0,500; 0,011)$
$(x_1, y_1) = (1,000; 0,600)$
$(x_2, y_2) = (1,500; 0,990)$
Podemos utilizar o método de Lagrange para resolver esse problema.
$P(x)=f(x_0)L_0(x)+f(x_1)L_1(x)+f(x_2)L_2(x)$
Calculando $L_0,L_1,L_2$:
$L_0=$ $(x-1,000)(x-1,500) \over (0,500-1,000)(0,500-1,500)$
$L_1=$ $(x-0,500)(x-1,500) \over (1,000-0,500)(1,000-1,500)$
$L_2=$ $(x-0,500)(x-1,000) \over (1,500-0,500)(1,500-1,000)$
Temos:
$L_0=$ $2x²-5x+3$
$L_1=$ $-4x²-8x+3$
$L_2=$ $2x²-3x+1$
Substituindo no polinômio $P(x)$, temos:
$P(x)=-0,398x²+1,775x-0,777$
```
function[P]=lagrange(X,Y)
n=length(X)
x=poly(0,"x");P=0;
for i=1:n, L=1;
for j=[1:i-1,i+1:n] L=L*(x-X(j))/(X(i)-X(j));end
P=P+L*Y(i);
end
endfunction
X=[0;0.5;1;1.5;2;2.5;3];Y=[-0.85;0.011;0.6;0.99;1.233;1.361;1.4];P=lagrange(X,Y)
P = - 0.85 + 2.0492333x - 0.7103778x^2 + 0.1091667x^3 + 0.0092222x^4 - 0.0084x^5 + 0.0011556x ^6
```
Gráfico gerado:

$cos(x)=-0.85+2.0492333*x-0.7103778*x^2+0.1091667*x^3+0.0092222*x^4-0.0084*x^5+0.0011556*x^6$
```
program L
real::g,s,xa
real, dimension(5)::x
real, dimension (5)::y
read*,xa
x=(/0.0,0.5,1.1,5.2,2,5.3/)
y=(/-0,85.0,011.0,6.0,99.1,233.1,361.1,4/)
S=0.0
do i=1,5
g=1.0
do j=1,5
if (i.eq.j) cycle
g=g*((xa-x(j))/(x(i)-x(j)))
end do
s=s+g*y(i)
end do
end program L
```
Podemos resolver como um **sistema linear** também de tal forma:
$a0+0,500*a1+0,250*a2=0,011$
$a0+1,000*a1+1,000*a2=0,600$
$a0+1,500*a1+2,250*a2=0,990$
Aplicando Cramer:
$a0 = -0,777$
$a1 = 1,775$
$a2 = -0,398$
Substituindo na eq inicial:
$h(x)= -0,398x²+1,755x-0,777$
## Exercício 6
Plotando os dados da tabela dada no exercício, temos o seguinte gráfico:

O objetivo aqui é ajustar uma reta do tipo $y=ax+b$

Encontrar a por:

Passando os dados para uma tabela:

Calculando a:
$$
a = (11856121,5 - 16*[(32024*5923,3)/162]) \over 64096376- 16*(32024/162)
$$
$a=1,87221$
Substituindo na equação anterior:
$b = 5923,3/16 - a*(32024/16) = -3377,01448$
Ou seja, a equação da reta é:
$y(x) = 1,87221x - 3377,01448$
## Exercício 7
|T(Celsius) | 79 | 190 | 357 | 524 | 690 |
| -------- | -------- | -------- | -------- |-------|------|
| K | 1.000 | 0.932 | 0.839 | 0.759 | 0.693 |
Se possuímos raízes e precisamos verificar se a equação de uma curva conhecida se aproxima dos pontos de um gráfico, podemos usar o método dos mínimos quadrados: $f(x) = ax²+bx+c$. Podemos transformar essa equação em uma matriz:
$[f]=[x²+1] * \begin{bmatrix}x_1\\x_2\\x_3\\\end{bmatrix}$
onde $x²+1 = \phi$ e a matriz de ${x_1,x_2,x_3} = \theta$
Construindo tabela:

onde $g= \phi*\theta$ e $\theta=[\phi*T\phi]^⁻1*\phi T*g$
Resolvendo o sistema, chegamos em:
$K=aT²+bT+c =>$ $K=0,0000023098560T²+0,00068706T+1,0525894404$
Resolução por código:
```
T=[6241 79 1;36100 190 1;127449 357 1;274576 524 1;476100 690 1];
G=[1;0.932;0.839;0.759;0.693];
O=T'*T;
I=inv(O);
thetai=I*T';
thetaf=thetai*G;
thetaf
format(16);thetaf
thetaf=
a = 0.0000002309856
b = - 0.0006807400010
c = 1.0525894404658
```

#### Referências
- Coelho et al. Ajuste de curvas pelo método dos mínimos quadrados (MMQ). Material didático apresentado para a disciplina Métodos Experimentais em Engenharia, Universidade Federal do ABC, 3º quadrimestre de 2016. Disponível em: <https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnx1ZmFiY21lZWJjMTcwN3xneDoyN2FkN2NjMjc2MzY4ZTI2>. Acesso em 05 de novembro de 2016.
- RUGGIERO, Márcia A. Gomes. Cálculo Numérico: aspectos teóricos e computacionais. 2. ed. São Paulo: Pearson Makron Books, 1996.