sistemas_lineales mÉtodos numericos

18
1 DR. SORIA QUIJAITE JUAN JESÚS MÉTODOS NUMÉRICOS CON SOFTWARE MATLAB ÁLGEBRA MATRICIAL Matrices Numéricas.- MATLAB permite trabajar con matrices numéricas de forma muy cómoda y extensa. No obstante, se trata de un programa especializado en cálculo matricial. La tabla que se presenta a continuación muestra las funciones matriciales numéricas que pueden realizarse con MATLAB. logm (A) Logaritmo neperiano de la matriz A sqrt(A) Raíz cuadrada de la matriz cuadrada A funm.(A,’función’) Aplica la función a la matriz cuadrada A transpose(A) o A’ Matriz transpuesta de A inv(A) Matriz inversa de la matriz cuadrada A ( 1 A ) det(A) Determinante de la matriz cuadrada A rank(A) Rango de la matriz A trace(A) Suma de los elementos de la diagonal de A norm(A) Norma de A o 2-norma (mayor valor singular de la matriz A) norm(A,1) 1-norma de A (mayor suma de la columnas de A) norm(A,inf) Norma infinita de A (Mayor suma de las filas de A) A^p Matriz A elevada a la potencia escalar p p^A Escalar p elevado a la matriz A rand(n) Matriz aleatoria de orden n magic(n) Matriz mágica de orden n eig(A) Halla los autovalores de la matriz cuadrada A [V,D]=eig(A) Halla la matriz diagonal D de autovalores de A y una matriz V cuyas columnas son los autovectores correspondientes, cumpliéndose que A*V=V*D eig(A,B) Devuelve un vector con los autovalores generalizados de las matrices cuadradas A y B. Los autovalores generalizados de A y B son las raíces del polinomio en ) * det( A C [V,D]=eig(A,B) Halla la matriz diagonal D de autovalores generalizados de A y B y una matriz V cuyas columnas son los autovectores correspondientes, cumpliéndose A*V=B*V*D hess(A) Devuelve la matriz de Hessemberg H poly(A) Devuelve el polinomio característico de la matriz A eye(m) Devuelve una matriz identidad de orden mxm zeros(m) Devuelve una matriz nula de orden mxm zeros(m,n) Devuelve una matriz nula de orden mxn ones(m,n) Devuelve una matriz de unos de orden mxn size(A) Devuelve el orden de la matriz A tril (A) Devuelve la parte triangular inferior de la matriz A triu(A) Devuelve la parte triangular superior de la matriz A diag(A) Extrae la diagonal de la matriz A como vector columna A(a,:) Define la fila a-ésima de la matriz A A(:,b) Define la columna b-ésima de la matriz A [L,U]=lu(A) Descompone la matriz A en el producto A=L*U , siendo U una matriz triangular superior y L una matriz pseudotriangular inferior (triangularizable mediante permutación) [L,U,P]=lu(A) Da una matriz triangular inferior L, una matriz triangular superior U y una matriz de permutación P tales que P*A=L*U R=chol(A) Devuelve la matriz triangular superior R tal que R’*R=A (Descomposición de cholesky de A) en caso de que A sea definida positiva. Si A no es definida positiva devuelve un error jordan(A) [V,J]=jordan(A) Halla la matriz canónica de jordan J de la matriz A (J tiene los autovalores de A en la diagonal) Halla la matriz canónica de Jordan J de la matriz A y la matriz de paso V cuyas columnas son los autovectores de A cumpliéndose que J V A V * * 1

Upload: john-dawson

Post on 01-Feb-2016

238 views

Category:

Documents


0 download

DESCRIPTION

ESTUDIANTES DEL CURSO DE MÉTODOS NUMÉRICOS (MATLAB); INGENIERÍA CIVIL, SISTEMAS

TRANSCRIPT

Page 1: SISTEMAS_LINEALES MÉTODOS NUMERICOS

1 DR. SORIA QUIJAITE JUAN JESÚS

MÉTODOS NUMÉRICOS CON SOFTWARE MATLAB

ÁLGEBRA MATRICIAL Matrices Numéricas.- MATLAB permite trabajar con matrices numéricas de forma muy cómoda y extensa. No

obstante, se trata de un programa especializado en cálculo matricial. La tabla que se presenta a continuación

muestra las funciones matriciales numéricas que pueden realizarse con MATLAB.

logm (A) Logaritmo neperiano de la matriz A

sqrt(A) Raíz cuadrada de la matriz cuadrada A

funm.(A,’función’) Aplica la función a la matriz cuadrada A

transpose(A) o A’ Matriz transpuesta de A

inv(A) Matriz inversa de la matriz cuadrada A (1A )

det(A) Determinante de la matriz cuadrada A

rank(A) Rango de la matriz A

trace(A) Suma de los elementos de la diagonal de A

norm(A) Norma de A o 2-norma (mayor valor singular de la matriz A)

norm(A,1) 1-norma de A (mayor suma de la columnas de A)

norm(A,inf) Norma infinita de A (Mayor suma de las filas de A)

A^p Matriz A elevada a la potencia escalar p

p^A Escalar p elevado a la matriz A

rand(n) Matriz aleatoria de orden n

magic(n) Matriz mágica de orden n

eig(A) Halla los autovalores de la matriz cuadrada A

[V,D]=eig(A) Halla la matriz diagonal D de autovalores de A y una matriz V cuyas columnas son

los autovectores correspondientes, cumpliéndose que A*V=V*D

eig(A,B) Devuelve un vector con los autovalores generalizados de las matrices cuadradas A y

B. Los autovalores generalizados de A y B son las raíces del polinomio en

)*det( AC

[V,D]=eig(A,B) Halla la matriz diagonal D de autovalores generalizados de A y B y una matriz V

cuyas columnas son los autovectores correspondientes, cumpliéndose A*V=B*V*D

hess(A) Devuelve la matriz de Hessemberg H

poly(A) Devuelve el polinomio característico de la matriz A

eye(m) Devuelve una matriz identidad de orden mxm

zeros(m) Devuelve una matriz nula de orden mxm

zeros(m,n) Devuelve una matriz nula de orden mxn

ones(m,n) Devuelve una matriz de unos de orden mxn

size(A) Devuelve el orden de la matriz A

tril (A) Devuelve la parte triangular inferior de la matriz A

triu(A) Devuelve la parte triangular superior de la matriz A

diag(A) Extrae la diagonal de la matriz A como vector columna

A(a,:) Define la fila a-ésima de la matriz A

A(:,b) Define la columna b-ésima de la matriz A

[L,U]=lu(A) Descompone la matriz A en el producto A=L*U , siendo U una matriz triangular

superior y L una matriz pseudotriangular inferior (triangularizable mediante

permutación)

[L,U,P]=lu(A) Da una matriz triangular inferior L, una matriz triangular superior U y una matriz

de permutación P tales que P*A=L*U

R=chol(A) Devuelve la matriz triangular superior R tal que R’*R=A (Descomposición de

cholesky de A) en caso de que A sea definida positiva. Si A no es definida positiva

devuelve un error

jordan(A)

[V,J]=jordan(A)

Halla la matriz canónica de jordan J de la matriz A (J tiene los autovalores de A en

la diagonal)

Halla la matriz canónica de Jordan J de la matriz A y la matriz de paso V cuyas

columnas son los autovectores de A cumpliéndose que JVAV **1

Page 2: SISTEMAS_LINEALES MÉTODOS NUMERICOS

2 DR. SORIA QUIJAITE JUAN JESÚS

Operadores Matriciales.-

A+B , A-B , A*B Suma, resta y producto de matrices

A \ B Si A es cuadrada, A \ B =inv(A)*B. Si A no es cuadrada, A\B es la solución en el

sentido de mínimos cuadrados del sistema A.X=B

B / A Coincide con (A’ \ B’)’ nA Coincide con A*A*A*A*… *A n veces (n=escalar)

Ap Realiza el cálculo sólo si p es un escalar

E-1) Introducir la matriz

