ExercicioCN2 PDF

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 9

ATIVIDADE AVALIATIVA DE CALCULO NUMÉRICO

Autores: Arthur dos Reis Lemos Fontana Mat.201434040010


Roberto Thomé C. Rocha Mat.201434040003

4.1 - Aplicando-se o método da decomposição LU da matriz:


... ... 3 ...
 
 4 −1 10 8 
A=
 
 ... −3 12 11 

0 −2 5 10
... 0 ... ... ... −1 ... 5
   
 2 ... ... ...   ... 1 ... −2 
Obteve-se as matrizes: L=  U=
   
 3 0 ... 0   ... 0 3 −4 

0 ... 1 ... 0 ... 0 10


Preencher os espaços pontilhados com valores adequados.

Solução

Para a primeira linha de U, da definição obtemos:


u1j = a1j , j = 1, 2, 3...

Logo:
u11 = a11 u12 = −1 u13 = 3 u14 = 5

Para a primeira coluna de L.


li1 = ua11
i1
i = 2, 3, 4...

4 a31 0
l21 = u11
−→ l31 = u11
−→ l41 = u11

Para segunda linha de U.


u2j = a2j − l21 × u1j j = 1, 2, 3, 4...
u22 = a22 − l21 × u12

1 = −1 − ...4 × −1
... = 2
Portanto:
l21 = 2 e u11 = 2

u23 = a23 − l21 × u13


u23 = 10 − 2 × 3
u23 = 4

1
Complementando as matrizes.
l42 = a42 −lu4122×u12
l42 = −2

u31 = a31 − l31 × u13


0 = a31 − 0
a31 = 0

2 −1 3 5 1 0 0 0 2 −1 3 5
     
 4 −1 10 8   2 1 0 0   0 1 4 −2 
A= L= U=
     
0 −3 12 11 3 0 1 0 0 0 3 −4
  
     
0 −2 5 10 0 −2 1 1 0 0 0 10

4.2 - Considere o sistema:

5x1 + 2x2 + x3 = −12


−x1 + 4x2 + 2x3 = 20
2x1 − 3x2 + 10x3 = 3
a) Resolva-o usando a decomposição LU
b) Calcule o determinante de A, usando a decomposição.

Solução

Primeiramente eliminamos os termos sem variáveis e substituı́mos os que tem variável


apenas
 por seu coeficiente que vem a frente dos mesmos.
5 2 1
 −1 4 2 


2 −3 10
Posteriormente, usaremos um programa pra acharmos o L e o U da função. Programa
segue abaixo:
clc
clearall
symsxy1y2y3
disp(0 esseprogramadeutrabalho0 )
a = input(0 insiraamatriz 0 )

b = input(0 insiraoresultadodosistemaemf ormadematriz3x10 )

a1 = solve(a(2, 1) − a(1, 1) ∗ x);


a2 = solve(a(3, 1) − a(1, 1) ∗ x);
A = [a(1, 1), a(1, 2), a(1, 3);
solve(a(2, 1) − a(1, 1) ∗ x), a(2, 2) − a1 ∗ a(1, 2), a(2, 3) − a1 ∗ a(1, 3);
solve(a(3, 1) − a(1, 1) ∗ x), a(3, 2) − a2 ∗ a(1, 2), a(3, 3) − a2 ∗ a(1, 3)];
b1 = solve(A(3, 2) − A(2, 2) ∗ x);
B = [A(1, 1), A(1, 2), A(1, 3);
A(2, 1), A(2, 2), A(2, 3);
A(3, 1), b1, A(3, 3) − b1 ∗ A(2, 3)];

2
L = [1, 0, 0];
B(2, 1), 1, 0;
B(3, 1), B(3, 2), 1]
U = [B(1, 1), B(1, 2), B(1, 3);
0, B(2, 2), B(2, 3);
0, 0, B(3, 3)]
determinantea = det(a)
determinanteU = U (1, 1) ∗ U (2, 2) ∗ U (3, 3)
y1 = solve(x ∗ L(1, 1) − b(1, 1));
y2 = solve(y1 ∗ L(2, 1) + x ∗ L(2, 2) − b(2, 1));
y3 = solve(y1 ∗ L(3, 1) + y2 ∗ L(3, 2) + x ∗ L(3, 3) − b(3, 1));
x3 = solve(x ∗ U (3, 3) − y3);
x2 = solve(x ∗ U (2, 2) + x3 ∗ U (2, 3) − y2);
x1 = solve(x ∗ U (1, 1) + x2 ∗ U (1, 2) + x3 ∗ U (1, 3) − y1);
x1
x2
x3

