22 de Dezembro de 2020
Grupo I
1. • Código da função newtonquasi:
iterada(1) = x0; % vetor iterada, que guardará os valores da função das aproximações
valor = feval(funcao, x0); % valor da função no ponto da aproximação inicial
for a = 1: MaxIter
% variante do método de Newton
fracao = delta / (feval(funcao, iterada(a) + delta) - feval(funcao, iterada(a)));
multiplicacao = fracao * valor;
iterada(a+1) = iterada(a) - multiplicacao;
valor = feval(funcao, iterada(a+1)); % valor será o valor da função para cada iterada
end
z = iterada(a+1);
fz = feval(funcao, z);
end
-0.2000 2.1999 1.6947 1.3870 1.2080 1.1087 1.0557 1.0282 1.0142 1.0071
1
>> numeroIteradas = numel(iter)-1 % o 1º elemento do vetor iter não é uma iterada
numeroIteradas = 9
Para x0 = -0.3:
>> [z, fz, iter] = newtonquasi( @(x) x^3 - x^2 - x +1, -0.3, 1e-5, 1e-2, 20)
z = 1.0069
fz = 9.5653e-05
iter =
-0.3000 8.7987 6.0093 4.1641 2.9530 2.1700 1.6761 1.3760 1.2018 1.1053
1.0539 1.0273 1.0138 1.0069
>> numeroIteradas = numel(iter)-1 % o 1º elemento do vetor iter não é uma iterada
numeroIteradas = 13
xn xn
−0.2000000000000000 −0.3000000000000000
2.1999 8.7987
1.6947 6.0093
1.3870 4.1641
1.2080 2.9530
1.1087 2.1700
x0 −0.2 −0.3
1.0557 1.6761
Número de iteradas 9 13
1.0282 1.3760
1.0142 1.2018
1.0071 1.1053
− 1.0539
− 1.0273
− 1.0138
− 1.0069
-- código aqui --
Intervalos
[X.XXXXXXXXXXXXXXX × 10X , X.XXXXXXXXXXXXXXX × 10X ]
[X.XXXXXXXXXXXXXXX × 10X , X.XXXXXXXXXXXXXXX × 10X ]
(b) • Código para obter os vectores x e y, ajuste dos pontos e gráfico da Figura 1:
-- código aqui --
grafico.jpg
K∞ = ...
-- código aqui --
Grupo II
Código para obter as funções aproximadores, os valores da tabela e o gráfico da Figura 2 em formato .jpg:
x = [4 4.25 4.5 4.75 5 5.25 5.5 5.75 6 6.25 6.5 6.75 7];
y = [0.981 0.421 0.211 0.0728 0.136 -0.00936 0.379 0.469 0.931 1.16 2.43 3.07 3.82];
n = 13; % numero de pontos
m = 1; % grau do polinómio
gl = n - m - 1; % calculo inicial do grau de liberdade
p = {[0 0], [0 0 0], [0 0 0 0], [0 0 0 0 0], [0 0 0 0 0 0], [0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0],
[0 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 0 0 0], [0 0 0 0 0 0 0 0 0 0 0 0]};
% armazena cada polinómio de grau cada vez maior ^^
sse = zeros(11,1); % estrutura para armazenar as SSE
MSE = zeros(11,1); % estrutura para armazenar as MSE
MSE1 = zeros(11,1); % estrutura para armazenar as MSEm+1
while m < 12
[p{1,m} , e] = polyfit(x, y, m);
poly2sym(p{1,m}) % Symbolic Math Toolbox 8.3 para representar as funções aproximadoras
sse(m,1) = e.normr^2;
MSE(m,1) = sse(m,1) / gl;
gl = gl - 1; % gl para o MSE seguinte
m = m + 1;
end
while m < 11
MSE1(m,1) = MSE(m,1)/MSE(m+1,1);
m = m + 1;
end
figure
% left plot
subplot(1, 2, 1)
plot(x,y,’o’, z, polyval(p{1,1},z), ’k’, z, polyval(p{1,2},z), ’r--’, z, polyval(p{1,3}, z),
’b--’, z, polyval(p{1,4},z), ’g’,z, polyval(p{1,5},z), ’r-.’, z, polyval(p{1,6},z), ’b-.’)
title(’Left Plot’)
xlabel(’x’)
ylabel(’y’)
legend(’Pontos’, ’grau 1’, ’grau 2’, ’grau 3’, ’grau 4’, ’grau 5’, ’grau 6’)
% right plot
subplot(1, 2, 2)
plot(x,y,’o’, z, polyval(p{1,7},z), ’k’, z, polyval(p{1,8},z), ’r--’, z, polyval(p{1,9}, z),
’b--’, z, polyval(p{1,10},z), ’g’, z, polyval(p{1,11},z), ’r-.’)
title(’Right Plot’)
xlabel(’x’)
ylabel(’y’)
legend(’Pontos’, ’grau 7’, ’grau 8’, ’grau 9’, ’grau 10’, ’grau 11’)
graficosidebysideG46.jpg
Justificação da escolha do modelo: O modelo escolhido para aproximar os pontos da Tabela 1 foi o polinómio de grau 5 devido à
SSE e MSE associadas serem já próximas de 0, não diminuíndo muito mais para graus superiores
cujas representações gráficas,que para alguns, embora passem mais perto dos pontos no geral
começam a fazer menos sentido como polinómio não interpolador
Modelo escolhido:
(7896416770382521*x^5)/36028797018963968 + (6780489079264641*x^4)/1125899906842624
- (4612150818465515*x^3)/70368744177664 + (6228181797081533*x^2)/17592186044416
- (4181733181709233*x)/4398046511104 + 4473733286160251/4398046511104
Grupo III
1. Código da função integratrap:
matriz(k, 3) = 0;
matriz(k, 4) = 0;
end
end
if k >= 3
end
end
end
-- código aqui --
graficosidebyside3.jpg
(b) Código para calcular os valores dos integrais utilizando a função integratrap:
-- código aqui --
Terceiro integral
n Tn |T2n − Tn | |T2n − Tn |/|T4n − T2n |
2 X.XXXXXXXXXXXXXXX × 10X 0 0
4 X.XXXXXXXXXXXXXXX × 10X X.XXXX × 10X 0
X X
8 X.XXXXXXXXXXXXXXX × 10 X.XXXX × 10 X.XXXX × 10X
X X
16 X.XXXXXXXXXXXXXXX × 10 X.XXXX × 10 X.XXXX × 10X
.. .. .. ..
. . . .
-- código aqui --
Bibliografia
Silva, A., e P. Machado. 2016. Nome do livro. Editora.
Fonseca, A., e B. Sousa. 2019. “Nome do artigo”. Nome da revista X(X): p23-p30.