353

152

624

A entonces al utilizar los comandos de la tabla se tiene:

A=[4 2 6;-2 5 -1;3 5 -3]

A =

4 2 6

-2 5 -1

3 5 -3

» diag(A) % calcula la diagonal de la matriz A como vector columna

ans =

4

5

-3

» diag(A)' % calcula la diagonal de la matriz A como vector fila

ans = 4 5 -3

» transpose(A) % calcula la transpuesta de la matriz A

ans =

4 -2 3

2 5 5

6 -1 -3

» inv(A) % calcula la matriz inversa de la matriz A

ans =

0.0481 -0.1731 0.1538

0.0433 0.1442 0.0385

0.1202 0.0673 -0.1154

» trace(A) % calcula la traza de la matriz A

ans = 6

» eig(A) % calcula los valores propios de la matriz A

ans =

5.5536 + 3.1439i

5.5536 - 3.1439i

-5.1072

» det(A) % calcula el determinante de la matriz A

ans =

-208

» [V,D]=eig(A) % construye una matriz D de valores propios de la matriz A

V =

0.5737 + 0.4973i 0.5737 - 0.4973i -0.5461

-0.4737 + 0.2961i -0.4737 - 0.2961i -0.0252

0.0458 + 0.3307i 0.0458 - 0.3307i 0.8373

D =

5.5536 + 3.1439i 0 0

0 5.5536 - 3.1439i 0

0 0 -5.1072

» tril(A) % calcula la matriz triangular inferior de la matriz A

Page 3: SISTEMAS_LINEALES MÉTODOS NUMERICOS

3 DR. SORIA QUIJAITE JUAN JESÚS

ans =

4 0 0

-2 5 0

3 5 -3

» triu(A) % calcula la matriz triangular superior de la matriz A

ans =

4 2 6

0 5 -1

0 0 -3

» size(A) % calcula el orden de la matriz A

ans = 3 3

» poly(A) % calcula el polinomio característico de la matriz A

