150
LABORATORIO 02 METODOS NUMERICOS Ingeniería Civil ING. CRISTIAN CASTRO P. Facultad de Ingeniería de Minas, Geología y Civil Departamento académico de ingeniería de minas y civil

Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

  • Upload
    others

  • View
    30

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

LABORATORIO02

METODOS NUMERICOS

Ingeniería Civil

ING.�CRISTIAN�CASTRO�P.

Facultad de Ingeniería de Minas, Geología y Civil

Departamento académico de ingeniería de minas y civil

Page 2: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Laboratorio de Computación Numérica

ING.�CRISTIAN�CASTRO�P.

Page 3: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

SISTEMAS�DE�ECUACIONES�ALGEBRAICAS�LINEALESSISTEMAS�DE�ECUACIONES�ALGEBRAICAS�LINEALES

• Métodos Numéricos • Ingeniería Civil

Sesión 02Sesión 02

Page 4: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Sistema de EcuacionesAlgebraicas Lineales

Ingeniería Civil – FIMGC - UNSCHcristiancastropcristiancastropcristiancastropcristiancastropcristiancastropcristiancastrocristiancastropcristiancastro

ING. CRISTIAN CASTRO P.

Page 5: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Métodos Numéricos Aplicados a la Ingeniería

Consideraciones de Matrices en MATLAB

Page 6: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

The MathWorks Product Suite

Stateflow Coder

Toolboxes MATLAB Compiler

Blocksets Simulink RTW

Page 7: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 8: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

MATLAB: Asignación

» A=2.3A =

2.3000 The MATLAB command

This is the result of the MATLAB statement

Variable names: Starts with a letter Up to 31 characters ( some use 19 or 21) May contain letters, digits and underscore_ Case sensitive (“A” is not the same as “a”)

Page 9: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

» A=[2.3]A =

2.3000

The square braces [ ] are used to define matrices. We can use them for scalars too.

this creates a variable “A” and set its value to 2.3

» A=2.3

A =

2.3000

MATLAB: Asignación Escalar

Page 10: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

X =2 3 7

» X=[2,3 7 ] Space or comma are used to separate elements in the same row

The square braces are used to define a matrix

MATLAB: Vector Fila

Page 11: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

X =2 37

» X=[2;3 ; 7 ]

The square braces are used to define a matrix

semicolon are used to end a row.You can also use ENTER to end a row

MATLAB: Vector Columna

Page 12: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

MATLAB: DeclaracionesMATLAB Statement Remarks

C=5.66 C is a scalar

C=[5.66] An alternative way

X=[3.5 6.3, 33] X is a 1X3 matrix with elements 3.5 , 6.3 and 33. Commas or space are used to separate the elements in a row

Y=[14 ]

Y is a 2X1 matrix whose elements are 1 and 4.

Y = [ 1 ; 4] Semicolon are used to indicate the end of the row.

A=1:5 Equivalent to A=[1 2 3 4 5]

Page 13: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

1001

V

MATLAB Statement Remarks

V=[ 2 3 53 3 8]

C=[1:3:11] C=[1 4 7 10]

Z=4\8 Z=2

Y=eye(2)

W = zeros(2,3)

833532

V

000000

V

MATLAB: Declaraciones

Page 14: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejemplo: Matriz Mágica

A = 16 3 2 135 10 11 89 6 7 124 15 14 1

A=magic(4)sum(A) se obtienen las sumas de las columnassum(A') se obtienen las sumas de las filassum(diag(A)) se obtiene la suma de la diagonal principalsum(diag(rot90(A))) se obtiene la suma de la otra diagonal fliplr(A) ==> sum(diag(fliplr(A)))

Page 15: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

The Colon (:) Operator1:10 ==> [1 2 3 4 5 6 7 8 9 10]0:10:50 ==> [0 10 20 30 40 50]0:pi/4:pi ==> [0 0.7854 1.5708 2.3562 3.1416]

La Función “magic”B = magic(4)B =

16 2 3 135 11 10 89 7 6 124 14 15 1

Page 16: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

VECTORES Y MATRICES• Las matrices son el tipo fundamental de dato en Matlab.

» A=[1 3 5; 6 9 2; 4 8 7]A =

1 3 56 9 24 8 7

» det(A)ans =

5

» A^2+3*Aans =

42 79 6186 142 6892 164 106

MATrix LABoratory-- datos son matrices-- reglas del álgebra lineal

Page 17: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

La matriz en MatLab

Matriz rectangular:Escalar: matriz de 1X1Vector: matriz de mX1

matriz de 1XnMatriz: matriz de mXn

4 10 1 6 2

8 1.2 9 4 25

7.2 5 7 1 11

0 0.5 4 5 56

23 83 13 0 10

1

2

Filas (m) 3

4

5

Columnas(n)

1 2 3 4 51 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

A =

A (17)

A (2,4)

Page 18: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

» a=[1 2;3 4]a =

1 23 4

» b=[-2.8, sqrt(-7), (3+5+6)*3/4]b =

-2.8000 0 + 2.6458i 10.5000» b(2,5) = 23b =

-2.8000 0 + 2.6458i 10.5000 0 00 0 0 0 23.0000

1. Cada expresión de MatLab puede ser ingresada como un elemento de una matriz (internamente es otra matriz)

2. En MatLab, los matrices siempre son rectangulares

Creación de matrices numéricos

NOTA: 1) Separador de fila

punto y coma (;)

2) Separador de columnaespacio o coma (,)

corchetes rectangulares

Page 19: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Expansión escalar:Suma de matriz + escalar

Creación de secuencias:operador punto y coma (:)

Función de uso práctico para crear matrices.

Expansión Escalar» w=[1 2;3 4] + 5w =

6 78 9

» x = 1:5x =

1 2 3 4 5» y = 2:-0.5:0y =

2.0000 1.5000 1.0000 0.5000 0 » z = rand(2,4)z =

0.9501 0.6068 0.8913 0.45650.2311 0.4860 0.7621 0.0185

Page 20: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Extracción desde un matriz

1

2

3

4

5

1 2 3 4 5A = 4 10 1 6 2

8 1.2 9 4 25

7.2 5 7 1 11

0 0.5 4 5 56

23 83 13 0 10

1 6 11 16 21

2 7 12 17 22

3 8 13 18 23

4 9 14 19 24

5 10 15 20 25

A(3,1)A(3)

A(1:5,5)A(:,5) A(21:25)

A(4:5,2:3)A([9 14;10 15])

A(1:end,end) A(:,end)A(21:end)’

Page 21: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

» a=[1 2;3 4]a =

1 23 4

» cat_a=[a, 2*a; 3*a, 4*a; 5*a, 6*a]cat_a =

1 2 2 43 4 6 83 6 4 89 12 12 165 10 6 12

15 20 18 24

Concatenación de matrices