Após executar o programa, verificamos que:


   
1 0 0 5 2 1
 −1 22 11
L=  5
1 0  U=  0
 
5 5


2 −19 23
5 22
1 0 0 2

Conseguimos verificar também que a determinante da matriz pelo método LU, multipli-
cando os termos da diagonal principal de U, obtendo 253. Por fim, conseguimos achar os
valores de x1, x2 e x3, que é respectivamente, -4, 3 e 2.

4.4 - Considere a matriz A , n × n, com todas as submatrizes principais não singula-


res. Exiba as formulas de decomposição LU, onde L é matriz triangular inferior e U é
matriz triangular superior com 1 na diagonal.

Solução

u1j = a1j , j=1,2,3...


li1 = ua11
i1
i = 2, 3, 4...
u2j = a2j − l21 × u1j j = 1, 2, 3, 4...

l32 = a32 −lu3122×u12


u33 = a33 − l31 × u13 − l32 × u23

4.5 - Usando a decomposição LU usado no exercı́cio 4.4. Resolver o sistema Ax = b,


onde:
     
2 3 −1 x1 4
A= 1 0 2 ; x= x2 ; b= 3 
    

0 3 −1 x3 2
Solução

3
u1j = a1j , j=1,2,3...
u11 = a11 −→ u11 = 2 u12 = a12 −→ u12 = 3 u13 = a13 −→ u13 = −1

li1 = ua11
i1
i = 2, 3, 4...
a21
l21 = u11 −→ l21 = 12 l31 = a31
u11
−→ l31 = 0
2
−→ l31 = 0

u2j = a2j − l21 × u1j j = 1, 2, 3, 4...


−3
u22 = a22 − l21 × u12 −→ u22 = 0 − 12 × 3 −→ u22 = 2

u23 = a23 − l21 × u13 −→ u23 = 2 − 21 × (−1) −→ u23 = 5


2

a32 −l31 ×u12 3−0


l32 = u22
−→ l32 = −3 −→ l32 = −2
2

5
u33 = a33 − l31 × u13 − l32 × u23 −→ u33 = −1 − 0 + 2 × 2
−→ u33 = 4
   
1
0 0 2 3 −1
 1 −3 5
L= 2 1 0  U= 0
 
2 2


0 −2 1 0 0 4
     
10 0 y1 4
 1
L= 2 1 0 ×  y2  =  3 
    

0 −2 1 y3 2
y1 = 4
y1
2
+ y2 = 3 −→ 2 + y2 = 3 −→ y2 = 1; −2y2 + y3 = 2 −→ −2 + y3 = 2 −→ y3 = 4

     
2 3 −1 x1 4
−3 5 
 0

×  x2  =  1 
   
2 2 
0 0 4 x3 4
−3x2 5x3
4x3 = 4 −→ x3 = 1; 2
+ 2
= 1 −→ x2 = 1; 2x1 + 3x2 − x3 = 4 −→ x1 = 1

3.1 Resolva o sistema linear abaixo, usando o Método de Eliminação de Gauss.


1.7x1 + 2.3x2 − 0.5x3 = 4.55
1.1x1 + 0.6x2 − 1.6x3 = −3.40
2.7x1 − 0.8x2 + 1.5x3 = 5.50
Solução

Obs:O algorı́timo será disponibilizado em anexo ao e-mail junto a lista em pdf.

3.2 Ache a inversa da matriz abaixo.


 
1 −2 2
 2 −3 2 
 

2 −2 1
Solução

Para as soluções da referida questão usamos os seguintes algorı́timos

4
Figura 1: Imagem representativa do algorı́timo de decomposição de matriz LU.

Figura 2: Imagem representativa do algoritimo de pivotamento para inversão dematriz

3.4 Considere o sistema linear.

0.0002x1 + 2x2 = 2
Calcule a solução do sistema por Eliminação de Gauss e Pivota-
2x1 + 2x2 = 4
mento Parcial, usando 4 casas decimais, sem arredondamento. Calcule o resı́duo r =
b − Ax̄ e comente seus resultados.

Solução.

5
Bem, primeiramente faremos o pivotamento parcial, trocando a primeira linha com a se-
gunda. Posteriormente usaremos um programa pra resolver o sistema pelo método de
eliminação de Gauss.
clc
clear all