ans = 1.0000 -6.0000 -16.0000 208.0000

» norm(A) % calcula la norma de la matriz A

ans = 7.7240

>> I=[ones(3,4),zeros(3,4),eye(3,4)] % calcula la matriz particionada de orden 3x12

I =

1 1 1 1 0 0 0 0 1 0 0 0

1 1 1 1 0 0 0 0 0 1 0 0

1 1 1 1 0 0 0 0 0 0 1 0

» I(1,:) % identifica la primera fila de la matriz I

ans =

1 1 1 1 0 0 0 0 1 0 0 0

» I(:,11) % identifica la columna Nº 11 de la matriz I

ans = 0 0 1

% gráfico de la matriz A

Gráficos Matriciales.- 1)%Gráfica de la matriz de orden 10x10

A=[2 4 5 2 5 7 8 7 4 6 ;

2 7 -4 4 6 -7 8 9 5 7 ;

5 4 -6 4 7 9 -4 7 9 6 ;

2 1 -5 -9 3 5 -2 1 5 -4 ;

1 3 6 -8 4 3 -6 4 2 3 ;

3 -4 5 6 3 7 4 7 4 5 ;

9 2 4 -6 4 4 7 5 -8 8 ;

2 3 4 7 2 13 4 9 5 -3 ;

4 5 -7 -5 5 7 2 -1 3 -4 ;

2 -4 6 3 -3 3 -9 7 -8 4 ]

mesh(A)

title('MATRIZ DE ORDEN

10X10','FontSize',[16],'color','b')

xlabel('EJE ABSCISAS (i)','FontSize',[12],'color','r');

ylabel('EJE ORDENADAS (j)','FontSize',[12],'color','r');

zlabel('EJE DE ALTURAS (aij)','FontSize',[12],'color','r');

grid on

zoom on

Page 4: SISTEMAS_LINEALES MÉTODOS NUMERICOS

4 DR. SORIA QUIJAITE JUAN JESÚS

2) %Gráfica de una matriz generada por A1(i,j)=i+sin(i+j); %A1(i,j)es de orden 15x15

clear all

figure('units','Normal','pos',[0 0 1 1],'MenuBar','None', ...

'Name',' »»»»» PLOTEOS DE MATRICES GENERADAS ««««« ');

n=20;

m=20;

for i=1:m

for j=1:n

A1(i,j)=i+sin(i+j);

end

end

mesh(A1)

title('MATRIZ GENERADA','FontSize',[17],'color','g')

xlabel('EJE i','FontSize',[15],'color','b');

ylabel('EJE j','FontSize',[15],'color','b');

zlabel('EJE aij','FontSize',[15],'color','b');

grid on

zoom on

LABORATORIO CON MATLAB I.- Dadas las siguientes matrices de orden 6x6

521111

232132

313431

342112

421131

421312

A ;

371125

152113

213433

332124

521132

753241

B

221449

124368

311227

443536

334362

158634

C

1) Calcular las siguientes operaciones matriciales :

a) A+B b) B-C c) A-BxC d) 1A e)

1B f) 1C g)

1xBAT h) Diagonal de A

i) Diagonal de B j) AxB k) BxC l) Ax(BxC) ll) (AxB)xC m) 32 BxA n) valores propios

de A, B y C o) Determinante de A, B y C p) ))(( BABA q) 22 BA

2) Graficar las matices generadas por )sin(2)(cos),( 2 jiijiA ; )(sin)(cos),( 33 jijijjiB ;

)1/(1),( jijiC ; )sin(),( jiejiD ji; )(),( )( jsenejiE jisen

3) Graficar las matrices de

orden 10x10 definidas por :

jijjii

jiijaij

;.

; ;

jijjii

jiijbij

;.

;)cos( ;

jijjii

jijicij

;.

;)sin(

Page 5: SISTEMAS_LINEALES MÉTODOS NUMERICOS

5 DR. SORIA QUIJAITE JUAN JESÚS

MÉTODOS NUMÉRICOS CON SOFTWARE MATLAB

SISTEMAS TRIANGULARES

Sistemas Lineales Triangulares Definición.-

1) Se dice que la matriz ][ ijaA de orden nxn es triangular superior cuando sus elementos verifican

jiaij ;0

2) Se dice que la matriz ][ ijaA de orden nxn es triangular inferior cuando sus elementos verifican

jiaij ;0

Si A es una matriz triangular superior, entonces se dice que el sistema de ecuaciones AX=B es un sistema

triangular superior de ecuaciones lineales, sistema que tiene la forma:

nnnn

nnnnnnn

nnnn

nnnn

nnnn

bxa

bxaxa

bxaxaxa

bxaxaxaxa

bxaxaxaxaxa

11111

33113333

22112323222

11111313212111

……………… (1)

Teorema.- (Sustitución regresiva)

Supongamos que AX=B es un sistema triangular superior como el dado en (1). Si nkparaakk ,,2,1;0

,entonces existe una solución única de (1) .

Teorema.-

Si una matriz ][ ijaA de orden nxn es triangular superior o inferior, entonces el determinante de la matriz A es:

n

i

iinn aaaaaA1

332211 ....)det(

E-1) Usar el método de sustitución regresiva para resolver el sistema lineal:

63

456

7472

20324

4

43

432

4321

x

xx

xxx

xxxx

Resolución

Llevándolo a la forma matricial AX=B, se tiene:

6

4

7

20

3000

5600

4720

3214

4

3

2

1

x

x

x

x

, donde

3000

5600

4720

3214

A ;

4

3

2

1

x

x

x

x

X y

6

4

7

20

B

a) ploteo de la matriz A

Page 6: SISTEMAS_LINEALES MÉTODOS NUMERICOS

6 DR. SORIA QUIJAITE JUAN JESÚS

b) Usando el programa backsub %Sustitución regresiva

%Soluciona un sistema triangular superior AX=B

%por el método de sustitución regresiva

function X=backsub(A,B)

n=length(B);

X=zeros(n,1);

X(n)=B(n)/A(n,n);

for k=n-1:-1:1

X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k);

end

-------------------------------------------------------------------------------------

Compilarlo con : A=[4 -1 2 3;

0 -2 7 -4;

0 0 6 5;

0 0 0 3]

B=[20;-7;4;6]

backsub(A,B)

-------------------------------------------------------------------------------------

%resultados

backsub(A,B)

A = 4 -1 2 3

0 -2 7 -4

0 0 6 5

0 0 0 3

B = 20

-7

4

6

ans= 3

-4

-1

2

Luego la solución del sistema es: )}2;1;4;3{()};;;{( 4321 xxxx

E-2) Usar el método de sustitución regresiva para resolver el sistema lineal:

4log2log

321

º4cosº3cosº2cosº1cos

º54º3º2º1

4

43

432

4321

x

senhxsenhxsenh

xxx

senxsenxsenxsenxsen

Llevándolo a la forma matricial AX=B, se tiene:

4log

3

º4cos

º5

2log000

2100

º3cosº2cosº1cos0

º4º3º2º1

4

3

2

1

senh

sen

x

x

x

x

senhsenh

sensensensen

-------------------------------------------------------------------------------------------------------------------------------------- %Lo compilamos con:

A=[sin(1) -sin(2) sin(3) -sin(4);

0 -cos(1) cos(2) cos(3);

0 0 sinh(1) sinh(2);

0 0 0 log10(2)]

B=[sin(5);cos(4);sinh(3);log10(4)]

backsub(A,B)

-----------------------------------------------------------------------------------

Page 7: SISTEMAS_LINEALES MÉTODOS NUMERICOS

7 DR. SORIA QUIJAITE JUAN JESÚS

%Resultados:

backsub(A,B)

A = 0.8415 -0.9093 0.1411 0.7568

0 -0.5403 -0.4161 -0.9900

0 0 1.1752 3.6269

0 0 0 0.3010

B =-0.9589

-0.6536

10.0179

0.6021

ans=-7.9431

-4.2664

2.3521

2.0000

LABORATORIO CON MATLAB

E-1) Resuelva el sistema triangular superior y halle el valor del determinante de la matriz de los coeficientes así

como el ploteo.

a)

155

1132

324

823

4

43

432

4321

x

xx

xxx

xxxx

b)

147

11133

225911

14735

4

43

432

4321

x

xx

xxx

xxxx

c)

63

102

32

07262

4224

5

54

543

5432

54321

x

xx

xxx

xxxx

xxxxx

d)

7lnº15cos

º92log3º8cos5

º43log5ln2º4tan

43logº3tan2º2tanº1tan

4

43

432

4321

x

senxx

senxxx

Lnxxxx

e)

3º3cos

9cosh52º8cos5

43lnº7cos8º5tan

º145logº822ln2log

4

43

432

2

4321

senhx

xsenhx

senhxxx

senxxsenxx

E-2) a) Resolver el sistema de ecuaciones UX=B, siendo 1010][ xijuU con ji

jiijuij

0

;)cos(

y 1101][ xibB siendo )tan(1 ibi

b) Resolver el sistema de ecuaciones AX=B siendo

ji

jiji

jijisen

aA xij

0

;).cos(

;)(

][ 1515

y 1151][ xibB siendo )cot(1 ibi , resolver AX=B.

c) Resolver el sistema de ecuaciones AX=B siendo

ji

jijiLn

jiji

aA xij

0

;).(

;)log(

][ 2020

y 1201][ xibB siendo )(1 isenbi , resolver AX=B.

d) Resolver el sistema de ecuaciones AX=B siendo

ji

jijisenh

jiji

aA xij

0

;)(

;1

1

][ 3030

y 1301][ xibB siendo )1log(1 ibi , resolver AX=B.

Page 8: SISTEMAS_LINEALES MÉTODOS NUMERICOS

8 DR. SORIA QUIJAITE JUAN JESÚS

Tarea Domiciliaria

E-1) Se dice que un sistema lineal AX=B es triangular inferior cuando 0ija siempre que i<j. Construya un