Use [] para combinar los matrices como “elementos” de una matriz

La matriz resultante siempre es rectangular

4*a

corchetes rectangulares []

Separador de columnaespacio o coma (,)

Separador de filapunto y coma (;)

Page 22: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Borrar filas o columnas» A=[1 5 9;4 3 2.5; 0.1 10 3i+1]A =

1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i

» A(:,2)=[]A =

1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i

» A(2,2)=[]??? Indexed empty matrix assignment is not allowed.

Page 23: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Multiplicación de matrices» a = [1 2 3 4; 5 6 7 8];» b = ones(4,3);» c = a*bc =

10 10 1026 26 26

[2x4]

[4x3]

[2x4]*[4x3] [2x3]

a(2da fila).b(3ra columna)

» a = [1 2 3 4; 5 6 7 8];» b = [1:4; 1:4];» c = a.*bc =

1 4 9 165 12 21 32 c(2,4) = a(2,4)*b(2,4)

Multiplicación punto

Page 24: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Funciones para manipular matrices

zeros: Crea un matriz de cerosones: Crea un matriz de unoseye: Matriz identidadrand: Números aleatorios uniformemente distribuidosdiag: Matriz diagonal y diagonal de una matrizsize: Dimensiones de la matrizfliplr: Invierte la matriz de derecha a izquierdaflipud: Invierte la matriz de arriba hacia abajorepmat: Replica la matriz

Page 25: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

transpose('): Transpuesta de la matrizrot90: Girar la matriz 90°tril: La parte triangular baja de una matriztriu: La parte triangular superior de una matrizcross: Producto cruz de vectoresdot: Producto punto de vectoresdet: Determinante de la matrizinv: Inversa de la matrizeig: Calcula los eigenvalues y eigenvectors.rank: Rango de la matriz

Si a = (1,2,3) y b = (4,5,6), el producto cruz a × b es:a × b = (1,2,3) × (4,5,6) = ((2 × 6 - 3 × 5),-(1 × 6 - 3 × 4),+(1 × 5 - 2 × 4)) = (-3,6,-3).

Funciones para manipular matrices

Page 26: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• size devuelve el número de filas y de columnas de una matriz• length devuelve la longitud de un vector o la máxima dimensión de una matriz• inv(A) calcula la inversa de la matriz A•A’ es la transpuesta de la matriz A•d=eig(A) devuelve los valores propios asociados con la matriz A cuadradacomo un vector columna•[V,D]=eig(A) devuelve vectores propios en la matriz V y los valores propioscomo elementos diagonales en la matriz D•rank(A) devuelve el rango de la matiz A•norm(A) Calcula la norma de la matriz A. admite el calculo de norma -1, norma-2, norma-∞•poly(A) encuentra el polinomio característico asociado con la matriz cuadrada A•flipud(A) Intercambia una matriz de arriba a bajo•fliplr(A) Intercambia una matriz de izquierda a derecha•rot90(A) gira una matriz en dirección contraria a las manecillas del reloj•diag(v) crea una matriz diagonal, con el vector v sobre la diagonal•diag(A) extrae la diagonal de la matriz A como un vector columna

Page 27: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Podemos generar algunas matrices especiales usando funciones ya incorporadas:

zeros(n) : Matriz de ceros (nxn).

>>Z=zeros(3); %crea una matriz de ceros de orden 3

ans = 0 0 00 0 00 0 0

ones(n,m): Matriz de unos (nxm)

>>X=ones(3,5); %crea una matriz de unos de orden 3x5

ans = 1 1 1 1 11 1 1 1 11 1 1 1 1

rand(n,m): Matriz (nxm) de números aleatorios distribuidos uniformemente entre 0 y1

>> rand(3,1)ans = 0.2190

0.04700.6789

randn(n,m): Matriz (nxm) de números aleatorios distribuidos normalmente con media cero y varianza unidad.

>> randn(2)ans= 1.1650 0.0751

0.6268 0.3516

eye(n,m): Matriz identidad (nxm)

>>eye(3)ans= 1 0 0

0 1 0 0 0 1

Page 28: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Notación matricial

• La mayor potencialidad de MATLAB es su capacidad para manejarmatrices y vectores mediante un sistema de indexación flexible,que permite realizar numerosas operaciones con comandossencillos que no requieren procedimientos iterativos

• MATLAB trabaja fundamentalmente con un solo tipo de elementobase: matrices

• Los escalares son matrices de un elemento por un elemento y losvectores son matrices de una fila o de una columna

• Ejemplos:1. Generar un vector cuyos elementos son los número del 1 al 8

>> v = [1:8]v =

1 2 3 4 5 6 7 8

Page 29: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Notación matricial

1. Generar un vector cuyos elementos son los número del 1 al 8>> v = [1:8]v =

1 2 3 4 5 6 7 8

2. Crear un vector con una parte de v>> u = v(3:6)u =

3 4 5 6

3. Construir otro vector con elementos de u y v>> w = [v(3:5) u(2:4)]w =

3 4 5 4 5 6

Page 30: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Notación matricial4. Producto escalar de vectores de tres elementos>> u(1:3)*v(1:3)'ans =

26

5. Producto vectorial de vectores de tres elementos>> m = u(1:3)'*v(1:3)ans =

3 6 94 8 125 10 15

6. Extraer la 2da columna de la matriz anterior>> c2 = m(:,2)c2 =

68

10

Page 31: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Notación matricial

7. Multiplicación elemento por elemento de dos matrices>> X = [1 0 1; 2 1 2; 3 2 3], Y = [3 2 1; 4 1 1;5 2 1]X =

1 0 12 1 23 2 3

Y =3 2 14 1 15 2 1

>> X.*Yans =

3 0 18 1 2

15 4 3

Page 32: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con matrices

• Transpuesta de una matriz

>> XX =

15 5 12 6 23 2 7

>> X'ans =

15 2 35 6 21 2 7

• Matriz inversa>> inv(X)ans =

0.0736 -0.0640 0.0078-0.0155 0.1977 -0.0543-0.0271 -0.0291 0.1550

• Determinante>> det(X)ans =

516

Page 33: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Métodos Numéricos Aplicados a la Ingeniería

Vectores y Matrices

Page 34: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

VECTORES Y MATRICES

• Las matrices son el tipo fundamental de dato en Matlab.

» A=[1 3 5; 6 9 2; 4 8 7]A =

1 3 56 9 24 8 7

» det(A)ans =

5

» A^2+3*Aans =

42 79 6186 142 6892 164 106

MATrix LABoratory-- datos son matrices-- reglas del álgebra lineal

Page 35: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

VECTORES Y MATRICES

• Vectors (arrays) are defined as• >> v = [1, 2, 4, 5]

• >> w = [1; 2; 4; 5]

• Matrices (2D arrays) defined similarly• >> A = [1,2,3;4,-5,6;5,-6,7]

Page 36: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

size(c) = [3 2] length(c) = 3

size(b) = [2 3] length(b) = 3

size(a) = [5 1] length(a) = 5

size(a) = [1 5] length(a) = 5

size(c) = [fila,columna] length(c) = max(size(c))

Array Editor: Ventana donde podemos observar las matrices

Page 37: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Matrix Multiplication

• Example

• Note: use semi-colons to separate rows

011123

211101

132

120101

>> [1,0,-1;0,2,1] * [2,3,1;1,0,-1;-1,1,2]ans =

3 2 -11 1 0

3 columns

3 rows

Page 38: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores y matrices

Definición de vectores:

• Vectores fila; elementos separados por blancos o comas >> v =[2 3 4]

• Vectores columna: elementos separados por punto y coma (;)>> w =[2;3;4;7;9;8]

• Dimensión de un vector w: length(w)

• Generación de vectores• Especificando el incremento h de sus componentes v=a:h:b

• Especificando su dimensión n: linspace(a,b,n) (por defecto n=100)

• Componentes logarítmicamente espaciadas logspace(a,b,n) (n puntoslogarítmicamente espaciados entre 10a y 10b. Por defecto n=50)

Page 39: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores y matrices

Definición de matrices:

• No hace falta establecer de antemano su tamaño (se puede definir un tamaño y cambiarlo posteriormente).

• Las matrices se definen por filas; los elementos de una misma fila están separados por blancos o comas. Las filas están separadas por punto y coma (;).

» M=[3 4 5; 6 7 8; 1 -1 0]

• Matriz vacía: M=[ ];

• Información de un elemento: M(1,3), de una fila M(2,:), de una columna M(:,3).

• Cambiar el valor de algún elemento: M(2,3)=1;

• Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];

