• Nenhum resultado encontrado

Equações Lineares em MatLab

N/A
N/A
Protected

Academic year: 2019

Share "Equações Lineares em MatLab"

Copied!
10
0
0

Texto

(1)

Equ a çõe s Lin e a r e s e m M a t La b

Fu n çõe s do M a t la b

Re solu çã o de Equ a çõe s Lin e a r e s

‰ Com o det er m inar a solução de um sist em a de equações lineares AX = B ?

1º . I nt roduza a m at riz A

» A= [ 4 1 2 ; 0 1 0 ; 8 4 5 ] A =

4 1 2 0 1 0 8 4 5

2º . I nt roduza o vect or dos t em os independent es b

» b= [ 1 0 2 ]

'

n ã o e squ e ce r qu e é t r a n spost o

b = 1 0 2

3º . Resolva o sist em a de equações lineares Ax = b ( o Mat lab im plem ent a o m ét odo de elim inação de Gauss para resolver est e sist em a)

» x = A\ b x =

0.2500 0 0

4º . Verifique que x é a solução do sist em a Ax = b

» A* x ans = 1 0 2

‰

fu n çã o LU

: fact oriza um a m at riz

( Est a função encont ram - se no Mat rix Funct ions, num erical linear algebra t oolbox)

[ L,U]

= LU( A)

– fact oriza a m at riz A= L* U, onde L – um a m at riz t riangular

inferior e U – um a m at riz t riangular superior.

Com o det erm inar a solução de um sist em a de equações lineares Ax = B usando o m ét odo de fact orização LU?

» A= [ 4 1 2 ; 0 1 0 ; 8 4 5 ]

A =

4 1 2 0 1 0 8 4 5

(2)

b = 1 0 2

» [ L,U] = lu( A) % fact orize a m at riz A usando o com ando lu

L =

0.5000 -1.0000 1.0000 0 1.0000 0 1.0000 0 0 U =

8.0000 4.0000 5.0000 0 1.0000 0 0 0 -0.5000

» L* U % verifique que A= L* U

ans =

4 1 2 0 1 0 8 4 5

» y= L\ b % resolva Ly= b

y = 2 0 0

» x= U\ y % resolva Ax= y

x = 0.2500 0 0

obtém-se a mesma solução do sistema

Utilizando o método de factorização LU com matriz de permutação:

A = [ 1 2 3; 2 4 7; 3 5 3] ;

A =

1 2 3 2 4 7 3 5 3

Factorizando a matriz A na forma LU sem matriz de permutação

» [ L,U] = lu( A)

L =

0.3333 0.5000 1.0000 0.6667 1.0000 0 1.0000 0 0 U =

3.0000 5.0000 3.0000 0 0.6667 5.0000 0 0 -0.5000

Verificando se L* U = A ans =

(3)

As linhas 1 e 3 estão trocadas

Factorizando a matriz A na forma LU com matriz de permutação

» [ L,U,P] = lu( A)

L =

1.0000 0 0 0.6667 1.0000 0 0.3333 0.5000 1.0000

U =

3.0000 5.0000 3.0000 0 0.6667 5.0000 0 0 -0.5000

P =

0 0 1 0 1 0 1 0 0

Obtemos a matriz de permutação que corresponde à permutação das linhas 1 e 3.

Resolver o sistema de equaçoes Ax= b usando a factorizaçao LU com a matriz de permutação P

1º : Aplicar a permutação P ao vector b

» b= [ 1, - 1, 0.5] '

b = 1.0000

-1.0000 0.5000

» pb= P* b

pb = 0.5000 -1.0000 1.0000

2º : Resolver o sistema de equações Ly= pb

» y= L\ pb

y =

0.5000 -1.3333 1.5000

3º : Resolver o sistema de equações Ux= y

»

x= U\ y

x =

(4)

‰

fu n çã o N ORM

: det erm ina a norm a de um a m at riz ou um vect or

Para as m at rizes:

N ORM ( A,1 )= m ax( sum ( abs( ( X) ) ) -

det erm ina | | A| |1 - o m áxim o das som as por coluna dos valores absolut os

dos elem ent os de A N ORM ( A,in f) = m ax( sum ( abs( ( X') ) )

det erm ina | | A| |∞ - o m áxim o das som as por linha dos valores absolut os

dos elem ent os de A Para os vect ores:

NORM( X,1) = m ax( sum ( abs( ( X) ) ) . Det erm ina | | X| |1 - norm a absolut a

NORM( X,inf) = m ax( abs( X) ) . Det erm ina | | X| |∞ - norm a de m áxim o

NORM( X,- inf) = m in( abs( X) ) . Det erm ina | | X| |-∞ - norm a de m ínim o

For exem plo:

» A= [ 1 2 4 ; 4 - 1 1 ; 2 5 2 ]

A =

1 2 4 4 - 1 1 2 5 2

» n or m ( A,1 ) % o m áxim o das som as por coluna dos valores absolut os dos elem ent os de A

ans =

8

» n or m ( A,in f) % o m áxim o das som as por linha dos valores absolut os dos elem ent os de A

ans =

9

» b= [ 1 1 8 3 ] '

b =

11 8 3

» n or m ( b,1 ) % a som a dos valores absolut os dos elem ent os de b ans =

22

» n or m ( b,inf) % o m áxim o em valor absolut o dos elem ent os de b ans =

11

» n or m ( b,- in f) % o m ínim o em valor absolut o dos elem ent os de b ans =

3

‰

fu n çã o CON D

: det erm ina o núm ero de condição de um a m at riz

cond( A) = | | A- 1| | | | A| |

(5)

For exem plo:

» A= [ 1 2 4 ; 4 - 1 1 ; 2 5 2 ] A =

1 2 4 4 - 1 1 2 5 2

» con d( A,in f)

ans =

4.17391304347826

Ex e r cícios e m M a t la b

1. Escreva em Mat lab a função

X= r e sidu os ( A,b,X 0 ,e ps,m a x it )

que im plem ent a

o m ét odo dos resíduos para m elhorar um a aproxim ação da solução do sist em a

de equações lineares

A

x=

b

dada um a solução inicial

X 0

, e t al que | | b

-

Ax

k

| | <

eps. Alem disso um núm ero m áx im o de it erações,

m a x it ,

t am bém é dado, para

t erm inar o processo it erat ivo quando não se verificar | | b- Ax

k

| | < eps.

function [X,error, k, Z]=residuos(A,b,X0,eps,maxit)

%--- % Esta função implementa o método dos residuos para melhorar uma % aproximação da solução de um sistema de equações lineares Ax=b % Para executar chamar:

% X = residuo(A,b,X0,eps,maxit) % [X,error,k, Z] = residuo(A,b,X0,eps,maxit) % Parâmetros de entrada

% A - a matriz do sistema

% b - o vector com os termos independentes % X0 - a solução que se pretende melhorar

% eps - a tolerancia para o criterio de paragem ||b-A*X||<eps % maxit - numero máximo de iterações

% Parâmetros de saída

% X - a aproximação da solução % error - a norma do residuo % k - o número de iterações

% Z - Matrix com todas as soluções (uma por linha)

%---

echo on; format long; X =X0;

Z =X0'; % inicializo Z (armazena a historia) for k=1:maxit;

r = b - A*X;

if (norm(r,inf)<eps) k=k-1;

break, end; e=A\r;

X=X+e;

Z = [Z;X']; % armazeno a historia end;

(6)

2. Escreva em Mat lab a função

M = m a j or r x ( A,b, de lt a )

que det erm ina um

m aj orant e do erro r elat ivo ( em norm a infinit a) da solução x do sist em a de

equações lineares Ax= b quando o vect or

b

dos t erm os independent es é

ligeiram ent e pert urbado segundo um

de lt a

dado.

function M=majorrx(A,b,delta);

%---% Esta função determina um majorante do erro relativo

%( em norma infinito)da solução x do sistema Ax=b

% quando o vector b dos termos independentes é ligeiramente % perturbado segundo um delta definido: ||b-b'||<= delta

% O majorante do erro relativo em norma pode ser calculado pela % fórmula: rx=||delta_x||/||x||<= cond(A)* (||delta_b||/||b||) % Para executar chamar:

% M = majorrx(A,b,delta) % Parâmetros de entrada

% A - a matriz A do sistema

% b - o vector com os termos independentes

% delta - o majorante para a perturbação do vector b % Parâmetros de saída

% M - o majorante do erro relativo da solução para o % sistema perturbado

%---echo on; format long;

cA=cond(A,inf) % número de condição da matriz (norma inf)

nb=norm(b,inf) % norma inf de b

(7)

3. Escreva em Mat lab a função

j a cobi( A,b, X0 , e ps, m a x )

que im plem ent a o

m ét odo it erat ivo de Jacobi para det erm inar a solução aproxim ada de

A

x=

b

,

dada um a solução inicial

X 0

t al que | | x

k

-

x

k- 1

| | < eps. Alem disso um núm ero

m áxim o de it erações,

m a x it ,

t am bém é dado, para t erm inar o processo

it erat ivo quando não se verificar | | x

k

-

x

k- 1

| | < eps.

function [X,deltaX,k,Z] = jacobi(A,b,X0,eps,maxit)

%---% Implementa o método iterativo de Jacobi para determinar uma solução % aproximada de Ax=b:

% X(k)(i)= (b(i)-A(i,1)*X(k-1)(1)-...-A(i,i-1)*X(k-1)(i-1)- % A(i,i+1)*X(k-1)(i+1)-...-A(n,n)*X(k-1)(n))/ Aii % Executar

% [X,deltaX,k] = jacobi(A,B,P,eps,maxit) % [X,deltaX,k,Z] = jacobi(A,B,P,eps,maxit) % Entrada

% A a matriz A do sistema

% b o vector dos termos independentes % X0 a solução inicial

% eps tolerância de convergência para critério de paragem % maxit número máximo de iterações para critério de paragem % Devolve

% X o vector com a aproximação da solução % error a norma do vector abs(X(k)-X(k-1)) % k o número de iterações

% Z matriz com todas as soluções (uma por linha)

%---n = le%---ngth(b);

Xant = X0; % armazena a solução anterior X(k-1)

X=X0; % inicializo X

Z = X0'; % inicializo Z

for k=1:maxit, % iterar até max veces

for i = 1:n, % para cada equação

X(i) = (b(i) - A(i,[1:i-1,i+1:n])*Xant([1:i-1,i+1:n]) ) / A(i,i); end

Z = [Z;X']; % armazeno a historia

deltaX = norm(X-Xant,inf); if (deltaX <eps) break, end

Xant = X;

(8)

4. Escreva em Mat lab a função

gse ide l( A,b, X0 , e ps, m a x )

que im plem ent a o

m ét odo it er at ivo de Gauss- Seidel para det erm inar a solução aproxim ada de

A

x=

b

, dada um a solução inicial

X 0

, e t al que | | x

k

-

x

k- 1

| | < eps. Alem disso um

núm ero m áxim o de it er ações,

m a x it ,

t am bém é dado, para t erm inar o processo

it erat ivo quando não se verificar | | x

k

-

x

k- 1

| | < eps.

function [X,deltaX, k, Z] = gseidel(A,b,X0,eps,maxit)

%---% Implementa o método iterativo de Gauss-Seidel para determinar uma solução aproximada de Ax=b

% X(k)(i)= (b(i)-A(i,1)*X(k)(1)-...-A(i,i-1)*X(k)(i-1)

% -A(j,j+1)*X(k-1)(j+1)-...-A(n,n)*X(k-1)(n))/ Aii % Executar

% [X, deltaX, k] = gseidel(A,B,P,delta,maxit) % [X, deltaX, k, Z] = dseidel(A,B,P,delta,maxit) % Entrada

% A a matriz A do sistema

% b o vector dos termos independentes % X0 a solução inicial

% eps tolerancia de convergencia do criterio de paragem % maxit número máximo de iterações

% Devolve

% X o vector com a aproximação da solução % deltaX a norma do vector abs(X(k)-X(k-1)) % k o número de iterações

% Z Matrix com todas as soluções (uma por linha)

%---n = le%---ngth(b);

Xant = X0; % armazena a solução anterior X(k-1) X = X0; % inicializo X

Z = X0'; % inicializo Z

for k=1:maxit, % iterar até max veces

for i = 1:n, % para cada equação

if i==1

X(i) =(b(1) - A(1,2:n)*Xant(2:n))/ A(i,i); elseif i==n

X(i) = (b(n) - A(n,1:n-1)*X(1:n-1) )/ A(i,i); else

X(i) = (b(j)-A(i,1:i-1)*X(1:i-1)-A(i,i+1:n)*Xant(i+1:n))/ A(i,i); end

end

Z = [Z;X']; % armazeno a historia

deltaX = norm(X-Xant,inf); if (deltaX < eps) break, end

Xant = X;

(9)

5. Part indo da aproxim ação inicial X0= [ 5/ 4,- 1/ 4] ' apr oxim e a solução do sist em a

2x1 + 0.5 x2= 2.5

x1 + 3 x2= 0.5

aplicando o m ét odo de Jacobi e o m ét odo de Gauss- Seidel com o núm ero de it erações suficient es por form a a que | | xk

-

x

k- 1

| | < 0.5 x 10

- 1

» ex5 A =

2.00000000000000 0.50000000000000 1.00000000000000 3.00000000000000 b =

2.50000000000000 0.50000000000000 X0 =

1.25000000000000 - 0.25000000000000

- - - Mét odo de Jacobi - - - I t eração x( 1) x( 2) - - -

1.00000000000000 1.25000000000000 - 0.25000000000000 2.00000000000000 1.31250000000000 - 0.25000000000000 3.00000000000000 1.31250000000000 - 0.27083333333333

- - -

A solução: x1= 1.3125 x2= - 0.27083333

% ---% Este programa partindo da aproximação inicial X0=[5/4,-1/4]

% aproxima a solução do sistema % 2x1 + 0.5 x2= 2.5

% x1 + 3 x2= 0.5

% aplicando o método de Jacobi e o método de Gauss-Seidel por forma a que % ||x(k) – x(k-1) || < 0.5 x 10-1

%

---A=[2 0.5; 1 3] % introduzir a matriz A

b=[2.5 0.5]' % introduzir o vector b

X0=[5/4,-1/4]' % introduzir a solução inicial

[X,dX,k,Z]=jacobi(A,b,X0,0.05,2); m=length(Z);

k=1:m; disp('');

disp('---Método de Jacobi ---'); disp(' Iteração x(1) x(2) ');

disp('---'); disp([k',Z])

disp('---'); disp(' ');

disp(['A solução: ','x1= ',num2str(Z(m,1),8),' x2= ',num2str(Z(m,2),8)]); [X,dX,k,Z]=gseidel(A,b,X0,0.05,2);

m=length(Z); k=1:m;

disp(' '); disp('---Método de Gauss-Seidel ---'); disp(' Iteração x(1) x(2) ');

disp('---'); disp([k',Z])

disp('---'); disp(' ');

(10)

- - - Mét odo de Gauss- Seidel - - - I t eração x( 1) x( 2)

- - -

1.00000000000000 1.25000000000000 - 0.25000000000000 2.00000000000000 1.31250000000000 - 0.27083333333333 3.00000000000000 1.31770833333333 - 0.27256944444444

- - -

Referências

Documentos relacionados

Como é sustentado no acórdão do Supremo Tribunal de Justiça de 18/04/2002, proferido no processo n.º 02B950, acessível em www.dgsi.pt, quando se determina que o prazo

Como são fundos negociados em bolsa, ETFs tem sua dinâmica de negociação principal no mercado secundário, com negociações diárias como qualquer outra ação. O mercado

Caso o doutoramento tenha sido conferido por instituição de ensino superior estrangeira, o mesmo tem de obedecer às regras estabelecidas no regime jurídico do reconhecimento de

A solução de sistemas lineares é uma ferramenta matemática muito importante na engenharia. Normalmente os problemas não-lineares são solucionados por ferramentas

Ao final do capítulo do tópico sobre sistema de equações, são evidenciados dois momentos: o primeiro, com dez exercícios, sem suas respectivas respostas e, um

Este método consiste na aplicação de operações elementares às linhas da matriz aumentada do sistema de equações lineares até que obtenhamos uma matriz numa

Segundo dispõe o Código de Trânsito Brasileiro, dirigir veículo sem usar lentes corretoras de visão, aparelho auxiliar de audição, de prótese física ou as

recursos do FMM São financiamentos concedidos com recursos do FMM às indústrias naval, petrolífera e às empresas brasileiras de navegação que, de acordo com o tipo de finalidade,