programa forsub , análogo al programa backsub para resolver el siguiente sistema triangular inferior.

nnnnnnnnnn

nnnnnnn

bxaxaxaxaxa

bxaxaxaxa

bxaxaxa

bxaxa

bxa

11332211

1111313212111

3333223131

2222121

1111

E-2) Resolver los siguientes sistemas triangulares inferiores y calcular det(A) así como su ploteo.

a)

2362

423

54

62

4321

321

21

1

xxxx

xxx

xx

x

b)

563

2243

43

105

4321

321

21

1

xxxx

xxx

xx

x

c)

53º6cos22tanh4log

6ln4º62º2tan

º65sinhº3cos

4logº2

4321

321

21

1

xxxx

xxsenx

senxx

xsen

E-3) Usar el programa forsub (creado por Ud) para resolver los siguientes sistemas de ecuaciones triangulares

Inferiores :

a) Resolver el sistema de ecuaciones LX=B, siendo 2020][ xijlL con ji

jijilij

0

;

y 1201][ xibB siendo ibi 1

b) Resolver el sistema de ecuaciones AX=B siendo

ji

jiji

jijisen

aA xij

0

;).cos(

;)(

][ 1515

y 1151][ xibB siendo )cot(1 ibi , resolver AX=B.

c) Resolver el sistema de ecuaciones AX=B siendo

ji

jijiLn

jiji

aA xij

0

;).(

;)log(

][ 2020

y 1201][ xibB siendo )(1 isenbi , resolver AX=B.

d) Resolver el sistema de ecuaciones AX=B siendo

ji

jijisenh

jiji

aA xij

;0

;)(

;1

1

][ 3030

y 1301][ xibB siendo )1log(1 ibi , resolver AX=B.

Page 9: SISTEMAS_LINEALES MÉTODOS NUMERICOS

9 DR. SORIA QUIJAITE JUAN JESÚS

MÉTODOS NUMÉRICOS CON SOFTWARE MATLAB

SISTEMAS DE ECUACIONES LINEALES Descomposición triangular.-

Dada la matriz

nnnnnn

nnnnnn

n

n

n

baaaa

baaaa

baaaa

baaaa

baaaa

W

321

11131211

33333231

22232221

11131211

Sea el sistema bXA. , puede ser almacenado en un arreglo de nx(n+1), donde los coeficientes del vector b se

almacenan en la columna (n+1) del arreglo. Esta nueva matriz se le conoce como matriz aumentada y se la denota

como ]|[ bAAa .

Las operaciones con filas, pueden aplicarse a la matriz aumentada que son:

Intercambio.- El orden de dos filas puede ser cambiado , ji ff

Escalamiento.- Una fila se puede multiplicar por una constante diferente de cero ii ff .

Reemplazo.- Una fila puede reemplazada por la suma de esa fila y un múltiplo de otra fila jii fkff

I.- Método de eliminación de GAUSS

Algoritmo

Gauss

for i=1 to n-1

if a[i , i] =0 then

Intercambio de filas

for j=i+1 to n

m=a[ j, i] / a[i , i]

for k=i to n+1

a[j,k]=a[ j,k]-m*a[i , k]

end Gauss

El número rra o el valor en la celda (r , r) cuando es usado para eliminar la variable rx en la filas r+1; r+2; …; n es

conocido como el elemento pivotal r, siendo la fila r la fila pivotal.

E-1) Resolver el sistema de ecuaciones lineales por el método de eliminación de GAUSS

842

123

323

4232

232

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

Resolución

Llevando a la forma matricial se tiene :

8

1

3

4

2

11142

11213

11231

21312

13121

5

4

3

2

1

x

x

x

x

x

entonces se tiene bXA.

i) Ploteando la matriz “A” se tiene :

Page 10: SISTEMAS_LINEALES MÉTODOS NUMERICOS

10 DR. SORIA QUIJAITE JUAN JESÚS

A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];

mesh(A)

title('MATRIZ "A" DE ORDEN 5x5','FontSize',[16],'color','g')

xlabel('EJE ABSCISAS (i)','FontSize',[10],'color','b');

ylabel('EJE ORDENADAS (j)','FontSize',[10],'color','b');

zlabel('EJE DE ALTURAS (aij)','FontSize',[10],'color','b');

grid on

zoom on

El programa Eliminación soluciona este sistema de ecuaciones lineales (De cualquier orden) %guardarlo en una ventana con Eliminación.m

function x=Eliminacion(AA,b)

[n n]=size(AA);

x=zeros(n,1);