syms x
disp(’por gentileza, caso precise, faça o pivotamento manualmente,’)
disp(’não é difı́cil não, só não faço idéia de como fazer por aqui’)
A=input(’feito, insira a matriz 2x3 que corresponde a função’)
disp(’ primeiro passo’)
disp(’zeramos os termos da coluna 1, abaixo to termo 1,1’)
a=solve(A(2,1)-x*A(1,1));
step1=[A(1,1), A(1,2), A(1,3);
solve(A(2,1)-x*A(1,1)),A(2,2)-a*A(1,2), A(2,3)-a*A(1,3)]
disp(’ segundo passo’)
disp(’Agora, resolvemos o sistema pelo método da retroprogressão’)
x2=solve(step1(2,1)+x*step1(2,2)-step1(2,3));
x1=solve(x*step1(1,1)+step(1,2)*x2-step1(1,3));
x1
x2
format long

Após executado o programa, verificamos que os valores de x1 e x2 são respectivamente


1,7500 e 0.9998. Com isso, podemos concluir que quando são inseridos valores muito
próximos de zero, ele carregará um erro, provavelmente um erro por arredondamento,
isso não aconteceria se por acaso trocássemos 0.0002 por 0.

3.7 -

solução

Para acharmos as letras ”a”e ”b”desse programa usaremos o seguinte programa.


clc
clear all
syms k
disp(’letra (a)’)
for k=input(’insira um intervalo apenas com números inteiros e positivos’)
a=[k, 1, 0; k, 2, (k/5); k, 1, 2]
if (1/abs(a(1,1)))*abs(a(1,2)+a(1,3))¡1
(1/abs(a(2,2)))*abs(a(2,1)+a(2,3))¡1 (1/abs(a(3,3)))*abs(a(3,1)+a(3,2))¡1
disp(’valores impostos para k estão ok’)
break
else (1/abs(a(1,1)))*abs(a(1,2)+a(1,3))¿=1
(1/abs(a(2,2)))*abs(a(2,1)+a(2,3))¿=1
(1/abs(a(3,3)))*abs(a(3,1)+a(3,2))¿=1
disp(’há divergência’)
end
end

6
for j=input(’insira um intervalo apenas com números inteiros e positivos’)
b=[j, 1, 0; j, 2, (j/5); j, 1, 2]
disp(’letra b’)
beta1=(1/abs(b(1,1)))*(abs(b(1,2))+abs(b(1,3)));
beta2=(1/abs(b(2,2)))*(abs(b(2,1)*beta1+abs(b(2,3))));
beta3=(1/abs(b(3,3)))*(abs(b(3,1))*beta1+abs(b(3,2))*beta2);

if (1/abs(b(1,1)))*(abs(b(1,2))+abs(b(1,3)))¡1
(1/abs(b(2,2)))*(abs(b(2,1)*beta1+abs(b(2,3))))¡1
(1/abs(b(3,3)))*(abs(b(3,1))*beta1+abs(b(3,2))*beta2)¡1
disp(’método de gauss seidel ok’)
break
else (1/abs(b(1,1)))*(abs(b(1,2))+abs(b(1,3)))¿=1
(1/abs(b(2,2)))*(abs(b(2,1)*beta1+abs(b(2,3))))¿=1
(1/abs(b(3,3)))*(abs(b(3,1))*beta1+abs(b(3,2))*beta2)¿=1
disp(’há divergência ’)
end
end

Nele, Verificamos se o critério de convergência para os métodos de gauss-jacobi e gauss-


seidel. No caso de Jacobi, não há nenhum valor inteiro de cá que satisfaça o nosso critério
de convergência, já para o método de seidel, temos o valor inteiro positivo 2. Posterior-
mente pede-se que calcule o sistema usando o método mais adequado, nesse caso, como
o único que respeitou o fator de convergência foi o método de gauss-seidel, usaremos ele.
Essa parte da questão pode ser executada com o seguinte script (pra facilitar o trabalho,
eu inseri a equação, logo não precisa inserir manualmente).

