Está en la página 1de 5

Atividade 03.

Sistemas de Equaes Lineares e No Lineares


IFG Itumbiara - Clculo Numrico
Professor : Ricardo S. Oliveira

Mtodos para Sistemas de Equaes No - Lineares


1 Aplique o Mtodo de Newton para resolver o seguinte sistema no-linear
de duas equaes com duas incgnitas
(, ) =
(, ) =
% sis2.m : Newton para sistema 2x2
% Nestte programa usamos clculo simblico do Matlab
syms x y
f1= '2*x^3-y^2-1';
f2= 'x*y^3-y-4';
f11=diff(f1,x,1); f12=diff(f1,y,1); % Derivadas parciais de f1
f21=diff(f2,x,1); f22=diff(f2,y,1); % Derivadas parciais de f2
xk = 2; y = 3; % Aproximaes inicias
for k =1.6 % Lao das Iteraes
J (1,1) = eval (f11); % Clculo da Jacobiana
J (1,2) = eval (f12) ;
J (2,1) = eval (f21);
J (2,2) = eval (f22) ;
f(1) = eval(f1); % Valores de f1(x,y) e f2(x,y)
f(2) = eval (f2);

v= -J\f' ; % Soluo do Sistema Linear

x = x + v(1); % Atualizando a Aproximao


y = y + v(2);

ms(k,1) = x; % Guardando as Aproximaes na


iterao k
ms(k,2) = y;
mf (k,1)=f(1);
mf(k,2)=f(2);
end

Mtodos para Sistemas de Equaes Lineares

1. Calcule a soluo do sistema usando a inversa de A: x1 = inv (A) * b =


A-1 b .
>> A = [3 -2 2; 1 1 1 ; 2 1 -1]
>> b = [-3 -4 -3]'
>> x = A\b;
% Calcula a soluo do sistema Ax=b.
>> format long; x' % A partir deste comando os resultados sero
apresentados com 15 dgitos.
>> format short % A partir deste comando os resultados sero
apresentados com 5 dgitos.
>> IA = inv(A) % Clculo da inversa da Matriz A
>> IA*A % Clculo do produto das duas matrizes
IA e A.
>> d = det(A) % Determinante da matriz A
>> [V,D] = eig (A) % Clculo dos autovalores e autovetores da
matriz A
>> [L, U, P] = lu(A) % Clculo da Fatorao LU da matriz A
>> [U, E, G] = svd(A) % Clculo da Decomposio em Valores
Singulares da matriz
>> ae= sparse(a); % Posies e valores dos elementos no nulos da
matriz a
>> nnz(a)
>> for i = 1:n; b(i)= sum (a(i,:)); end

P a matriz de permutao do pivotamento usado no clculo dos fatores L


e U. A matriz P multiplicada por A tem o efeito de trocar de linhas
efetuadas quando o pivotamento realizado.

a. Verifique que PA = LU

b. Verifique que, em [L,U] = lu(A), a matriz L apresentada com as trocas


de linhas correspondentes ao pivotamento.

c. Como resolver o sistema usando as Matrizes apresentadas em (b) ?

d. Verifique que s = svd(A) fornece apenas valores singulares da


decomposio.

2. Para eliminar o desperdcio de memria ao armazenar os zeros de uma


matriz esparsa, podem-se guardar apenas seus elementos no-nulos. Para
evitar operaes envolvendo elementos nulos, alguns algoritmos especiais
so aplicados no tratamento de sistemas lineares esparsos no Matlab. Defina
a matriz a, da seguinte forma.
n =8 ; r = 3;
a(1,1) =-2; a(n,n)=-2; a(1,2)=1;a(n,n-1)=1;
for i=2:n-1; a(i,i)=-4; end
for i=2:n-1; a(i,i+1)=1; a(i,i-1)=1; end
for i = 1: n-r; a(i,i+r)=1; end
for i = r+1:n; a(i,i-r)=1; end
a
a. Como se deve proceder para guardar apenas os elementos no-nulos da
matriz a.
b. Se desejamos saber quantos elementos no nulos tem a matriz a:
c. Defina o termo independente de modo que a soluo do sistema ax=b
seja xi=1.
1
3. As matrizes de Hilbert Hn, onde Hij = 1 i, j n, so exemplos
i+j1
clssicos de matrizes mal condicionadas.
a) Utilize o comando hilb[ ] para gerar matrizes das seguintes ordens: 5, 7,
10. Calcule os determinantes das matrizes geradas com o comando det[ ].
O que podemos observar?
b) Resolva os sistemas lineares Hn x = bn, com n = 5, 7, 10. Considere
vetores bn de forma que a soluo exata seja x*= (1, 1, ..., 1)T . Analise os
resultados obtidos.

4. O sistema de cabos ilustrado na figura abaixo est em equilbrio esttico:


a soma das componentes horizontais e verticais das foras que atuam em
cada junta nula.
a) Escreva o sistema de equaes lineares Ax = b que descreve o
equilbrio do sistema.

b) Resolver o Sistema por eliminao Gaussiana

% Disciplina de Clculo Numrico - Prof. OLIVEIRA, R.S.


% Mtodo de eliminao de Gauss -
% Este procedimento resolve k-sistemas lineares, onde a
% matriz A de dimenso n x n comum a todos.
% Os parmetros devem ser passados da forma
% x=EGauss(A,b1,b2,b3,...,bk)
% o resultado eh uma matriz x de dimenso n x k onde a
% coluna j armazena a soluo do sistema Ax=bj
% Dados A: matriz do sistema
% varargin: lista dos vetores dos termos independentes
function x=EGauss(A,varargin)
b=[varargin{:}];
db=size(b);
% Esta parte verifica se o sistema eh quadrado
da=size(A);
n=da(1);
if n ~=da(2),
disp('??? A matriz deve ser quadrada');
break;
end;
% Esta parte verifica se a dimenso do vetor b
% esta de acordo com a dimenso do sistema
if n ~=db(1), disp('??? Erro na dimenso de b'); break; end;
% Cria matriz estendida
Ax=[A,b];
% Fase da eliminao
for k=1:(n-1)
for i=k+1:n
if abs(Ax(k,k)) < 10^(-16),
disp('??? Piv Numericamente Nulo');
break;
end;
m=Ax(i,k)/Ax(k,k);
for j=k+1:da(2) + db(2)
Ax(i,j) = Ax(i,j)-m*Ax(k,j);
end;
CAPITULO 3. SISTEMAS LINEARES 38
end;
end;
% Fase da Retro solu\c{c}\~{a}o
if abs(Ax(n,n)) < 10^(-16),
disp('??? Piv Numericamente Nulo');
break;
end;
for m=1:db(2)
x(n,m) = Ax(n,n+m)/Ax(n,n);
end;
for k=(n-1):-1:1
for m=1:db(2)
som=0;
for j=k+1:n
som=som+Ax(k,j)*x(j,m);
end;
x(k,m) = (Ax(k,n+m)-som)/Ax(k,k);
end;
end;

c) Resolva o sistema Ax = b utilizando a decomposio LU da matriz


A. Neste item, use o comando [L, U, P] = lu(A)

d) Implemente uma verso do mtodo de Gauss-Seidel para resolver o


sistema Ax = b. Utilize no critrio de parada a tolerncia = 10-4.
Compute o nmero de iteraes necessrias para atingir a preciso
e calcule || A x* - b ||, onde x* a aproximao obtida. Compare o
resultado obtido neste item com aquele obtido no item b).