A=[AA b'];

n1=n+1;

for i=1:n

if A(i,i)==0

A=Intercambio(A,i);

end

for k=i+1:n

Pivote=A(k,i)/A(i,i);

for j=i:n1

A(k,j)=A(k,j)-Pivote*A(i,j);

end

end

end

x(n)=A(n,n1)/A(n,n);

for i=n-1:-1:1

suma=A(i,n1);

for j=i+1:n

suma=suma-A(i,j)*x(j);

end

x(i)=suma/A(i,i);

end

-----------------------------------------------------------------------------------------------------------------------------------

Crear una nueva ventana y guardarlo con Intercambio.m : function A=Intercambio(A,i)

[n n1]=size(A);

k=i+1;

while (k<=n)&(A(k,i)==0)

k=k+1;

end

if k<=n

for j=1:n1

temp=A(i,j);

A(i,j)=A(k,j);

A(k,j)=temp;

end

end

Page 11: SISTEMAS_LINEALES MÉTODOS NUMERICOS

11 DR. SORIA QUIJAITE JUAN JESÚS

-----------------------------------------------------------------------------------------------------------------------------------

Compilarlo con A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];

b=[2 4 3 -1 8];

Eliminacion(A,b)

Cuyos resultados son :

ans = 2

-1

-2

1

3

II.- Método de GAUSS-JORDAN Para invertir una matriz, el método de Gauss-Jordan es el más eficiente; esto quiere decir que para el sistema

bXA. usando la matriz aumentada, el método de Gauss-Jordan produce la solución.

Del sistema bXA. y sabiendo que A es invertible, entonces :

bAX

bAXI

bAXAA

.

..

.).(

1

1

11

Si se aplica Gauss-Jordan a una matriz aumentada bAAa | se tendría entonces :

*.

~ bIbAEO

, donde b* es la solución del sistema de ecuaciones.

Es una variante del método de eliminación de Gauss; siendo la principal diferencia, que cuando se elimina una

incógnita no sólo se elimina de las ecuaciones siguientes sino de todas las otras ecuaciones. Es decir:

Sea

3333231

2232221

1131211

baaa

baaa

baaa

bAW , se transforma en

'

3

'

2

'

1

100

010

001

'

b

b

b

bIW

y la solución es 'bx

ALGORITMO

Gauss-Jordan

for i=1 to n

if a[i,i]=0 then

Intercambiar filas

m=a[i , i]

for k=i to n+1

a[i,k]=a[i,k]/m

for j=1 to n

if i <> j then

m=a[j,i]

for k=i to n+1

a[j,k]=a[j,k]-m*a[i,k]

end Gauss-Jordan

E-1) Resolver el sistema de ecuaciones lineales por el método de GAUSS-JORDAN

842

123

323

4232

232

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

Resolución

Llevando a la forma matricial se tiene :

Page 12: SISTEMAS_LINEALES MÉTODOS NUMERICOS

12 DR. SORIA QUIJAITE JUAN JESÚS

8

1

3

4

2

11142

11213

11231

21312

13121

5

4

3

2

1

x

x

x

x

x

entonces la matriz aumentada

8

1

3

4

2

11142

11213

11231

21312

13121

aA

Que con las operaciones elementales se lleva dicha matriz aumentada a la solución.

3

1

2

1

2

10000

01000

00100

00010

00001

aA lo que implica que solución del sistema AX=b es X=(2 ; -1 ; -2 ; 1 ; 3)

El programa Gauss-Jordan resuelve este sistema de ecuaciones lineales: %soluciona un sistema lineal de cualquier orden

%Guardarlo con GaussJordan.m

function x=GaussJordan(AA,b)

[n n]=size(AA);

x=zeros(n,1);

A=[AA b'];

n1=n+1;

for i=1:n

if A(i,i)==0

A=Intercambio(A,i);

end

Piv=A(i,i);

for j=i:n1

A(i,j)=A(i,j)/Piv;

end

for k=1:n

if k~=i

Pivote=A(k,i);

for j=i:n1

A(k,j)=A(k,j)-Pivote*A(i,j);

end

end

end

end

for i=1:n

x(i)=A(i,n1);

end

------------------------------------------------------------------------------------

Compilarlo con A=[1 -2 1 -3 1;2 1 -3 1 -2;1 -3 2 -1 1;3 -1 2 -1 -1;2 -4 1 -1 1];

b=[2 4 3 -1 8];

GaussJordan(A,b)

------------------------------------------------------------------------------------

Cuyos resultados son:

ans = 2.0000

-1.0000

-2.0000

1.0000

3.0000

Page 13: SISTEMAS_LINEALES MÉTODOS NUMERICOS

13 DR. SORIA QUIJAITE JUAN JESÚS

LABORATORIO CON MATLAB

E-1) Utilice el método de eliminación de Gauss y el método de Gauss-Jordan para resolver los siguientes sistemas

de ecuaciones lineales:

a)

1552103

124

16272

24

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

b)

12649362516

863625169

54251694

301694

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

c)

432

632

423

132

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

d)

32222

62222

113222

104322

135432

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

e)

2107035155

1263520104

70151063

355432

15

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

f)

20020105

05151010

0

0

0

0

421

6532

65

63

542

321

xxx

xxxx

xx

xx

xxx

xxx

g)

31.010.009.007.005.0

33.009.010.008.006.0

32.007.008.010.007.0

23.005.006.007.005.0

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