Page 40: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores y matrices

Definición de matrices:

• Generación de matrices:

• Generación de una matriz de ceros, zeros(n,m)

• Generación de una matriz de unos, ones(n,m)

• Inicialización de una matriz identidad eye(n,m)

• Generación de una matriz de elementos aleatorios rand(n,m)

• Añadir matrices: [X Y] columnas, [X; Y] filas

Page 41: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con Matrices y vectores:• Para definir matrices se utiliza:

[ ] constructor, separador de columnas; separador de filas

• En lugar de coma (,) puede utilizarse un espacio, y en lugar de punto y coma (;) puede utilizarse un retorno de carro

• Ejemplo:

A=[1,2,3; 4,5,6] o simplemente:A=[1 2 3

4 5 6]

Vectores y matrices

Page 42: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con vectores y matrices

Operaciones de vectores y matrices con escalares:

v: vector, k: escalar:

• v+k adición o suma

• v-k sustracción o resta

• v*k multiplicación

• v/k divide cada elemento de v por k

• k./v divide k por cada elemento de v

• v.^k potenciación de cada componente de v a k

• k.^v potenciación k elevado a cada componente de v

Page 43: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con vectores y matrices

Operaciones con vectores y matrices:

• + adición o suma• – sustracción o resta• * multiplicación matricial• .* producto elemento a elemento• ^ potenciación• .^ elevar a una potencia elemento a elemento• \ división-izquierda• / división-derecha• ./ y .\ división elemento a elemento• matriz traspuesta: B=A’ (en complejos calcula la traspuesta conjugada, sólo

la traspuesta es B=A.’)

Page 44: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Funciones para vectores y matrices

Funciones de MATLAB para vectores y matrices:

• sum(v) suma los elementos de un vector

• prod(v) producto de los elementos de un vector

• dot(v,w) producto escalar de vectores

• cross(v,w) producto vectorial de vectores

• mean(v) (hace la media)

• diff(v) (vector cuyos elementos son la resta de los elemento de v)

• [y,k] = max(v) valor máximo de las componentes de un vector (k indica posición).min(v) (valor mínimo).

El valor máximo de una matriz M se obtendría comomax(max(M)) y el mínimo min(min(v))

Page 45: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Funciones para vectores y matrices

Funciones de Matlab para vectores y matrices

• [n,m]=size(M) te da el número de filas y columnas

• matriz inversa: B=inv(M), rango: rank(M)

• diag(M): Obtención de la diagonal de una matriz.sum(diag(M)) calcula la traza de la matriz A.diag(M,k) busca la k-ésima diagonal.

• norm(M) norma de una matriz (máximo de valores absolutos de los elementosde A)

• flipud(M) reordena la matriz, haciendo la simétrica respecto de eje horizontal.fliplr(M) ) reordena la matriz, haciendo la simétrica respecto de un eje vertical

• [V, landa]=eig(M) da una matriz diagonal landa con los autovalores y otra Vcuyas columnas son los autovectores de M

Page 46: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con Matrices y vectores:• Pruebe los siguientes comandos

A = [ 1 , 2 , 3 ; 4 , 5 , 6 ]B = A'C = A * BD = B * Av = [ 1 , 2 , 3 , 4 ]w = [ 5 ; 6 ; 7 ; 8 ]x = v * wY = w * vM=[1:10 ; 11:20 ; 21:30]V=[1:0.3:10]

Page 47: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con Matrices y vectores:• Pruebe los siguientes comandos

A = [ 1 , 2 , 3 ; 4 , 5 , 6 ] Define la matriz A de 2x3B = A' Define B como la matriz transpuesta de AC = A * B C es la multiplicación de matrices A * BD = B * A D es la multiplicación de matrices B * Av = [ 1 , 2 , 3 , 4 ] Define el vector fila vw = [ 5 ; 6 ; 7 ; 8 ] Define el vector columna wx = v * w x es la multiplicación de matrices v * wY = w * v Y es la multiplicación de matrices w * vM=[1:10 ; 11:20 ; 21:30] matriz de 3x10, elementos 1 al 30V=[1:0.3:10] vector con elementos del 1 al 10 cuyascomponentes se forman sumando 0.3 a la anterior

Page 48: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Funciones que devuelven matrices• eye(4) Forma la matriz unidad de 4x4• zeros(3,5) Forma una matriz de ceros de 3x5• ones(3) Forma una matriz de unos de 3x3• ones(2,4) Idem de tamano 2x4• rand(3) forma una matriz de 3x3 de números aleatorios

entre 0 y 1, con distribución uniforme• rand(4,2) Idem de tamano 4x2• Probar los siguientes comandos:

A= magic(3) v=[1:10]size(A) size(v)length(A) length(v)sum(A) sum(v)

Page 49: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operadores .* ./ .^• En MATLAB se puede aplicar elemento a elemento los

operadores (* / ^) Para ello se los precede por unpunto(.)

» [1 2 3 4]^2??? Error using ==> ^Matrix must be square.» [1 2 3 4].^2ans =

1 4 9 16» [1 2 3 4]*[1 -1 1 -1]??? Error using ==> *Inner matrix dimensions must agree.» [1 2 3 4].*[1 -1 1 -1]ans =