clc
clear all
a=[k, 1, 0; k, 2, (k/5); k, 1, 2]
if (1/abs(a(1,1)))*abs(a(1,2)+a(1,3))¡1
disp(’primeira coluna ok’)
else (1/abs(a(1,1)))*abs(a(1,2)+a(1,3))¿=1
disp(’primeira coluna diverge’)
break
end
if (1/abs(a(2,2)))*abs(a(2,1)+a(2,3))¡1
disp(’segunda coluna ok’)
else (1/abs(a(2,2)))*abs(a(2,1)+a(2,3))¿=1
disp(’segunda coluna diverge’)
break
end
if (1/abs(a(3,3)))*abs(a(3,1)+a(3,2))¡1
disp(’terceira coluna ok’)
else (1/abs(a(3,3)))*abs(a(3,1)+a(3,2))¿=1
disp(’terceira coluna diverge’)
break

7
end
b=[2; 3; 2]
x0=[1; 1; 1]
x11=(1/a(1,1))*(b(1,1)-a(1,2)*x0(2,1)-a(1,3)*x0(3,1))
x21=(1/a(2,2))*(b(2,1)-a(2,1)*x0(1,1)-a(2,3)*x0(3,1))
x31=(1/a(3,3))*(b(3,1)-a(3,1)*x0(1,1)-a(3,2)*x0(2,1))
x1=[x11;x21;x31]
norma=norm(x1-x0,inf)
x12=(1/a(1,1))*(b(1,1)-a(1,2)*x1(2,1)-a(1,3)*x1(3,1))
x22=(1/a(2,2))*(b(2,1)-a(2,1)*x1(1,1)-a(2,3)*x1(3,1))
x32=(1/a(3,3))*(b(3,1)-a(3,1)*x1(1,1)-a(3,2)*x1(2,1))

Com isso, conseguimos calcular os termos x1, x2 e x3, de 2 iterações e extrair a norma
máxima de cada.

clc
clear all syms M
a=[k, 1, 0; k, 2, (k/5); k, 1, 2]
beta1=(1/abs(a(1,1)))*(abs(a(1,2))+abs(a(1,3)))
beta2=(1/abs(a(2,2)))*(abs(a(2,1)*beta1+abs(a(2,3))))
beta3=(1/abs(a(3,3)))*(abs(a(3,1))*beta1+abs(a(3,2))*beta2)
if (1/abs(a(1,1)))*(abs(a(1,2))+abs(a(1,3)))¡1
disp(’primeira coluna ok’)
else (1/abs(a(1,1)))*(abs(a(1,2))+aba(sa(1,3)))¿=1
disp(’primeira coluna diverge’)
break
end
if (1/abs(a(2,2)))*(abs(a(2,1)*beta1+abs(a(2,3))))¡1
disp(’segunda coluna ok’)
else (1/abs(a(2,2)))*(abs(a(2,1)*beta1+abs(a(2,3))))¿=1
disp(’segunda coluna diverge’)
break
end
if (1/abs(a(3,3)))*(abs(a(3,1))*beta1+abs(a(3,2))*beta2)¡1
disp(’terceira coluna ok’)
else (1/abs(a(3,3)))*(abs(a(3,1))*beta1+abs(a(3,2))*beta2)¿=1
disp(’terceira coluna diverge’)
break
end
b=[2; 3; 2]
x0=[1; 1; 1]
x11=(1/a(1,1))*(b(1,1)-a(1,2)*x0(2,1)-a(1,3)*x0(3,1))
x21=(1/a(2,2))*(b(2,1)-a(2,1)*x11-a(2,3)*x0(3,1))
x31=(1/a(3,3))*(b(3,1)-a(3,1)*x11-a(3,2)*x21)
x12=(1/a(1,1))*(b(1,1)-a(1,2)*x21-a(1,3)*x31)
x22=(1/a(2,2))*(b(2,1)-a(2,1)*x12-a(2,3)*x31)
x32=(1/a(3,3))*(b(3,1)-a(3,1)*x12-a(3,2)*x22)
primeirai teracao = norm([x12; x22; x32] − [x11; x21; x31], inf )

8
x13 = (1/a(1, 1)) ∗ (b(1, 1) − a(1, 2) ∗ x12 − a(1, 3) ∗ x32)
x23 = (1/a(2, 2)) ∗ (b(2, 1) − a(2, 1) ∗ x13 − a(2, 3) ∗ x32)

x33=(1/a(3,3))*(b(3,1)-a(3,1)*x13-a(3,2)*x23)
Segundai teracao = norm([x13; x23; x33] − [x12; x22; x32], inf )
Após executado, temos que o valor da norma máxima após a segunda iteração foi de 0.1.

Você também pode gostar