h)

6tan5tan4tan4tan3tan2tan1tan

7log6log5log4log3log2log1log

7654321

º8cosº7cosº6cosº5cosº4cosº3cosº2cos

10742533

º7º6º5º4º3º2º1

654321

654321

654321

654321

654321

654321

xxxxxx

xxxxxx

senhxsenhxsenhxsenhxsenhxsenhxsenh

xxxxxx

xxxxxx

senxsenxsenxsenxsenxsenxsen

TAREA DOMICILIARIA

E-1) Utilice el método de eliminación de Gauss y el método de Gauss-Jordan para resolver los siguientes sistemas

de ecuaciones lineales:

a)

710354

5727772

1721161153

121310732

25432

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

b)

111515454

162015668

323527131212

1830247910

142018566

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

c)

6cot5cot4cot4cot3cot2cot1cot

7log6log5log4log3log2log1log

7cosh6cosh5cosh4cosh3cosh2cosh1cosh

º8cosº7cosº6cosº5cosº4cosº3cosº2cos

20863524

8ln7ln6ln5ln4ln3ln2ln

654321

654321

654321

654321

654321

654321

xxxxxx

xxxxxx

xxxxxx

xxxxxx

xxxxxx

xxxxxx

Page 14: SISTEMAS_LINEALES MÉTODOS NUMERICOS

14 DR. SORIA QUIJAITE JUAN JESÚS

MÉTODOS NUMÉRICOS CON SOFTWARE MATLAB

SISTEMAS DE ECUACIONES LINEALES ITERATIVOS I. MÉTODO ITERATIVO DE JACOBI

Consideremos una ecuación lineal yAx , donde A es una matriz cuadrada , “x” es un vector desconocido y “y”

es el término de origen. Todos los métodos iterativos requieren una estimación inicial para comenzar la iteración,

mismo que denotaremos por )0(x . La estimación inicial puede ser cualquier vector arbitrario. Si se dispone de una

buena estimación, la convergencia de la resolución iterativa será rápida; si no, se puede utilizar como estimación

inicial un vector nulo.

Condición de Convergencia.-

Una condición suficiente para que la resolución iterativa converja es:

iaan

ijj

iiii ,1

,,

Si embargo, si A es irreducible , es decir; sin ninguna parte de la ecuación puede resolverse independientemente del

resto, una condición suficiente es:

iaan

ijj

iiii ,1

,,

Con desigualdad estricta para por lo menos una i.

El método Iterativo de Jacobi se escribe como:

n

ijj

t

jjii

ii

t

i xaya

x1

)1(

,

)( .1

Donde t es la cuenta de iteraciones. Cuando t=1 en la ecuación anterior, x del miembro derecho tiene superíndice 0

,lo que significa que el valor es una estimación inicial. En cada ciclo de iteración se evalúa ix en orden creciente

según i.

II. MÉTODO ITERATIVO DE GAUSS-SEIDEL.-

El método de Gauss-Seidel es un poco diferente del método iterativo de Jacobi y se escribe como :

n

ij

t

jji

i

j

t

jjii

ii

t

i xaxaya

x1

)1(

,

1

1

)(

,

)( .1

, 3,2,1t

III. MÉTODO DE SOBRERRELAJACIÓN SUCESIVA (SOR) .-

La Sobrerrelajación Sucesiva (SOR) es uan mejora del esquema de Gauss-Seidel y su expresión matemática es

)1(

1

)1(

,

1

1

)(

,

)( )1(. t

i

n

ij

t

jji

i

j

t

jjii

ii

t

i xwxaxaya

wx , 3,2,1t

Donde w es un parámetro de sobrerrelajación que satisface 21 w

como regla empírica, se puede asignar a w un valor entre 1.2 y 1.7

E-1) Resolver el sistema de ecuaciones lineales por el método iterativo de Jacobi

1210

1210

1210

321

321

321

xxx

xxx

xxx

Resolución

Llevando a la forma matricial Ax=b se obtiene

Page 15: SISTEMAS_LINEALES MÉTODOS NUMERICOS

15 DR. SORIA QUIJAITE JUAN JESÚS

12

12

12

1011

1101

1110

3

2

1

x

x

x

%MÉTODO ITERATIVO DE JACOBI

function x=Jacobi(A,b)

[n n]=size(A);

x=zeros(n,1);

y=zeros(n,1);

error=0.0005;

NTOL=50;

k=0;

fprintf('%5d',k);

for m=1:n

fprintf('%10.5f',x(m));

end

while 1

flag=1;

for i=1:n

suma=0;

for j=1:n

if i~=j

suma=suma+A(i,j)*x(j)/A(i,i);

end

end

y(i)=b(i)/A(i,i)-suma;

end

k=k+1;

fprintf('\n%5d',k);

for i=1:n

if abs(y(i)-x(i))>error

flag=0;

end

x(i)=y(i);

fprintf('%10.5f',x(i));

end

if (NTOL==k)|(flag==1)

break

end

end