1 -2 3 -4

Page 50: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operadores relacionales< menor que> mayor que<= menor o igual que>= mayor o igual que== igual que~= distinto queSi una comparación se cumple el resultado es 1 (true), mientras que si no se cumple es 0 (false).

• Operadores lógicos& and| or~ negación lógica

Page 51: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Cuando los operadores relacionales se aplican a matrices del mismo tamaño, la comparación se realiza elemento a elemento

>> A=[1,2;3,4];>> B=[4,3;3,2];>> A==Bans =

0 01 0

>> A~=Bans =

1 10 1

Page 52: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Si se compara una matriz con un escalar, La comparación se realiza entre el escalar y cada elemento de la matriz.

>> A=[1,2,2;2,3,3;4,4,2];>> A==2ans =

0 1 11 0 00 0 1

Page 53: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Creando matrices con submatrices• Se puede crear una nueva matriz componiendo como submatrices,

matrices definidas previamente. A modo de ejemplo ejecútense las siguientes instrucciones:

>> A=zeros(2);>> B=ones(2,3);>> C=[A,B;[1:5]]C =

0 0 1 1 10 0 1 1 11 2 3 4 5

Page 54: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Numerical Linear Algebra

• Basic numerical linear algebra• >> z=[1;2;3]; x=inv(A)*z• >> x=A\z

• Many standard functions predefined• >> det(A)• >> rank(A)• >> eig(A)

• The number of input/output arguments can often be varied• >> [V,D]=eig(A)

Page 55: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores• Edición» u = [1 2 3] » v = [1,2,3]» w = [1;2;3]» w = [1

23]

• Progresivos» 0:0.1:10» linspace(0,1,11)

• Normas » norm(v,2)» norm(v,1)» norm(v,inf)

-1 -0.6 -0.2 0.2 0.6 1-1-0.8-0.6-0.4-0.2

00.20.40.60.8

1

Page 56: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con vectores

• Suma: u+v• de comps.: sum(u)

• Productos• por escalar: 2*u• escalar: dot(u,v)• elemental: u.*v• matricial: u*w, w*u• de comps.: prod(u)

• Transpuesta: u'• Voltear» fliplr(x)» flipud(x')• Funciones» x = -1:0.01:1» y = tanh(x)» plot(x,y)

Page 57: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Matrices

• Edición

» A = [1,2;3,4]» B = [-1 -2

-3 -4]• Elemento: A(2,1)• Fila: A(2,:)• Columna: A(:,1)

• Bloques

» M = [A,B;B,A]• Submatrices

» M41 = M(1:3,2:4)» fil = [1,2,4]» col = [1,3,4]» M32 = M(fil,col)

Page 58: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones con matrices

• Suma y resta: + -• Producto: * .*• Potencia: ^ .^• Cociente izq.: / ./• Cociente der.: \ .\• Transpuesta: ' .'

• Determinante

» det(A)

• Inversa

» inv(A)

• Rango

» rank(A)

Page 59: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Identidad de orden n: eye(n)• Nula de tamaño m×n: zeros(m,n)• Matriz de unos: ones(m,n)• Matriz aleatoria: rand(m,n)• Matriz de Hilbert: hilb(n) • Matriz de van der Monde: vander(x)

Matrices usuales

Page 60: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

a(1,1) =

a(:,1) =

7.9787

7.978711.22911.01513.38511.183

Page 61: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

7.9787 11.015 11.183

a(1:2:end,1) =

a(3,:) = 11.015 7.9818 12.19 11.156 9.2451

Page 62: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

11.015 7.9818 12.19a(3,1:3) =

Page 63: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Redondeo:• a= 4.566• b=fix(a) valor entero = 4• c=roundn(a,-2), redondeo al decimal mas próximo 4.57• d=ceil(a) redondeo al entero próximo = 5

Elementos básicos en MATLAB

• Estadística Simple• a = 100 *rand(15,1);• [oa,pa]=sort(a); Orden ascendente• [od,pd]=sort(a,’descend’); Orden descendente• p=hist(a,5); Histograma• y = prctile(a,[25 50 75]); Percetiles

Page 64: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

aOrden

ascedenteOrden

descedentePosición Orden

ascedentePosición Orden

descedente

Page 65: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

1 2 3 4 50

0 . 5

1

1 . 5

2

2 . 5

3

3 . 5

4

bar(p)Opciones para generar gráficas

Percentiles

25% 50% 75%0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 0

0

0 .5

1

1 .5

2

2 .5

3

3 .5

4hist(p,5)

Page 66: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Resolviendo sistemas de ecuaciones lineales1.2 x1 + 2.2 x2 = 21.47.1 x1 + 0.5 x2 = 39

A = [1.2 , 2.2 ; 7.1 , 0.5 ]R = [ 21.4 ; 39 ] X = inv(A) * R

Ejercicios

Page 67: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicios:• 1) Obtener el producto interior a . b

a=[1,2,3,4]b=[5,6,7,8]

• 2) Verificar si efectivamente magic(4) es un cuadromágico comprobando que las filas, columnas ydiagonales principales sumen exactamente elmismo valor (utilizar funciones diag y rot90)

Page 68: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Solución de los Ejercicios• 1) Obtener el producto interior a . b

a=[1,2,3,4]b=[5,6,7,8]

Rta: a*b'• 2) Verificar si efectivamente magic(4) es un cuadro

mágico comprobando que las filas, columnas ydiagonales principales sumen exactamente el mismo valor (utilizar funciones diag y rot90)Rta: hay que realizar las siguientes operaciones:A=magic(4)sum(A) se obtienen las sumas de las columnassum(A') se obtienen las sumas de las filassum(diag(A)) se obtiene la suma de la diagonal principalsum(diag(rot90(A))) se obtiene la suma de la otra diagonal

Page 69: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicios• 1) Escribir una expresión que compute la cantidad de números 3

que posee una matriz A.

• 2) Escriba una expresión que devuelva el valor máximo de cada fila de una matriz A (función max).

• 3)Escriba una expresión que devuelva true (1) si todos los elementos de una matriz son iguales.

Page 70: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Solución de los Ejercicios• 1) Escribir una expresión que compute la cantidad de numeros 3

que posee una matriz A.

sum(sum(A==3))• 2) Escriba una expresión que devuelva el valor máximo de cada

fila de una matriz A (función max).

max(A')'• 3)Escriba una expresión que devuelva true (1) si todos los elem

entos de una matriz A son iguales.

max(max(A))==min(min(A))

Page 71: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Acceso a los elementos de una matriz• Los elementos de las matrices se acceden por sus dos

índices. Por ejemplo A(1,2) ó A(i,j).• Sin embargo las matrices se almacenan por columnas

