Você está na página 1de 5

Universidade de São Paulo – USP

Escola de Engenharia de São Carlos - EESC


SME0300 - Cálculo Numérico

Lista 2

1 exercicio

1.1
Para representar esse número são necessários 8 bits; 1 para o sinal, 3 para a base e mais
4 para o expoente.

1.2
O maior número real representado é dado por:

Xmax = (−1)0 1110 111

Xmax = (−1)0 (2 − 2−2 )27 = 224

1.3
O menor número positivo representado é dado por:

Xmenor>0 = (−1)0 0010 111

Xmenor>0 = (−1)0 (2 − 2−2 )2− 6 = 0.0117

1
2 exercicio

clear all; close all; clc;

%% Gerando matriz 10x10 com valores aleatorios


A = rand(10,10);

n = size(A,1);

%% Fazendo A triangular inferior


for i = 1:n

for j = i+1:n

A(i,j) = 0;

endfor

endfor

A
inv(A)

Observando as matrizes geradas a partir do código feito vemos que a matriz


inversa também é triangular inferior, porém, diferentemente da matriz original a matriz
inversa possui valores maiores em módulo do que 1 e também possui valores negativos.

3 exercicio

clear all; close all; clc;

%%% matriz de elementos aleatorios


Ai = rand(100,100);

A = Ai;

n = size(A,1);
L = eye(n);
P = eye(n);

2
%% Algoritmo para d e c o m p o s i o LU
for r = 1:n−1

%% PIvoteamento
[V, k] = max(abs(A(r:n,r)));

k = k + r − 1;

if(k!=r)

temp = A(k,:);
A(k,:) = A(r,:);
A(r,:) = temp;

temp = P(k,:);
P(k,:) = P(r,:);
P(r,:) = temp;

endif

for i = r+1:n

m = − A(i,r)/A(r,r);

for j = r:n

A(i,j) = A(i,j) + m*A(r,j);

L(i,j) = L(i,j) − m*L(r,j);

endfor

endfor
endfor

L
U = A
P

%% determinante de A
det = 1;

3
for i = 1:n

det = det*U(i,i);

endfor

%%% D e c o m p o s i o usando a f u n o
[L2, U2, P2] = lu(Ai)

Determinando o tempo de execução.

clear all; close all; clc;

A = rand(100,100);

%% D e c o m p o s i o LU

tic;
[L, U, P] = lu(A);
tempo_lu = toc

%% Calculo do determinante

tic;
x = det(A);
tempo_det = toc

A função mais rápida é a “lu()”; o provável motivo é que a função “det()” deve
fazer a decomposição LU da matriz, pois assim é mais prático calcular o determinante.

4 exercicio

clear all; close all; clc;

A = [8 1 −1;1 −7 2;2 1 9];


B = [5; 25; −10];

format long;

4
%% A
x = A\B;

%% B
res = norm(B−A*x);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Obtendo C e G
n = size(A,1);
D = diag(diag(A));
C = (eye(n) − inv(D)*A);
G = inv(D)*B;

%% tolerancias
tol = 1e−14;
k = 0;
X0 = [1; 1; 1];

%% Metodo de Gauss−Jacobi
while (norm(B−A*X0) > tol)

X0 = C*X0 + G;
k = k + 1;
res1 = norm(B−A*X0);
end

Abaixo estão os valores do número de iterações e do resíduo para cada tolerância.

Tolerâncias Iterações Resíduo


1e-03 9 3.049
1e-06 14 6.483
1e-014 29 3.972

Você também pode gostar