-----------------------------------------------------------------------------------------------------------------------------------------

Compilarlo con %compilación de Jacobi

A=[10 1 1;1 10 1;1 1 10];

b=[12 12 12 ];

Jacobi(A,b)

------------------------------------------------------------------------------------------------------------------------------------------

Resultados

Jacobi(A,b)

0 0.00000 0.00000 0.00000

1 1.20000 1.20000 1.20000

2 0.96000 0.96000 0.96000

3 1.00800 1.00800 1.00800

4 0.99840 0.99840 0.99840

5 1.00032 1.00032 1.00032

6 0.99994 0.99994 0.99994

ans =

0.9999

0.9999

0.9999

Page 16: SISTEMAS_LINEALES MÉTODOS NUMERICOS

16 DR. SORIA QUIJAITE JUAN JESÚS

%Solución exacta por el programa eliminación.m (verificando)

Eliminacion(A,b)

ans =

1

1

1

E-2) Resolver el sistema de ecuaciones lineales por el método iterativo de Gauss-Seidel

1820

11102

2020

321

321

321

xxx

xxx

xxx

Resolución

Llevando a la forma matricial Ax=b se obtiene

18

11

20

2011

1102

1120

3

2

1

x

x

x

%PROGRAMA ITERACIÓN DE GAUSS-SEIDEL

function x=GaussSeidel(A,b)

[n n]=size(A);

x=zeros(n,1);

y=zeros(n,1);

error=0.0005;

NTOL=50;

k=0;

fprintf('%5d',k);

for m=1:n

fprintf('%10.5f,x(m)');

end

while 1

flag=1;

for i=1:n

suma=0;

for j=1:n

if i~=j

suma=suma+A(i,j)*x(j)/A(i,i);

end

end

y(i)=b(i)/A(i,i)-suma;

if abs(y(i)-x(i))>error

flag=0;

end

x(i)=y(i);

end

k=k+1;

fprintf('\n%5d',k);

for i=1:n

fprintf('%10.5f',x(i));

end

if (NTOL==k)|(flag==1)

break

end

end

------------------------------------------------------------------------------------------------------------------------------------

Compilarlo con A=[20 -1 1;2 10 -1;1 1 -20];

b=[20 11 -18];

GaussSeidel(A,b)

---------------------------------------------------------------------------------

Page 17: SISTEMAS_LINEALES MÉTODOS NUMERICOS

17 DR. SORIA QUIJAITE JUAN JESÚS

Resultados por Gauss-Seidel

GaussSeidel(A,b)

0

1 1.00000 0.90000 0.99500

2 0.99525 1.00045 0.99979

3 1.00003 0.99997 1.00000

4 1.00000 1.00000 1.00000

ans =

1.0000

1.0000

1.0000

Resultados por Jacobi

Jacobi(A,b)

0 0.00000 0.00000 0.00000

1 1.00000 1.10000 0.90000

2 1.01000 0.99000 1.00500

3 0.99925 0.99850 1.00000

4 0.99992 1.00015 0.99989

5 1.00001 1.00000 1.00000

ans =

1.0000

1.0000

1.0000

Resultados por Eliminanción

Eliminacion(A,b)

ans =

1

1

1

LABORATORIO CON MATLAB

E-1)En los ejercicios del 1 al 8 :

a) Empiece con 0)0(x , use el método iterativo de Jacobi y calcule )(tx para t=1,2,3. ¿Converge la iteración

de Jacobi a la solución ?

b) Empiece con 0)0(x , use el método iterativo de Gauss-Seidel y calcule )(tx para t=1,2,3. ¿Converge la

iteración de Gauss-Seidel a la solución ?

1.- 95

154

21

21

xx

xx 2.-

64

1038

21

21

xx

xx 3.-

226

13

21

21

xx

xx 4.-

127

132

21

21

xx

xx

5.-

34

1182

105

321

321

321

xxx

xxx

xxx

6.-

34

105

1182

321

321

321

xxx

xxx

xxx

7.-

262

134

85

321

321

321

xxx

xxx

xxx

8.-

262

85

134

321

321

321

xxx

xxx

xxx

Page 18: SISTEMAS_LINEALES MÉTODOS NUMERICOS

18 DR. SORIA QUIJAITE JUAN JESÚS

TAREA DOMICILIARIA

E-1) En los ejercicios

c) Empiece con 0)0(x , use el método iterativo de Jacobi y calcule )(tx ¿Converge la iteración de Jacobi a

la solución ?

d) Empiece con 0)0(x , use el método iterativo de Gauss-Seidel y calcule )(tx ¿Converge la iteración de

Gauss-Seidel a la solución ?

a)

1552103

124

16272

24

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

b)

12649362516

863625169

54251694

301694

4321

4321

4321

4321

xxxx

xxxx

xxxx

xxxx

c)

2107035155

1263520104

70151063

355432

15

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx

d)

32222

62222

113222

104322

135432

54321

54321

54321

54321

54321

xxxxx

xxxxx

xxxxx

xxxxx

xxxxx