y teniendo en cuenta esto puede accederse a cualquierelemento con un sólo subíndice. Por ejemplo

>> A=[1,2,3;4,5,6;7,8,9];>> A(4)ans =

2• Probar qué devuelve A(:)

• Rta: el vector columna formado por la concatenaciónde las columnas de A

Page 72: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

Page 73: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

>> A(2:3,2:4)ans =

11 10 87 6 12

Page 74: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

>> A(2,:)ans =

5 11 10 8

Page 75: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

>> A(:,1)ans =

16594

Page 76: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

>> A(4:-1:1,:)4 14 15 19 7 6 125 11 10 816 2 3 13

Page 77: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Operador (:) como índice>> A=magic(4)A =

16 2 3 135 11 10 89 7 6 124 14 15 1

>> A([1,3],:)16 2 3 139 7 6 12

Obsérvese que también puede utilizarse un vector como índice. En este caso sirve para poder seleccionar filas disjuntas

Page 78: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicios• 1) Construir una matriz A de 2x6 formada por la segunda y terce

ra fila de magic(6)

• 2) Eliminar la columna 3

• 3) Obtener el vector suma por columna y agregarlo como última fila de A

• 4) Obtener el vector suma por fila y agregarlo como última columna de A

Page 79: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Solución de los Ejercicios• 1) Construir una matriz A de 2x6 formada por la segunda y terce

ra fila de magic(6)A=magic(6);A=A(2:3,:)

• 2) Eliminar la columna 3A=A(:,[1,2,4:6])

• 3) Obtener el vector suma por columna y agregarlo como última fila de A

A=[A;sum(A)]

• 4) Obtener el vector suma por fila y agregarlo como última columna de A

A=[A,sum(A')']

Page 80: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Aplicaciones a la IngenieríaMétodos Numéricos

Aplicados a la Ingeniería

Page 81: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Una red eléctrica Una red eléctrica

R1

R3

R4

R1

R2

R4

R1

R2

R4

R1

R2

R4

V I4I3I2I1

a b

cd

Page 82: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Una red de callesUna red de calles300 200 100

350 600 400

400

450

600

500 x1 x2

x3 x4

x6 x7

x5

A

D

B

E

C

F

Page 83: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Matriz de incidenciaMatriz de incidencia

C a l l e

1 2 3 4 5 6 7

C A 1 0 1 0 0 0 0

r B -1 1 0 -1 0 0 0

u C 0 -1 0 0 1 0 0

c D 0 0 -1 0 0 -1 0

e E 0 0 0 1 0 1 -1

F 0 0 0 0 -1 0 1

Page 84: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ecuación del Calor en un rectángulo

• TC = (TW + TN + TS + TE)/4

C

N

EW

S

4 –1–1

–1

–1Molécula

Page 85: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ecuación del Calor• Modelo matemático • Matriz asociada

)/2T(TT

)/2T(TT

)/2T(TT

)/2T(TT

1n+1-nn

423

312

201

21-

1-

21-

1-21-

1-2

T0 T1 T2 . . . Tn Tn+1

Page 86: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Generación de la matriz con MATLABfunction A = calor2D(n,m)p = n*m;v = ones(1,p-1);for k=n:n:p-1, v(k) = 0; endw = ones(1,p-n);A = 4*eye(p)...

- diag(v,1) - diag(v,-1)... - diag(w,n) - diag(w,-n);

Page 87: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

12

34

56

1

2

3

4

50

20

40

60

80

Gráfica del problema de transferencia de calor

Page 88: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

l La utilización de los Métodos Iterativos para laresolución de sistemas de ecuaciones linealeses aconsejable cuando se abordan problemasde gran dimensión y dispersos.

l Existen multitud de aplicaciones donde la matrizde coeficientes es dispersa y de gran dimensión.

l Ejemplos:F Ecuaciones en derivadas parcialesF Problemas de valores en la fronteraF Aproximación de funciones (Splines)

Aplicaciones a la Ingeniería

Page 89: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ecuación de transmisión del calor

La ecuación de transmisión del calor en una barraen régimen estacionario, viene dada por lasiguiente ecuación diferencial.

con las condiciones de frontera u (0)=0 y u (L)=1.

x0=0 x6=L

hu0=u(0)=0 1=u(L)=u6

x1 x2 x3 x4 x5

¿u1? ¿u2? ¿u3? ¿u4? ¿u5?h=L/6=1

L=6

Lxdx

ud 002

2

Page 90: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ecuación de transmisión del calor (2)

Aproximando mediante diferencias finitas

y sustituyendo en la ecuación original, queda:

A partir de estas 5 ecuaciones se obtiene un sistema tridiagonal 2 1 0 0 0 0u

1 2 1 0 0

0 1 2 1 0

0 0 1 2 1

0 0 0 1 2

0

0

0

1

1

2

3

4

5

u

u

u

u

211

2

2 2h

uuudx

ud iii

5,....,1022

11 i

huuu iii

Page 91: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Como resultado de la discretización de laecuación de Poisson.

Aparece un S.E.L. con lamatriz de coeficientes dispersa de la forma:

Ecuación de Poisson

en0yen),(2

2

2

2

uyxfy

ux

u

Page 92: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Si llamamos a la superficie de puntos negros y a contorno de punto blancos.

La matriz resultante es de dimensión nxxny=15.

ny=3

nx=5

y

x

Introducción. Ecuación de Poisson

Page 93: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

SISTEMAS DE ECUACIONES LINEALES El diagrama adjunto representa la discretización del problema del calor en unaplaca. Se trata de determinar la temperatura en los nodos interiores de la mallaTj, j = 1, 2, …, 6, conocidas las temperaturas en el borde y suponiendo que hayequilibrio término, es decir que las temperaturas no varían. En el modelo discreto discreto se supone que, en el equilibrio, la temperatura en cada nodo es la media de las temperaturas en los nodos vecinos. a) Obtener el sistema lineal correspondiente a los datos de la figura, formulando

las condiciones que han de verificar las temperaturas de los nodos interiores. b) Resolver el sistema por un método directo. c) Iterar por el método de Jacobi hasta que la variación máxima de la

temperatura en un nodo sea inferior a 0.01. ¿Cuál es la máxima desviación conrespecto a la solución obtenida en el primer apartado?

d) Iterar por el método de Gauss-Seidel y comparar los resultados con los delmétodo de Jacobi.

CASOS DE APLICACIÓN

Problema Académico

Page 94: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

NOTA.- suponga que la temperatura en cada nodo Tij es la media de las temperaturas de los 4 nodosvecinos:

jijijijiij TTTTT ,11,1,,141

0º 50º0º

50º

50º

50º

50º

T5T3T1

T6T2 T4

50º 100100

CASOS DE APLICACIÓN

Page 95: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 96: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 97: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Sea i la temperatura en el nodo (i). La ecuación que rige la distribución de temperatura

en una placa es:

ktQ

yx

2

2

2

2

: Variable dependiente, que representa la temperatura del elemento t : Grosor de la placa k : Conductividad Q : Razón de pérdida de calor por unidad de volumen La ecuación que rige esta situación es con Q = 0, donde estas aproximaciones se usan paralas derivadas de segundo orden en un nodo central donde la temperatura es O . RAZÓN DE FLUJO RAZÓN DE FLUJO RAZÓN DE PÉRDIDA DE CALOR HACIA DENTRO HACIA FUERA DESDE LA SUPERFICIE Nota.- Los matemáticos cuentan con una denominación y un símbolo especial para indicarla suma de las segundas derivadas parciales. Se denomina LAPLACIANO y se representa por rl símbolo 2 . Por tanto, suele representarse como:

ktQ

2

Comentario

Page 98: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

ComentarioPara el problema señalado, hay un dispositivo que puede usarse para recordar estaaproximación al Laplaciano, que se denomina operador gráfico:

2

22

2 4

1141

11

hOBARLO

h

Mediante el Método de LIEBMANN, (con condiciones en la frontera de DIRICHLET):

4

1101

1

41 1,1,,1,1

,

jijijiji

jiO

15

8

16

9

1 2

19

12

5

17

10

18

11

3 4

20

13

21

14

6 7

Page 99: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

SISTEMAS DE ECUACIONES LINEALES Por un tubo de secciones interior y exterior cuadradas, circula un líquido a temperatura de 200º C. El tubo está parcialmente sumergido en hielo, de manera que la mitad inferior del exterior del tubo estáa una temperatura de 0 º C. La cara superior del tubo se mantiene a 100º C. Se supone que latemperatura en los laterales varía linealmente entre los 0º C de la parte superior de hielo y los 100 ºC de la cara superior. La sección interior mide 4 cm. De lado y la exterior 10 cm. La distribución dela temperatura en una sección transversal del tubo se aproxima mediante una malla con nudos cadacm. a) Resolver el sistema por un método directo b) Estudiar la convergencia de los métodos indirectos de Jacobi y Gauss-Seidel. c) Hallar la solución por otro método numérico que acelere la convergencia. d) Mostrar la estructura del sistema resultante. e) Presentar una solución con una herramienta computacional (se recomienda MATLAB) f) Dibujar las isotermas en la sección del tubo estudiada.

100º

80º

60º

40º

20º

80º

60º

40º

20º

200º

0º 0º

PR

OB

LEM

A `

PR

OP

UES

TO

Page 100: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

100º

80º

60º

40º

20º

80º

60º

40º

20º

200º

0º 0º

TEMPERATURA CONOCIDA (40 nodos)

TEMPERATURA DESCONOCIDA (72 nodos)

Page 101: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

1

2

3

m

m+1

m+2

m+3

2m

2m+1

2m+2

2m+3

3m

(n-1)m+1

(n-1)m+2

(n-1)m+3

nm

0x1 x2 x3 xn

y1

y2

y3

ym…

Algoritmo de Distribución de Temperaturas

obtener afunción la es y)u(x, donde 02

2

2

2

yu

xu

Resultado de la discretización de la ecuación de LAPLACE,

plano del y)(x, puntoun en ra temperatula es u""

Malla de arriba-abajo y de izquierda-derecha

Page 102: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Denotemos por ui,j el valor de la temperatura “u” en el punto (xi,yj) = (ih,jh).

02

2

2

2

yu

xu

1,2,1,0 ni 1,2,1,0 mj

La derivada parcial segunda de “u” con respecto a “x” dos veces en (xi,yj) se aproxima por

diferencias finitas como:

2

,1,,12

2 2,h

uuux

yxu jijijiji

21,,1,

2

2 2,h

uuuy

yxu jijijiji

Substituyendo en la ecuación de Laplace estas ecuaciones para cada nodo del interior de la

malla, se obtiene un sistema de ecuaciones lineales con “nm” incógnitas:

Algoritmo de Distribución de Temperaturas

Page 103: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Denotemos por ui,j el valor de la temperatura “u” en el punto (xi,yj) = (ih,jh).

041 ,11,,,,1 jijijijiji uuuuu

1,2,1,0 ni 1,2,1,0 mj

Los términos independientes de este sistema se obtienen de las condiciones de frontera.

Algoritmo de Distribución de Temperaturas

La función de MATLAB siguiente construye por diagonales la matriz correspondiente a una malla mxnfunction A = calor2D(m,n)p = m*n;v = ones(1, p-1); % Diagonales 1 y -1v(m:m:p-m) = 0;w = ones(1,p-m); % Diagonales m y -mA = -4*eye(p)+ diag(v,1)+ diag(v,-1) + diag(w,m)+ diag(w,-m);

Page 104: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 105: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 106: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 107: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 108: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 109: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 110: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 111: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 112: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Métodos Numéricos Aplicados a la Ingeniería

Métodos Directos de Ecuaciones Lineales

Page 113: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

• Sistema inicial

• Triangularización

• Sustitución regresiva

Fases de la eliminaciónFases de la eliminación

Ax = b

Ux = c

x = A–1b

Page 114: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Factorización LUFactorización LU

Sistema originalAx = b LUx = b

Sistemas triangularesLy = bUx = y

» [L,U] = lu(a)» [L,U,P] = lu(a)� Resolución de múltiples sistemas con la mis

ma matriz.� Inversa por el método de Jordan-Gauss

Page 115: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Problema Nº 01Aplicar el método de eliminación de Gauss con pivotaciónparcial para resolver el siguiente sistema lineal, operandodirectamente en MATLAB con notación matricial:

x + 2y – z = -12x – 3y + z = -6x + 4z = 2

Comprobar la obtención de la solución directamente con eloperador \ de MATLAB

Expresar matricialmente las operaciones elementalesrealizadas en el proceso, de tal manera que se obtenga lafactorización LU de la matriz del sistema

CASOS DE APLICACIÓN

Page 116: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 117: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 118: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 119: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema
Page 120: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Métodos Numéricos Aplicados a la Ingeniería

Matrices Dispersas

Page 121: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Matrices DispersasMatrices Dispersas

• Creación de matrices dispersas• sparse(A)• full(a)• speye(n)

• Operaciones usuales• + - * \ lu

• Otras funciones de MATLAB• issparse(A)• spy(a)

Page 122: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

122

Ejemplo práctico

Las matrices dispersas aparecen en múltiples aplicaciones.

2

2

2

2 0u

xu

yf u en y en

Como resultado de la discretización de la ecuación de Poisson,

Aparecen matrices de forma muy similar a la de la figura.

Page 123: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Matrices dispersas en MATLAB

Características:Almacenamiento interno mediante formato coordenadoEl acceso es idéntico al de las matrices densas. MATLABencapsula el formato coordenado.

Se pueden utilizar los operadores elementales (+,-,*,/), con operandos densos y dispersos. Si un operador esdenso y otro disperso el resultado es denso.

Generalmente, sobre las matrices dispersas se puedenutilizar las mismas funciones que sobre las densas, peroexisten excepciones.

El formato coordenado utilizado por MATLAB es dinámico.

Page 124: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (I)

AS es una matriz dispersa de dimensiones 5x5. si seteclea su nombre en la línea de órdenes aparece unlistado de sus elementos.

>> AS (1,1) 1.3(5,1) 6.8(2,2) 2.4(3,3) 1.4(4,4) 7.1(1,5) 8.2(5,5) 9,5

se muestra cada elemento,con los correspondientes índicesde fila y columna.

Los elementos se hallanordenados por columnas.

Page 125: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (II)

La matriz AS del ejemplo anterior se puede generar,a partir de una densa, utilizando la función sparse.

>> A=[1.3, 0, 0, 0, 8.2;0, 2.4, 0, 0, 0;0, 0, 1.4, 0, 0;0, 0, 0, 7.1, 0;6.8, 0, 0, 0, 9.5];

>> AS=sparse(A);

Pese a que ambas matricesson iguales, puesto queposeen los mismos elementos,MATLAB únicamente almacenalos elementos no nulos de AS.

La función issparse permitesaber si una función se hallaalmacenada o no en formatodisperso.

>> issparse(A)ans=0

>> issparse(AS)ans= 1

Page 126: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (III)

Se puede acceder y manipular a los elementos de lamatriz dispersa AS como si de una matriz densa se tratase.

>> AS(1,1)1.3

>> AS(3,4)0

>> AS(3,4)=5.5;>> AS(1,1)=2.4;>> AS

La posición (3,4) corresponde a unelemento nulo de la matriz AS.Se añade un elemento no nulo.

tecleando AS podemos ver las modificaciones efectuadas.

Se modifica un elemento no nulo.

Page 127: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (IV)

>> AS

Se ha modificado.

Se ha añadido.

AS =

(1,1) 2.4000(5,1) 6.8000(2,2) 2.4000(3,3) 1.4000(3,4) 5.5000(4,4) 7.1000(1,5) 8.2000(5,5) 9.5000

Page 128: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

128

Manejo básico de matrices dispersas en MATLAB (V)

Se visualiza la matriz AS mediante la función spy.

>> spy(AS,’g’)

>> nnz(AS)ans=

8

0 2 4 6

0

1

2

3

4

5

6nz = 8

La función nzz permitesaber el número de elementos no nulos de AS.

Page 129: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (VI)

Si se opera una matriz dispersa con una densa, generalmente, el resultado es denso.>> issparse(AS*A)

ans =0

Si se opera una matriz dispersa con otra dispersa, generalmente, el resultado es disperso. Aunque el resultadopueda tener más elementos no nulos que los operandos.

>> issparse(AS+AS)ans =

1

>> issparse(AS*ones(5,1))ans =

0

Page 130: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (VII)

puede ser interesante desmenuzar el formato coordenado,con el fin de manipular la estructura de 3 vectores (i,j,s).

>> [i,j,s]=find(AS); La función find permite extraer lostres vectores del formato coordenado.>> i’

ans=1 5 2 3 3 4 1 5

>> j’ans=

1 1 2 3 4 4 5 5>> s’ans=

2.4 6.8 2.4 1.4 5.5 7.1 8.2 9.5>> nnz(AS)ans=

8

Los elementos se hallanordenados por columnas,y en la columna por filas.

Lógicamente, el número de elementos no nulos coincide con la longitud de los vectores.

Page 131: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (VIII)

La función sparse también puede utilizarse para construiruna matriz dispersa a partir de los tres vectores del esquemacoordenado.

AS=sparse(i,j,s)

>> BS=sparse(i,j,s); La matriz BS es idéntica a la matriz AS.

Las funciones tril y triu permiten separar el triángulo inferior y superior de una matriz dispersa.

>> BSL=tril(BS);>> BSU=triu(BS);

Page 132: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (IX)

>> A=full(AS)

A =

2.4 0 0 0 8.20 2.4 0 0 00 0 1.4 5.5 00 0 0 7.1 0

6.8 0 0 0 9.5

La función full realiza la operación inversa de la funciónsparse. convierte una matriz dispersa en densa.

La matriz A es almacenada enformato denso, pese a que su

estructura es dispersa.

Page 133: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Manejo básico de matrices dispersas en MATLAB (y X)

La función speye permite generar una matriz dispersaidentidad.

» speye(5)

ans =

(1,1) 1(2,2) 1(3,3) 1(4,4) 1(5,5) 1

La función sparse permite, también, generar una matrizdispersa vacía

» sparse(5,5)

ans =

All zero sparse: 5-by-5.

Page 134: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Generación aleatoria de matrices dispersas (I)

La función sprand permite generar matrices dispersasuniformemente distribuidas.

S=sprandn(m,n,density) es una matriz dispersa de dimensiónmxn y con, aproximadamente, density*m*n elementos no nulos.

>> AS=sprandn(50,50,0.1);>> spy(AS);>> nnz(AS)

ans=244

>> 50*50*0.1ans=

250

>> AS=sprandn(50,50,0.5);>> spy(AS);>> nnz(AS)

ans=974

>> 50*50*0.5ans=

1250

Page 135: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

135

Generación aleatoria de matrices dispersas (II)

0 10 20 30 40 50

0

5

10

15

20

25

30

35

40

45

50

nz = 244

densidad=0.1

0 10 20 30 40 50

0

5

10

15

20

25

30

35

40

45

50

nz = 970

densidad=0.5

Page 136: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Generación aleatoria de matrices dispersas (III)

S=sprandn(m,n,density,rc) es una matriz dispersa que, además, tiene un número de condición próximo a 1/rc.

>> AS=sprandn(50,50,0.1,0.1);>> spy(AS);>> nnz(AS)

ans=242

>> condest(AS)ans=

53.945

>> AS=sprandn(50,50,0.1,0.01);>> spy(AS);>> nnz(AS)

ans=245

>> condest(AS)ans=

1502.6

Page 137: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Generación aleatoria de matrices dispersas (IV)

S=sprandsym(n,density,rc) es una matriz dispersa simétrica.S=sprandsym(n,density,rc,kind) es una matriz dispersa simétrica definida positiva. kind=1 o 2.

>>AS=sprandsym(50,0.1,0.1,1);>>spy(AS);>>nnz(AS)

ans=258

>>condest(AS)ans=

14.7642

>>AS=sprandsym(50,0.1,0.01,1);>>spy(AS);>>nnz(AS)

ans=266

>>condest(AS)ans=

665.0635

Page 138: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

138

Generación aleatoria de matrices dispersas (y V)

0 10 20 30 40 50

0

10

20

30

40

50

nz = 2420 10 20 30 40 50

0

10

20

30

40

50

nz = 266

Page 139: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Resumen de funciones (I)

1.- Matrices Dispersas Elementales.speye - Matriz Identidad Dispersa.sprandn - Matriz Aleatoria Dispersa.sprandsym - Matriz Aleatoria Simétrica Dispersa.spdiags - Matrices Dispersas Banda formadas a

partir de diagonales. .2.- Conversion de Matrices densas a dispersas.sparse - Crea una matriz dispersa a partir de la

información de ciertos índices.full - Convierte una matriz en formato disperso a

formato denso.find - Encuentra los índices de las entradas no nulas.

Page 140: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Funciones que trabajan con los elementos no nulos de la matriz

nnz - Número de entradas no nulasnonzeros - Elementos no nulosnzmax - Aumento de almacenamiento reservado para los

elementos no nulos.spones - Reemplaza las entradas no nulas por unos.issparse - Devuelve 1 si es dispersa, 0 en otro caso.spfun - Aplica la función a los elementos no nulos.

Resumen de funciones (II)

Page 141: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Visualización de matrices dispersasspy - Visualiza la estructura de la matriz dispersagplot - Dibuja un grafo, "graph theory".

Reordering algorithms.

colmmd - Mínimo grado por columnas.symmmd - Minimo grado Simétrico.symrcm - Ordenación Cuthill-McKee inversa.colperm - Ordenación por columnas basada en los

elementos no nulos. randperm - Vector permutación.

Resumen de funciones (III)

Page 142: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones Matriciales Básicas

En esta asignatura únicamente se estudiarán métodos iterativos para laresolución de sistemas lineales.

Estos métodos tiene las siguientes características:- En ausencia de precondicionado la única operación que involucra a la

matriz de coeficientes es el producto matriz por vector.- Esta operación no modifica la estructura de la matriz dispersa.

De todo esto se deduce la necesidad de estudiar la implementacióneficiente del producto matriz por vector utilizando formatos de almacena-miento dispersos

Page 143: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones Matriciales Básicas.Producto matriz vector denso

0. b=(0,0,0,…,0)t1. para i=1:nfil2. para j=1:ncol3. bi=bi+aij*xj4. fin5 .fin

0. b=(0,0,0,…,0)t1. para j=1:ncol2. para i=1:nfil3. bi=bi+aij*xj4. fin5. fin

Orientado a filas (Ax=b)

Orientado a columnas (Ax=b)

ai1 ai2 ai3 ai4 ai5i

x1

x2

x3

x4

x5

= bi

j

bi=ai1x1+ai2x2+ai3x3+ai4x4+ai5x5

a1j

a2j

a3ja4j

a5j

i

b1

b2

b3

b4

b5

=xj

j

b1=a1jxi

b2=a2jxi

b3=a3jxi

b4=a4jxi

b5=a5jxi

Page 144: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Operaciones Matriciales Básicas.Producto matriz vector disperso

0. b=(0,0,0,…,0)t1. para i=1:nfil2. para j=I(i): I(i+1)-13. bi=bi+S(j)*xJ(j)4. Fin5. .fin

0. b=(0,0,0,…,0)t1. para i=1:nfil2. para j=1:ncol3. bi=bi+aij*xj4. fin5 .fin

Filas denso (Ax=b)Filas disperso (Ax=b)

0 0 0 a 0 b0 c 0 0 d 00 0 0 e 0 00 f 0 0 0 00 0 g 0 h 0i 0 0 0 0 j

S: [ a b c d e f g h i j ]J: [ 4 6 2 5 4 2 3 5 1 6 ]

I: [ 1 3 5 6 7 9 11]1 2 3 4 5 6 7

nfil+1

nnz1 2 3 4 5 6 7 8 9 10x1

x2x3x4x5x6

b1b2b3b4b5b6

=

Page 145: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

145

Operaciones Matriciales Básicas.Producto matriz vector disperso

1. for i=1:nfil 2. for j=I(i):I(i+1)-1 3. bi=bi+S(j)*xJ(j)i=1 j=1:2 b1= a x4 + b x6

I(1):I(2)-1 S(1) xJ(1) S(2) xJ(2)j=1 j=2

i=2 j=3:4 b2= c x2 + d x5I(2):I(3)-1 S(3) xJ(3) S(4) xJ(4)

… j=3 j=4i=6 j=9:10 b6= i x1 + j x6

I(6):I(7)-1 S(9) xJ(9) S(10) xJ(10)j=9 j=10

0 0 0 a 0 b0 c 0 0 d 00 0 0 e 0 00 f 0 0 0 00 0 g 0 h 0i 0 0 0 0 j

S: [ a b c d e f g h i j ]J: [ 4 6 2 5 4 2 3 5 1 6 ]

I: [ 1 3 5 6 7 9 11]1 2 3 4 5 6 7

nfil+1

nnz1 2 3 4 5 6 7 8 9 10x1

x2x3x4x5x6

b1b2b3b4b5b6

=

Page 146: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio

0 0 0 a 0 b0 c 0 0 d 00 0 0 e 0 00 f 0 0 0 00 0 g 0 h 0i 0 0 0 0 j

x1x2x3x4x5x6

b1b2b3b4b5b6

=

b6 = b6 + i x1j=1:

b2 = b2 + c x2b4 = b4 + f x2

j=2:

Producto matriz vector disperso orientado a colum

nas (Ax=b)

function [b] =mv_csc(I,J,S,x)

Page 147: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Ejercicio function [y]= mv_csc (I,J,S,x)

cols=length(J)-1;fils=max(I);

y=zeros(fils,1);

for j = 1:colsfor k=J(j): J(j+1)-1

i=I(k);y(i) = y(i) + x(j)*S(k);end

end

Page 148: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores y matrices___________

Ejemplo1: Tomemos la siguiente matriz

Y trabajemos con ella como una matriz dispersa, para ellodefinimos el vector de elementos no nulos, el vectordefinido por las filas y el vector definido por las columnas

4720001113000000080037

000412

Page 149: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Vectores y matrices___________________________m=[12,-4,7,3,-8,-13,11,2,7,-4];f=[1,1,2,2,2,4,4,5,5,5];c=[1,2,1,2,5,3,4,3,4,5];a=sparse(f,c,m,5,5)full(a)

m1=[12,7,-4,3,-13,2,11,7,-8,-4];f1=[1,2,1,2,4,5,4,5,2,5];c1=[1,1,2,2,3,3,4,4,5,5];b=sparse(f1,c1,m1,5,5];full(b)

a=sparse(f,c,m)s=a+bp=a*b[f2,c2,m2]=find(p)e=full(sparse(f2,c2,m2))

Page 150: Laboratorio Metodos Numericos - UNSCH 02 [Modo de ... · Notación matricial • La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema

Muchas Gracias