laboratorio computacion numerica unsch 03

76
LABORATORIO 03 03 Facultad de Ingeniería de Minas, Geología y Civil Facultad de Ingeniería de Minas, Geología y Civil Departamento académico de ingeniería de minas y civil METODOS NUMERICOS Ingeniería Civil Ingeniería Civil ING. CRISTIAN CASTRO P. Lab at id Laboratorio de Computación Numérica Computación Numérica ING. CRISTIAN CASTRO P.

Upload: cesar-ulloa

Post on 31-Oct-2015

50 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Laboratorio Computacion Numerica Unsch 03

LABORATORIO0303

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

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

METODOS NUMERICOS

Ingeniería CivilIngeniería Civil

ING.CRISTIANCASTROP.

Lab at i dLaboratorio de Computación NuméricaComputación Numérica

ING.CRISTIANCASTROP.

Page 2: Laboratorio Computacion Numerica Unsch 03

Sesión 03Sesión 03Sesión 03Sesión 03

SISTEMASDEECUACIONESSISTEMASDEECUACIONESSISTEMASDEECUACIONESALGENRAICALLINEALESSISTEMASDEECUACIONESALGENRAICALLINEALESALGENRAICALLINEALESALGENRAICALLINEALES

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

Sistema de EcuacionesSistema de EcuacionesAlgebraicas LinealesAlgebraicas Lineales

Ingeniería Civil – FIMGC - UNSCHgcristiancastropcristiancastropcristiancastropcristiancastropcristiancastropcristiancastrocristiancastropcristiancastro

ING. CRISTIAN CASTRO P.ING. CRISTIAN CASTRO P.

Page 3: Laboratorio Computacion Numerica Unsch 03

MÉTODOS NUMÉRICOS

Consideraciones de MatriceConsideraciones de MatriceMATLABMATLAB

Mét d N é is en s en MATLABMATLAB

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

Page 4: Laboratorio Computacion Numerica Unsch 03

Th M thW k P d t S itThe MathWorks Product Suite

Stateflow CoderStateflow Coder

Blocksets Simulink RTWBlocksets Simulink RTW

Toolboxes MATLAB CompilerToolboxes MATLAB Compiler

Page 5: Laboratorio Computacion Numerica Unsch 03

MATLAB A i ióMATLAB: Asignación

Variable names:

Starts with a letterStarts with a letter

Up to 31 characters ( some use 19 or 21)

May contain letters digits and underscore

» A=2.3

A

May contain letters, digits and underscore_

Case sensitive (“A” is not the same as “a”)

A =

2.3000 The MATLAB command

This is the result of theThis is the result of the MATLAB statement

MATLAB: Asignación EscalarMATLAB: Asignación Escalar

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

2 3000

Th b [ ]

2.3000

» A=[2.3]

A =

The square braces [ ] are used to define matrices.

2.3000 We can use them for scalars tooscalars too.

Page 6: Laboratorio Computacion Numerica Unsch 03

MATLAB: Vector FilaMATLAB: Vector Fila

The square braces are d t d fi t iused to define a matrix

» X=[2 3 7 ] Space or comma are used

X =

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

2 3 7same row

MATLAB: Vector ColumnaMATLAB: Vector Columna

The square braces are d t d fi t iused to define a matrix

» X=[2;3 ; 7 ] semicolon are used to end a

X =

» X=[2;3 ; 7 ] semicolon are used to end a row.

Y l ENTER tX

2 You can also use ENTER to end a row

3

7

Page 7: Laboratorio Computacion Numerica Unsch 03

MATLAB D l iMATLAB: Declaraciones

MATLAB Statement Remarks

C=5 66 C is a scalarC=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=[1 Y is a 2X1 matrix whose elements are 1 and 4

4 ]and 4.

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

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

MATLAB D l iMATLAB: DeclaracionesMATLAB Statement Remarks

V=[ 2 3 5

3 3 8]⎥⎦

⎤⎢⎣

⎡=

833

532V

]

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

Z 2

⎥⎤

⎢⎡

=01

V

Z=4\8 Z=2

Y=eye(2)⎥⎦

⎢⎣

=10

V

W = zeros(2 3) ⎤⎡ 000W = zeros(2,3)⎥⎦

⎤⎢⎣

⎡=

000

000V

Page 8: Laboratorio Computacion Numerica Unsch 03

Ej l M t i Má iEjemplo: Matriz Mágica

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

A=magic(4)(A) bti l d l lsum(A) se obtienen las sumas de las columnas

sum(A') se obtienen las sumas de las filassum(diag(A)) se obtiene la suma de la diagonal principal( g( )) g p psum(diag(rot90(A))) se obtiene la suma de la otra diagonal

fliplr(A) ==> sum(diag(fliplr(A)))

La Función “magic”La Función magic

B = magic(4)B magic(4)B =

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

The Colon (:) Operator

1:10 ==> [1 2 3 4 5 6 7 8 9 10]

0 10 50 [0 10 20 30 40 50]0:10:50 ==> [0 10 20 30 40 50]

0:pi/4:pi ==> [0 0.7854 1.5708 2.3562 3.1416]

Page 9: Laboratorio Computacion Numerica Unsch 03

VECTORES Y MATRICESVECTORES Y MATRICESVECTORES Y MATRICESVECTORES Y MATRICES

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

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

» A^2+3*AA

1 3 5ans =

6 9 24 8 7

42 79 6186 142 6892 164 106

» det(A)92 164 106

MAT i LABans =

5

MATrix LABoratory-- datos son matrices

l d l ál b li l5 -- reglas del álgebra lineal

La matriz en MatLabLa matriz en MatLabColumnas

(n)

4 10 1 6 21

(n)1 2 3 4 5

1 6 11 16 21A = A (2,4)

8 1.2 9 4 251

2

2 7 12 17 22

( , )

7.2 5 7 1 11

0 0 5 4 5 56

Filas (m) 33 8 13 18 23

4 9 14 19 24

A (17)

0 0.5 4 5 56

23 83 13 0 10

4

5

4 9 14 19 24

5 10 15 20 25

Matriz rectangular:E l t i d 1X1

5

Escalar: matriz de 1X1Vector: matriz de mX1

matriz de 1XnMatriz: matriz de mXn

Page 10: Laboratorio Computacion Numerica Unsch 03

Creación de matrices numéricos

[1 2 3 4]

Creación de matrices numéricos

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

1 2corchetes rectangulares

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

NOTA:

tangulares

b =-2.8000 0 + 2.6458i 10.5000

» b(2 5) = 23

NOTA: 1) Separador de fila

punto y coma (;) » b(2,5) = 23b =

-2.8000 0 + 2.6458i 10.5000 0 02) Separador de columna

espacio o coma (,)0 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

Expansión EscalarExpansión escalar:

Expansión Escalar[1 2 3 4] 5Expansión escalar:

Suma de matriz + escalar» w=[1 2;3 4] + 5w =

6 78 9

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

8 9» x = 1:5x =operador punto y coma (:)

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

Función de uso práctico par

y = 2.0000 1.5000 1.0000 0.5000 0

» z = rand(2,4)a crear matrices. z =

0.9501 0.6068 0.8913 0.45650.2311 0.4860 0.7621 0.01850.2311 0.4860 0.7621 0.0185

Page 11: Laboratorio Computacion Numerica Unsch 03

Extracción desde un matriz

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

1 6 11 16 21

1

2

A = 4 10 1 6 2

8 1.2 9 4 25

1 6 11 16 21

2 7 12 17 22

2

3 7.2 5 7 1 113 8 13 18 23

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

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

4 0 0.5 4 5 564 9 14 19 24A(3,1)A(3)

( ) ( )

5 23 83 13 0 105 10 15 20 25

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

Concatenación de matrices[1 2 3 4]

Concatenación de matrices» a=[1 2;3 4]a =

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

corchetes rectangulares []

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

” de una matriz ngulares []

cat_a =1 2 2 43 4 6 83 6 4 8

Separador de filapunto y coma (;)

3 6 4 89 12 12 165 10 6 12

15 20 18 244*aSeparador de columna

espacio o coma (,)15 20 18 24

La matriz resultante siempre es rectangular

Page 12: Laboratorio Computacion Numerica Unsch 03

Borrar filas o columnas[1 5 9 4 3 2 5 0 1 10 3i 1]» 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 00001.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i

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

Multiplicación de matricesMultiplicación de matrices[1 2 3 4 5 6 7 8]» a = [1 2 3 4; 5 6 7 8];

» b = ones(4,3);» c = a*b

[2x4]

[4x3]

c =10 10 1026 26 26

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

(2d fil ) b(3 l )26 26 26 a(2da fila).b(3ra columna)

Multiplicación punto

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

Multiplicación punto

» b = [1:4; 1:4];» c = a.*bc =

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

Page 13: Laboratorio Computacion Numerica Unsch 03

Funciones para manipular matricesFunciones para manipular matrices

zeros: Crea un matriz de ceros

ones: Crea un matriz de unosones: Crea un matriz de unos

eye: Matriz identidad

rand: Números aleatorios uniformemente distribuidosrand: Números aleatorios uniformemente distribuidos

diag: Matriz diagonal y diagonal de una matriz

i Di i d l t isize: Dimensiones de la matriz

fliplr: Invierte la matriz de derecha a izquierda

flipud: Invierte la matriz de arriba hacia abajo

repmat: Replica la matriz

Funciones para manipular matrices

transpose('): Transpuesta de la matriz

Funciones para manipular matrices

p ( ) p

rot90: Girar la matriz 90°

tril: La parte triangular baja de una matriztril: La parte triangular baja de una matriz

triu: La parte triangular superior de una matriz

cross: Producto cruz de vectorescross: Producto cruz de vectores

dot: Producto punto de vectores

det: Determinante de la matrizdet: Determinante de la matriz

inv: Inversa de la matriz

i C l l l i l i teig: 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:b (1 2 3) (4 5 6) ((2 6 3 5) (1 6 3 4) (1 5 2 4)) ( 3 6 3)a × b = (1,2,3) × (4,5,6) = ((2 × 6 - 3 × 5),-(1 × 6 - 3 × 4),+(1 × 5 - 2 × 4)) = (-3,6,-3).

Page 14: Laboratorio Computacion Numerica Unsch 03

• 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 cuadrada como un vector columna•[V,D]=eig(A) devuelve vectores propios en la matriz V y los valores propios como 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 cuadradaAA•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•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

Podemos generar algunas matrices especiales usando funciones ya incorporadas:

zeros(n) : Matriz d ones(n m): Matriz dzeros(n) : Matriz de ceros (nxn).

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

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

ans = 0 0 0

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

ans = 1 1 1 1 10 0 00 0 0

1 1 1 1 11 1 1 1 1

rand(n,m): Matriz (nxm) de números aleatorios distribuidos unifor

randn(n,m): Matriz (nxm) de números aleatorios distribuidos normalme

eye(n,m): Matriz identidad (

memente entre 0 y1 nte con media cero y varianza unidad.

nxm)

>> rand(3,1)ans = 0.2190

0.0470

>> randn(2)ans= 1.1650 0.0751

0.6268 0.3516

>>eye(3)ans= 1 0 0

0 1 0 0.6789

0 6 68 0 35 60 00 0 1

Page 15: Laboratorio Computacion Numerica Unsch 03

Notación matricialNotación matricialNotación matricialNotació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 elemento• MATLAB trabaja fundamentalmente con un solo tipo de elementobase: matrices

• Los escalares son matrices de un elemento por un elemento y losLos 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

>> [1 8]>> v = [1:8]v =

1 2 3 4 5 6 7 8

Notación matricialNotació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 [v(3:5) u(2:4)]w =

3 4 5 4 5 6

Page 16: Laboratorio Computacion Numerica Unsch 03

Notación matricialNotación matricial

4 Producto escalar de vectores de tres elementos4. Producto escalar de vectores de tres elementos>> u(1:3)*v(1:3)'ans =

26

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

3 6 94 8 125 10 155 10 15

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

688

10

Notación matricialNotació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]XX =

1 0 12 1 23 2 3

Y =3 2 13 2 14 1 15 2 1

>> X.*Yans =

3 0 18 1 2

15 4 3

Page 17: Laboratorio Computacion Numerica Unsch 03

Operaciones con matricesOperaciones con matrices

• Transpuesta de una matriz

• Matriz inversa>> inv(X)matriz

>> XX =

>> inv(X)ans =

0.0736 -0.0640 0 007815 5 1

2 6 23 2 7

0.0078-0.0155 0.1977 -0.0543

>> X'ans =

15 2 3

-0.0271 -0.0291 0.1550

15 2 35 6 21 2 7

• Determinante>> det(X)ans =

516

Vectores y MatricesVectores y MatricesMét d N é i

Vectores y MatricesVectores y MatricesMétodos Numéricos

Aplicados a la Ingeniería

Page 18: Laboratorio Computacion Numerica Unsch 03

VECTORES Y MATRICESVECTORES Y MATRICES

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

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

» A^2+3*AA

1 3 5ans =

6 9 24 8 7

42 79 6186 142 6892 164 106

» det(A)92 164 106

MAT i LABans =

5

MATrix LABoratory-- datos son matrices

l d l ál b li l5 -- reglas del álgebra lineal

VECTORES Y MATRICESVECTORES Y MATRICESVECTORES Y MATRICESVECTORES Y MATRICES

• Vectors (arrays) are defined as

• >> v = [1, 2, 4, 5]>> 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 19: Laboratorio Computacion Numerica Unsch 03

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

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

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

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

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

Array Editor: Ventana donde podemos observar las matrices

Matrix MultiplicationMatrix Multiplication

• Example

⎤⎡

⎥⎦

⎤⎢⎣

⎡ −=⎥

⎥⎤

⎢⎢⎡

−⎥⎦

⎤⎢⎣

⎡ −011

123101

132

120

101

3 row ⎥⎦

⎢⎣⎥

⎥⎦⎢

⎢⎣−

⎥⎦

⎢⎣ 011

211120

3 columns

ws

• Note: use semi-colons to separate rows

>> [1,0,-1;0,2,1] * [2,3,1;1,0,-1;-1,1,2]ans =Note: use semi colons to separate rowsa s

3 2 -11 1 0

Page 20: Laboratorio Computacion Numerica Unsch 03

V t t iVectores 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 vectoresGeneració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)

V t t iVectores y matrices

Definición de matrices:

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

L t i d fi fil l l t d i fil t d• 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 21: Laboratorio Computacion Numerica Unsch 03

Vectores y matricesVectores y matrices

Definición de 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)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

Vectores y matricesVectores y matrices

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

[ ] constructor

separador de columnas, separador de columnas

; separador de filas• En lugar de coma ( ) puede utilizarse un espacio y en lugar de• 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:o simplemente:

A=[1 2 3

4 5 6]4 5 6]

Page 22: Laboratorio Computacion Numerica Unsch 03

Operaciones con ectores matricesOperaciones con vectores y matrices

Operaciones de vectores y matrices con escalares:

v: vector k: escalar:v: vector, k: escalar:

• v+k adición o suma• v+k adición o suma

• v-k sustracción o resta

• v*k multiplicación

• v/k divide cada elemento de v por kv/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 vp p

Operaciones con ectores matricesOperaciones 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-izquierda

• / división-derecha

• ./ y .\ división elemento a elemento./ y .\ división elemento a elemento

• matriz traspuesta: B=A’ (en complejos calcula la traspuesta conjugada, sólo la traspuesta es B=A.’)

Page 23: Laboratorio Computacion Numerica Unsch 03

F nciones para ectores matricesFunciones 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

d t( ) d t l d t• 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)• 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).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))( ( )) y ( ( ))

F nciones para ectores matricesFunciones para vectores y matrices

Funciones de Matlab para vectores y matrices

[ ] i (M) t d l ú d fil l• [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 elementos( ) (de A)

• flipud(M) reordena la matriz, haciendo la simétrica respecto de eje horizontal.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 V[V, landa] eig(M) da una matriz diagonal landa con los autovalores y otra Vcuyas columnas son los autovectores de M

Page 24: Laboratorio Computacion Numerica Unsch 03

Operaciones con Matrices y vectores:Ope ac o es co at ces y ecto es• Pruebe los siguientes comandos

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

B = A'

C A * BC = A * B

D = B * A

v = [ 1 , 2 , 3 , 4 ]

w = [ 5 ; 6 ; 7 ; 8 ][ ]

x = v * w

Y = w * vY = w v

M=[1:10 ; 11:20 ; 21:30]

V [1 0 3 10]V=[1:0.3:10]

Operaciones con Matrices y vectores:• Pruebe los siguientes comandosPruebe los siguientes comandos

A = [ 1 , 2 , 3 ; 4 , 5 , 6 ] Define la matriz A de 2x3

B = A' Define B como la matriz transpuesta de AB = A Define B como la matriz transpuesta de A

C = A * B C es la multiplicación de matrices A * B

D = B * A D es la multiplicación de matrices B * A

v = [ 1 , 2 , 3 , 4 ] Define el vector fila v

w = [ 5 ; 6 ; 7 ; 8 ] Define el vector columna w

x = v * w x es la multiplicación de matrices v * wx v w x es la multiplicación de matrices v w

Y = w * v Y es la multiplicación de matrices w * v

M=[1:10 ; 11:20 ; 21:30] matriz de 3x10 elementos 1 al 30M=[1:10 ; 11:20 ; 21:30] matriz de 3x10, elementos 1 al 30

V=[1:0.3:10] vector con elementos del 1 al 10 cuyast f d 0 3 l t icomponentes se forman sumando 0.3 a la anterior

Page 25: Laboratorio Computacion Numerica Unsch 03

Funciones que devuelven matricesFunciones que devuelven matrices

• eye(4) Forma la matriz unidad de 4x4(3 5) Forma una matriz de ceros de 3x5• zeros(3,5) Forma una matriz de ceros de 3x5

• ones(3) Forma una matriz de unos de 3x3Id d t 2 4• ones(2,4) Idem de tamano 2x4

• rand(3) forma una matriz de 3x3 de números aleatorios t 0 1 di t ib ió ifentre 0 y 1, con distribución uniforme

• rand(4,2) Idem de tamano 4x2P b l i i t d• Probar los siguientes comandos:

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

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

operadores (* / ^) Para ello se los precede por unp ( ) p ppunto(.)

» [1 2 3 4]^2[ ]

??? Error using ==> ^

Matrix must be square.

» [1 2 3 4].^2

ans =

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 26: Laboratorio Computacion Numerica Unsch 03

Operadores relacionalesOperadores relacionales< menor que> mayor que> mayor que<= menor o igual que> mayor o igual que>= mayor o igual que== igual que

di ti t~= distinto que

Si 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

• 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==B>> A B

ans =

0 00 0

1 0

>> A~=B

ans =

1 1

0 10 1

Page 27: Laboratorio Computacion Numerica Unsch 03

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

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

>> A==2

ans =

0 1 1

1 0 0

0 0 10 0 1

• Creando matrices con submatrices• Se puede crear una nueva matriz componiendo como submatricesSe 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); B ones(2,3);

>> C=[A,B;[1:5]]

C =C =

0 0 1 1 1

0 0 1 1 1

1 2 3 4 5

Page 28: Laboratorio Computacion Numerica Unsch 03

N i l Li Al bNumerical 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)>> eig(A)

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

Vectores• Edición» u = [1 2 3]

• Normas » norm(v,2)u [ 3]

» v = [1,2,3]» w = [1;2;3]

o ( , )» norm(v,1)» norm(v,inf)

» w = [123] 13]

• Progresivos» 0:0.1:10

0 2

0.4

0.6

0.8

» linspace(0,1,11)-0 4

-0.2

0

0.2

1 0 6 0 2 0 2 0 6 1-1

-0.8

-0.6

-0.4

-1 -0.6 -0.2 0.2 0.6 1

Page 29: Laboratorio Computacion Numerica Unsch 03

Operaciones con vectores

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

P d t

• Transpuesta: u'• Voltear

fli l ( )• Productos

• por escalar: 2*u• escalar: dot(u v)

» fliplr(x)» flipud(x')

Funciones• escalar: dot(u,v)• elemental: u.*v• matricial: u*w w*u

• Funciones

» x = -1:0.01:1» y = tanh(x)matricial: u*w, w*u

• de comps.: prod(u)» y = tanh(x)» plot(x,y)

Matrices

• Edición • BloquesEdición

» A = [1,2;3,4]Bloques

» M = [A,B;B,A]» B = [-1 -2

-3 -4]• Submatrices

» M41 = M(1:3 2:4)• Elemento: A(2,1)

Fil (2 )

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

• Fila: A(2,:)• Columna: A(:,1)

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

Page 30: Laboratorio Computacion Numerica Unsch 03

Operaciones con matrices

S t • Determinante• Suma y resta: + -• Producto: * .*

• Determinante

» det(A)

• Potencia: ^ .^ • Inversa

• Cociente izq.: / ./• Cociente der : \ \

» inv(A)

• Rango• Cociente der.: \ .\• Transpuesta: ' .'

• Rango

» rank(A)

Matrices usuales

• Identidad de orden n: eye(n)Identidad de orden n: eye(n)• Nula de tamaño m×n: zeros(m,n)• Matriz de unos: ones(m,n)

M t i l t i• Matriz aleatoria: rand(m,n)• Matriz de Hilbert: hilb(n) • Matriz de van der Monde: vander(x)

Page 31: Laboratorio Computacion Numerica Unsch 03

Ejercicio

a(1,1) = 7.9787

7.978711 229

a(:,1) =11.22911.01513 38513.38511.183

EjercicioEjercicio

7.9787 (1 2 d 1) 11.015

11.183

a(1:2:end,1) =

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

Page 32: Laboratorio Computacion Numerica Unsch 03

Ej i iEjercicio

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

Elementos básicos en MATLAB

• Redondeo:

Elementos básicos en MATLAB

• Redondeo:

• a= 4.566

• b=fix(a) valor entero = 4• b=fix(a) valor entero = 4

• c=roundn(a,-2), redondeo al decimal mas próximo 4.57

d il( ) d d l t ó i 5• d=ceil(a) redondeo al entero próximo = 5

• Estadística Simple• Estadística Simple

• a = 100 *rand(15,1);

• [oa pa]=sort(a); Orden ascendente• [oa,pa]=sort(a); Orden ascendente

• [od,pd]=sort(a,’descend’); Orden descendente

hi t( 5) Hi t• p=hist(a,5); Histograma

• y = prctile(a,[25 50 75]); Percetiles

Page 33: Laboratorio Computacion Numerica Unsch 03

EjercicioEjercicio

Orden OrdenPosición Orden Posición Orden a

Orden ascedente

Orden descedenteascedente descedente

EjercicioEjercicio

3 . 5

4

bar(p)Opciones para generar gráficas

2

2 . 5

3

0

0 . 5

1

1 . 5

1 2 3 4 50

4hist(p,5)

Percentiles2 .5

3

3 .5

25% 50% 75%1

1 .5

2

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

0

0 .5

Page 34: Laboratorio Computacion Numerica Unsch 03

EjerciciosEjercicios

• Resolviendo sistemas de ecuaciones lineales1.2 x1 + 2.2 x2 = 21.41 2

7.1 x1 + 0.5 x2 = 39

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

Ejercicios:

• 1) Obtener el producto interior a . ba=[1,2,3,4]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 elg p pmismo valor (utilizar funciones diag y rot90)

Page 35: Laboratorio Computacion Numerica Unsch 03

Solución de los EjerciciosSolució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 cuadro2) Verificar si efectivamente magic(4) es un cuadromágico comprobando que las filas, columnas ydiagonales principales sumen exactamente el misdiagonales principales sumen exactamente el mismo valor (utilizar funciones diag y rot90)Rta: hay que realizar las siguientes operaciones:y q g pA=magic(4)sum(A) se obtienen las sumas de las columnas

(A') bti l d l filsum(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 diagonalsum(diag(rot90(A))) se obtiene la suma de la otra diagonal

Ejerciciosj

• 1) Escribir una expresión que compute la cantidad de números 3 t i Aque posee una matriz A.

2) E ib ió d l l l á i d d• 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.entos de una matriz son iguales.

Page 36: Laboratorio Computacion Numerica Unsch 03

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

fil d t i A (f ió )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.

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

• 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 columnasy 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 =ans

2• Probar qué devuelve A(:)• Probar qué devuelve A(:)

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

Page 37: Laboratorio Computacion Numerica Unsch 03

• Operador (:) como índiceOperador (:) como índice

>> A=magic(4)

A =A =

16 2 3 13

5 11 10 8

9 7 6 12

4 14 15 1

• Operador (:) como índice

>> A=magic(4)

A =

16 2 3 13

5 11 10 85 11 10 8

9 7 6 12

4 14 15 14 14 15 1

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

ans =ans

11 10 8

7 6 127 6 12

Page 38: Laboratorio Computacion Numerica Unsch 03

O d ( ) í di• Operador (:) como índice

>> A=magic(4)

A =

16 2 3 13

5 11 10 8

9 7 6 129 7 6 12

4 14 15 1

>> A(2,:)

ans =

5 11 10 8

• Operador (:) como índice

>> A=magic(4)

A =

16 2 3 13

5 11 10 85 11 10 8

9 7 6 12

4 14 15 14 14 15 1

>> A(:,1)

ans =a s

16

55

9

4

Page 39: Laboratorio Computacion Numerica Unsch 03

• Operador (:) como índice

>> A=magic(4)

A =

16 2 3 13

5 11 10 85 11 10 8

9 7 6 12

4 14 15 14 14 15 1

>> A(4:-1:1,:)

4 14 15 15

9 7 6 12

5 11 10 85 11 10 8

16 2 3 13

• Operador (:) como índice

>> A=magic(4)

A =

16 2 3 13

5 11 10 85 11 10 8

9 7 6 12

4 14 15 14 14 15 1

>> A([1,3],:)

16 2 3 136 3 3

9 7 6 12

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

Page 40: Laboratorio Computacion Numerica Unsch 03

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 colum) p y g gna de A

Solución de los Ejercicios1) C t i t i A d 2 6 f d l d t• 1) Construir una matriz A de 2x6 formada por la segunda y tercera fila de magic(6)

A=magic(6);g ( );

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 Afila de A

A=[A;sum(A)]

• 4) Obtener el vector suma por fila y agregarlo como última colum) p y g gna de A

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

Page 41: Laboratorio Computacion Numerica Unsch 03

Aplicaciones a la IngenieríaAplicaciones a la IngenieríaAplicaciones a la IngenieríaAplicaciones a la IngenieríaMét d N é iMétodos Numéricos

Aplicados a la Ingeniería

Una red eléctrica Una red eléctrica

RRRR R1R1R1R1a b

RIIII R3R2R2R2

V I4I3I2I1

cdR4R4R4R4

Page 42: Laboratorio Computacion Numerica Unsch 03

Una red de callesUna red de calles

300 200 100

500 x1 x2

600A B C

x3 x4 x5

400 x6 x7D E F

350 600 400 450

M t i d i id iM t i d i id iMatriz de incidenciaMatriz de incidencia

C a l l e

1 2 3 4 5 6 7

C A 1 0 1 0 0 0 0C 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 0c 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 43: Laboratorio Computacion Numerica Unsch 03

Ecuación del Calor en unEcuación del Calor en un rectángulo

N

C EW

SS

–1

4 –1–1

• TC = (TW + TN + TS + TE)/4Molécula –1Molécula

E ió d l C lEcuación del Calor

M d l t áti M t i i d• Modelo matemático • Matriz asociada

)/2T(TT

)/2T(TT

)/2T(TT

312

201

+=

+=⎟⎞

⎜⎜⎛

1-21-

1-2

)/2T(TT 423 += ⎟⎜⎜⎜⎜

21-

121

)/2T(TT 1n+1-nn += ⎟⎟

⎠⎜⎜⎜⎜

⎝ 21-

1-

⎠⎝ 21-

T T T T TT0 T1 T2 . . . Tn Tn+1

Page 44: Laboratorio Computacion Numerica Unsch 03

G ió d l t iGeneración de la matriz con MATLABcon MATLAB

function A = calor2D(n,m)p = n*m;p n m;v = ones(1,p-1);for k=n:n:p-1, v(k) = 0; end

(1 )w = ones(1,p-n);A = 4*eye(p)...y (p)

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

Gráfica del problema de transferencia de pcalor

60

80

40

60

20

64

50

12

34

56

1

2

3

4

11

Page 45: Laboratorio Computacion Numerica Unsch 03

Aplicaciones a la Ingeniería

La utilización de los Métodos Iterativos para la

Aplicaciones a la Ingeniería

l La utilización de los Métodos Iterativos para laresolución de sistemas de ecuaciones lineales

j bl d b d bles 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ónde coeficientes es dispersa y de gran dimensión.

ll EjemplosEjemplos::FF EcuacionesEcuaciones enen derivadasderivadas parcialesparcialespp

FF ProblemasProblemas dede valoresvalores enen lala fronterafrontera

FF AproximaciónAproximación dede funcionesfunciones ((SplinesSplines))FF AproximaciónAproximación dede funcionesfunciones ((SplinesSplines))

Ecuación de transmisión del calorEcuación de transmisión del calor

La ecuación de transmisión del calor en una barraLa ecuación de transmisión del calor en una barraen régimen estacionario, viene dada por lai i t ió dif i lsiguiente ecuación diferencial.

Lud

≤≤002

l di i d f t (0) 0 (L) 1

Lxdx

≤≤= 002

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

hu =u(0)=0 1=u(L)=uhu0=u(0)=0 1=u(L)=u6

L 6x0=0 x6=Lx1 x2 x3 x4 x5

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

L=6

¿u1? ¿u2? ¿u3? ¿u4? ¿u5?

Page 46: Laboratorio Computacion Numerica Unsch 03

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

Aproximando mediante diferencias finitasAproximando mediante diferencias finitas

211

2

2 2h

uuud

ud iii −+ +−≈

y sustituyendo en la ecuación original, queda:

22 hdx

25,....,10

22

11 ==+− −+ i

h

uuu iii

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

⎜⎞ ⎛ ⎞ ⎛

⎜⎞1

⎜⎜⎜⎜

=

⎜⎜⎜⎜

1 2 1 0 0

0 1 2 1 0

0

0

2

3

u

u

⎜⎜⎜

⎠ ⎝⎜⎜

⎠ ⎝

⎜⎜⎜

0 0 1 2 1

0 0 0 1 2

0

1

3

4u

u−⎝ ⎠ ⎝ ⎠ −⎝ ⎠0 0 0 1 2 15u

Ecuación de Poisson

Como resultado de la discretización de la

Ecuación de Poisson

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

⎞⎛Γ=Ω=⎟

⎞⎜⎜⎝

⎛ ∂+

∂− en0yen),(2

2

2

2

uyxfy

ux

u

A S E L l

⎠⎝ yx

Aparece un S.E.L. con la

matriz de coeficientes

dispersa de la forma:

Page 47: Laboratorio Computacion Numerica Unsch 03

Introducción. Ecuación de Poisson

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

Ω Γ

y

ny=3

nx=5 x

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

x

CASOS DE APLICACIÓNCASOS DE APLICACIÓNCASOS DE APLICACIÓNCASOS DE APLICACIÓN

ProblemaProblema AcadémicoAcadémicoSISTEMAS DE ECUACIONES LINEALES

ProblemaProblema AcadémicoAcadémico

El diagrama adjunto representa la discretización del problema del calor en una placa. Se trata de determinar la temperatura en los nodos interiores de la malla Tj, j = 1, 2, …, 6, conocidas las temperaturas en el borde y suponiendo que hay j, j , , , , p y p q yequilibrio 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

l di i h d ifi l d l d i ilas 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 contemperatura en un nodo sea inferior a 0.01. ¿Cuál es la máxima desviación con respecto a la solución obtenida en el primer apartado?

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

Page 48: Laboratorio Computacion Numerica Unsch 03

CASOS DE APLICACIÓNCASOS DE APLICACIÓNCASOS DE APLICACIÓNCASOS DE APLICACIÓN

50º 100100

50º 50º T5 T3 T1

50º 50º T6 T2 T4

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

1

0º 50º 0º

( )jijijijiij TTTTT ,11,1,,14

1++−− +++=

Las condiciones de equilibrio de cada nodo, proporcionan el sistema ya preparado para aplicar un método iterativo

( )1 ( )321 100504

1TTT +++=

( )412 0504

1TTT +++= ( )412 4

( )5413 504

1TTTT +++=

( )6324 504

1TTTT +++=

( )501001

TTT ( )501004 635 +++= TTT

( )5004

1546 +++= TTT ( )

4 546

Escribimos el sistema en forma normal y lo resolvemos con MATLAB

1504 321 =−− TTT

504

504

5431

421

321

=−−+−=−+−

TTTT

TTT

1504

504

653

6432

=−+−=−+−−

TTT

TTTT

504 654 =+−− TTT

Page 49: Laboratorio Computacion Numerica Unsch 03

ComentarioComentario

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

ComentarioComentario

i

en una placa es:

k

Q=⎟

⎞⎜⎜⎝

⎛∂

Ω∂+

∂Ω∂

2

2

2

2

ktyx ⎠

⎜⎝ ∂∂ 22

Ω : Variable dependiente, que representa la temperatura del elemento t : Grosor de la placap 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 paraLa ecuación que rige esta situación es con Q 0, donde estas aproximaciones se usan para las 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 SUPERFICIEHACIA DENTRO HACIA FUERA DESDE LA SUPERFICIE Nota.- Los matemáticos cuentan con una denominación y un símbolo especial para indicar la suma de las segundas derivadas parciales Se denomina LAPLACIANO y se representa porla suma de las segundas derivadas parciales. Se denomina LAPLACIANO y se representa por rl símbolo Ω∇ 2 . Por tanto, suele representarse como:

Q=Ω∇ 2

ktΩ∇

Page 50: Laboratorio Computacion Numerica Unsch 03

ComentarioComentarioComentarioComentario

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

( )2

22

2 4

1

141

11

h

OBARLO

h

Ω−Ω+Ω+Ω+Ω=Ω∇≡Ω

⎪⎭

⎪⎬

⎪⎩

⎪⎨

⎧−=Ω∇

1 ⎪⎭

⎪⎩

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

( )11 Ω+Ω+Ω+Ω⎪

⎫⎪⎧ ( )

41

1014

1 1,1,,1,1,

+−+− Ω+Ω+Ω+Ω=Ω≡

⎪⎭

⎪⎬

⎪⎩

⎪⎨=Ω jijijiji

jiO

1 2 53 4 6 7

15

8

16

9

1 2

19

12

5

10

18

11

3 4

20

13

21

14

6 7

15 16 1917 18 20 21

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á p g , qa una temperatura de 0 º C. La cara superior del tubo se mantiene a 100º C. Se supone que la temperatura 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 de la temperatura en una sección transversal del tubo se aproxima mediante una malla con nudos cada p pcm. 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.T

OTO ) p q g

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ºUES

TU

ES

T

100

80º

60º

80º

60º

PR

OP

PR

OP

40º

20º

40º

20º

200ºA `

PA

`P

200º

0º 0ºBLEM

BLEM

0 0

PR

OB

PR

OB

PP

Page 51: Laboratorio Computacion Numerica Unsch 03

100º

80º

60º

80º

60º

40º

20º

40º

20º

200º

0º 0º

TEMPERATURA CONOCIDA (40 nodos)

TEMPERATURA DESCONOCIDA (72 nodos)

Algoritmo de Distribución de TemperaturasAlgoritmo de Distribución de Temperaturas

+1 2 +1 ( 1) +1

g pg p

1

2

m+1

m+2

2m+1

2m+2

(n-1)m+1

(n-1)m+2

ym

3

… …

m+3

2m+3 …

(n-1)m+3y3

Malla de arriba-abajo y de izquierda-derecha

m

… …

2m

3m

nm

y2

q

m

0x1 x2 x3 xn

y1

x1 x2 x3 xn

22 ⎞⎜⎛ uu ∂∂

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

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

=⎟⎠

⎞⎜⎜⎝

⎛+

y

u

x

u

∂∂

∂∂

ld l)(tt tl"" plano del y)(x, puntoun en ra temperatula esu""

Page 52: Laboratorio Computacion Numerica Unsch 03

Algoritmo de Distribución de TemperaturasAlgoritmo de Distribución de Temperaturas

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

g pg p

02

2

2

2

=⎟⎟⎠

⎞⎜⎜⎝

⎛∂∂

+∂∂

y

u

x

u

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,,1

2

2 2,

h

uuuyxu jijijiji +− +−≈

∂22 hx∂

( )

2

1,,1,

2

2 2,

h

uuu

y

yxu jijijiji +− +−≈

hy∂

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:

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

Algoritmo de Distribución de TemperaturasAlgoritmo de Distribución de Temperaturas

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

g pg p

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.

La función de MATLAB siguiente construye por diagonales la matriz correspondiente a una malla mxn

function A = calor2D(m,n)p = m*n;v = ones(1, p-1); % Diagonales 1 y -1v(m:m:p-m) = 0;

(1 ) % Di lw = ones(1,p-m); % Diagonales m y -mA = -4*eye(p)+ diag(v,1)+ diag(v,-1) + diag(w,m)+ diag(w,-m);

Page 53: Laboratorio Computacion Numerica Unsch 03
Page 54: Laboratorio Computacion Numerica Unsch 03
Page 55: Laboratorio Computacion Numerica Unsch 03
Page 56: Laboratorio Computacion Numerica Unsch 03
Page 57: Laboratorio Computacion Numerica Unsch 03

Métodos Directos de Ecuaciones LMétodos Directos de Ecuaciones L

Mét d N é iinealesineales

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

Fases de la eliminaciónFases de la eliminaciónFases de la eliminaciónFases de la eliminación

• Sistema inicial Ax = b

T i l i ió• TriangularizaciónUx = c

• Sustitución regresivax = A–1b

Page 58: Laboratorio Computacion Numerica Unsch 03

Factorización LUFactorización LU

Sistema original Sistemas triang laresSistema original

Ax = b

Sistemas triangulares

Ly = bAx b

LUx = b

Ly b

Ux = y

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

ma matriz.

I l ét d d J d G Inversa por el método de Jordan-Gauss

CASOS DE APLICACIÓNCASOS DE APLICACIÓN

ProblemaProblema NºNº 0101Aplicar el método de eliminación de Gauss con pivotación

CASOS DE APLICACIÓNCASOS DE APLICACIÓN

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

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

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

E t i i l t l i l t lExpresar matricialmente las operaciones elementalesrealizadas en el proceso, de tal manera que se obtenga laf t i ió LU d l t i d l i tfactorización LU de la matriz del sistema

Page 59: Laboratorio Computacion Numerica Unsch 03
Page 60: Laboratorio Computacion Numerica Unsch 03
Page 61: Laboratorio Computacion Numerica Unsch 03

Matrices DispersasMatrices Dispersas

Mét d N é i

Matrices DispersasMatrices Dispersas

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

Matrices DispersasMatrices Dispersas

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

• Operaciones usuales• + - * \ lu

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

Page 62: Laboratorio Computacion Numerica Unsch 03

Ejemplo práctico

Las matrices dispersas aparecen eLas matrices dispersas aparecen en múltiples aplicaciones.

Como resultado de la discretización d

⎛ ⎞∂ ∂2 2u u

e la ecuación de Poisson,

− +⎛

⎝⎜

⎠= =

∂∂

∂∂2 2 0

u

x

u

yf u en y en Ω Γ

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

Matrices dispersas en MATLAB

Características:Almacenamiento interno mediante formato coordenado

El acceso es idéntico al de las matrices densas. MATLABencapsula el formato coordenado.El formato coordenado utilizado por MATLAB es dinámico.

Generalmente, sobre las matrices dispersas se puedenutilizar las mismas funciones que sobre las densas, pero

p

Se pueden utilizar los operadores elementales (+ - * /)

u a as s as u c o es que sob e as de sas, pe oexisten excepciones.

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

Page 63: Laboratorio Computacion Numerica Unsch 03

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

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

>> AS AS (1,1) 1.3(5,1) 6.8

se muestra cada elemento,con los correspondientes índices( , )

(2,2) 2.4(3,3) 1.4

de fila y columna.

Los elementos se hallan( , )(4,4) 7.1(1,5) 8.2

Los elementos se hallanordenados por columnas.

(5,5) 9,5

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

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

>> A=[1.3, 0, 0, 0, 8.2; Pese a que ambas matrices0, 2.4, 0, 0, 0;0, 0, 1.4, 0, 0;0 0 0 7 1 0;

qson iguales, puesto queposeen los mismos elementos,

0, 0, 0, 7.1, 0;6.8, 0, 0, 0, 9.5];

AS (A)

MATLAB únicamente almacenalos elementos no nulos de AS.

>> AS=sparse(A);

La función issparse permitesaber si una función se halla

>> issparse(A)ans= saber si una función se halla

almacenada o no en formatodisperso

ans=0

>> issparse(AS)disperso.

( )ans= 1

Page 64: Laboratorio Computacion Numerica Unsch 03

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

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

>> AS(1,1)1.31.3

>> AS(3,4)0

La posición (3,4) corresponde a unelemento nulo de la matriz AS.

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

elemento nulo de la matriz AS.Se añade un elemento no nulo.Se modifica un elemento no nulo.( )

>> AS tecleando AS podemos ver las modificaciones efectuadas.

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

>> AS AS

AS =

Se ha modificado.(1,1) 2.4000(5 1) 6 8000(5,1) 6.8000(2,2) 2.4000(3 3) 1 4000

Se ha añadido.(3,3) 1.4000(3,4) 5.5000(4 4) 7 1000(4,4) 7.1000(1,5) 8.2000(5,5) 9.5000(5,5) 9.5000

Page 65: Laboratorio Computacion Numerica Unsch 03

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

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

>> spy(AS,’g’)0

py( g )

>> nnz(AS)

1

2ans=

8

2

3

4La función nzz permite

129

5

6

psaber el número de elementos no nulos de AS.

0 2 4 66

nz = 8

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

Si se opera una matriz dispersa con una densa, generalmente, el resultado es denso.

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

0

p ( ( ))ans =

0Si 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.

>> i (AS+AS)>> issparse(AS+AS)ans =

11

Page 66: Laboratorio Computacion Numerica Unsch 03

Manejo básico de matrices jdispersas 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’ t es ecto es de o ato coo de ado i

ans=1 5 2 3 3 4 1 5j’

Los elementos se hallanordenados por columnas>> j’

ans=1 1 2 3 4 4 5 5

ordenados por columnas,y en la columna por filas.

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 52.4 6.8 2.4 1.4 5.5 7.1 8.2 9.5>> nnz(AS)ans= Lógicamente, el número de elementos no ans

8 nulos coincide con la longitud de los vectores.

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

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

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

L f i t il t i it l t iá l i f iLas funciones tril y triu permiten separar el triángulo inferior y superior de una matriz dispersa.

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

Page 67: Laboratorio Computacion Numerica Unsch 03

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

La función full realiza la operación inversa de la función

>> A f ll(AS)

psparse. convierte una matriz dispersa en densa.

>> A=full(AS)

A =

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

A =

2 4 0 0 0 8 2

estructura es dispersa.

2.4 0 0 0 8.20 2.4 0 0 00 0 1 4 5 5 00 0 1.4 5.5 00 0 0 7.1 0

6 8 0 0 0 9 56.8 0 0 0 9.5

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

La función speye permite La función sparse permite, p y pgenerar una matriz dispersaidentidad.

también, generar una matrizdispersa vacía

» speye(5)» sparse(5,5)

ans =ans =

(1,1) 1(2,2) 1 All zero sparse: 5-by-5

(3,3) 1(4,4) 1

.

(5,5) 1

Page 68: Laboratorio Computacion Numerica Unsch 03

Generación aleatoria deGeneració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); >> AS=sprandn(50,50,0.5);p ( , , );>> spy(AS);>> nnz(AS)

p ( , , );>> spy(AS);>> nnz(AS)

ans=244

ans=974

>> 50*50*0.1ans=

>> 50*50*0.5ans=

250 1250

Generación aleatoria deGeneración aleatoria de matrices dispersas (II)matrices dispersas (II)

0densidad=0.1

0densidad=0.5

5

10

5

10

15

20

15

20

25

30

25

30

35

40

35

40

136

40

45

50

40

45

500 10 20 30 40 50

50

nz = 2440 10 20 30 40 50

50

nz = 970

Page 69: Laboratorio Computacion Numerica Unsch 03

Generación aleatoria deGeneración aleatoria de matrices dispersas (III)

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

>> AS d (50 50 0 1 0 1) >> AS d (50 50 0 1 0 01)>> AS=sprandn(50,50,0.1,0.1);>> spy(AS);>> nnz(AS)

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

ans=242

>> nnz(AS)ans=

245242>> condest(AS)

ans=

245>> condest(AS)

ans=ans=53.945

ans=1502.6

Generación aleatoria de matrices dispersas (IV)

S=sprandsym(n,density,rc) es una matriz dispersa p y ( y ) psimétrica.

S=sprandsym(n,density,rc,kind) es una matriz dispersaS 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)

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

ans=258

>>nnz(AS)ans=

266>>condest(AS)

ans=14 7642

>>condest(AS)ans=

665 063514.7642 665.0635

Page 70: Laboratorio Computacion Numerica Unsch 03

Generación aleatoria deGeneración aleatoria de matrices dispersas (y V)matrices dispersas (y V)

0 00

10

0

1010

20

10

2020

30

20

3030

40

30

40

139

40

50

40

500 10 20 30 40 50

50

nz = 2420 10 20 30 40 50

50

nz = 266

Resumen de funciones (I)Resumen de funciones (I)

1.- Matrices Dispersas Elementales.p•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.

i di i d l•sparse - Crea una matriz dispersa a partir de la información de ciertos índices.

f ll C i t t i f t di•full - Convierte una matriz en formato disperso a formato denso.

fi d E t l í di d l t d l•find - Encuentra los índices de las entradas no nulas.

Page 71: Laboratorio Computacion Numerica Unsch 03

Resumen de funciones (II)Resumen de funciones (II)

Funciones que trabajan con los elementos no nulos de la matrizFunciones que trabajan con los elementos no nulos de la matriz

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

elementos no nulos.spones - Reemplaza las entradas no nulas por unos.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.p p

Resumen de funciones (III)Resumen de funciones (III)

Visualización de matrices dispersasspy - Visualiza la estructura de la matriz dispersapy pgplot - 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.

Page 72: Laboratorio Computacion Numerica Unsch 03

Operaciones Matriciales Operaciones Matriciales ppBásicasBásicas

E t i t ú i t t di á ét d it ti lEn 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 laEn ausencia de precondicionado la única operación que involucra a lamatriz de coeficientes es el producto matriz por vector.

- Esta operación no modifica la estructura de la matriz dispersa.p p

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

Operaciones Matriciales Básicas.Operaciones Matriciales Básicas.Producto matriz vector densoProducto matriz vector denso

Orientado a filas (Ax=b)0. b=(0,0,0,…,0)t1. para i=1:nfil

( )

b2. para j=1:ncol3. bi=bi+aij*xj

4 fi

x1

x2

bi=ai1x1+

ai2x2+4. fin5 .fin

ai1 ai2 ai3 ai4 ai5i x3

x4

x

= bi

j

ai2x2

ai3x3+

ai4x4+

0. b=(0,0,0,…,0)t

Orientado a columnas (Ax=b)x5

jai5x5

( , , , , )1. para j=1:ncol2. para i=1:nfil

a1j

a2j

a3ji

b1

b2

b=xj

b1=a1jxi

b2=a2jxi

b =a xp3. bi=bi+aij*xj

4. fin

a3ja4j

a5j

i b3

b4

b5

=xj b3=a3jxi

b4=a4jxi

b5=a5jxi

5. fin j5 j i

Page 73: Laboratorio Computacion Numerica Unsch 03

Operaciones Matriciales Básicas.Operaciones Matriciales Básicas.Operaciones Matriciales Básicas.Operaciones Matriciales Básicas.Producto matriz vector dispersoProducto matriz vector disperso

0. b=(0 0 0 0)t 0 b=(0 0 0 0)t

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

0. b (0,0,0,…,0)t1. para i=1:nfil2. para j=I(i): I(i+1)-1

0. b=(0,0,0,…,0)t1. para i=1:nfil2 para j=1:ncol2. para j I(i): I(i 1) 1

3. bi=bi+S(j)*xJ(j)

4. Fin

2. para j 1:ncol3. bi=bi+aij*xj

4. fin5. .fin

4. fin5 .fin

nnz0 0 0 a 0 b0 0 0 a 0 b0 c 0 0 d 00 c 0 0 d 00 0 0 0 00 0 0 0 0

S: [ a b c d e f g h i j ]S: [ a b c d e f g h i j ]nnz

1 2 3 4 5 6 7 8 9 10x1

x2

b1

b2

b0 0 0 e 0 00 0 0 e 0 00 f 0 0 0 00 f 0 0 0 00 0 g 0 h 00 0 g 0 h 0

J: [ 4 6 2 5 4 2 3 5 1 6 ]J: [ 4 6 2 5 4 2 3 5 1 6 ]x3

x4

x5

b3

b4

b5

=0 0 g 0 00 0 g 0 0i 0 0 0 0 ji 0 0 0 0 j I: [ 1 3 5 6 7 9 11]I: [ 1 3 5 6 7 9 11]

1 2 3 4 5 6 7 nfil+1

5

x6

5

b6

Operaciones Matriciales Básicas.Operaciones Matriciales Básicas.Prod cto matri ector dispersoProd cto matri ector dispersoProducto matriz vector dispersoProducto matriz vector disperso

nnz0 0 0 a 0 b0 0 0 a 0 b0 c 0 0 d 00 c 0 0 d 00 0 0 e 0 00 0 0 e 0 0

S: [ a b c d e f g h i j ]S: [ a b c d e f g h i j ]nnz

1 2 3 4 5 6 7 8 9 10x1

x2

x

b1

b2

b0 0 0 e 0 00 0 0 e 0 00 f 0 0 0 00 f 0 0 0 00 0 g 0 h 00 0 g 0 h 0

J: [ 4 6 2 5 4 2 3 5 1 6 ]J: [ 4 6 2 5 4 2 3 5 1 6 ]

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

x3

x4

x5

b3

b4

b5

=

1. for i=1:nfil 2. for j=I(i):I(i+1)-1 3. bi=bi+S(j)*xJ(j)

i 0 0 0 0 ji 0 0 0 0 j I: [ 1 3 5 6 7 9 11]I: [ 1 3 5 6 7 9 11]1 2 3 4 5 6 7

nfil+1

x6 b6

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=2j 1 j 2i=2 j=3:4 ⇒ b2= c x2 + d x5

I(2):I(3)-1 S(3) xJ(3) S(4) xJ(4)

146

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

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

j=9 j=10

Page 74: Laboratorio Computacion Numerica Unsch 03

Ejercicio Ejercicio

Producto matriz vector disperso orientado a columnas (Ax=b)mnas (Ax=b)

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

0 0 0 a 0 b0 0 0 a 0 b x1 b1

b b6 = b6 + i x1j=1:0 c 0 0 d 00 c 0 0 d 00 0 0 e 0 00 0 0 e 0 00 f 0 0 0 00 f 0 0 0 0

x2

x3

x4

b2

b3

b4=

b6 b6 + i x1j 1:

b = b + c xj=2:0 f 0 0 0 00 f 0 0 0 00 0 g 0 h 00 0 g 0 h 0i 0 0 0 0 ji 0 0 0 0 j

x4

x5

x6

b4

b5

b6

b2 = b2 + c x2

b4 = b4 + f x2

j 2:

Ejercicio 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) 1for k=J(j): J(j+1)-1

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

endendend

Page 75: Laboratorio Computacion Numerica Unsch 03

V t t iVectores y matrices___________

Ejemplo1: Tomemos la siguiente matriz⎞

⎜⎛ − 000412

⎜⎜⎜⎜⎜

−00000

80037

⎟⎠

⎜⎜⎜

⎝ −−

47200

0111300

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

Vectores y matrices___________________________

m=[12 4 7 3 8 13 11 2 7 4];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];c=[1,2,1,2,5,3,4,3,4,5];a=sparse(f,c,m,5,5)full(a)full(a)

m1=[12,7,-4,3,-13,2,11,7,-8,-4];f1 [1 2 1 2 4 5 4 5 2 5]f1=[1,2,1,2,4,5,4,5,2,5];c1=[1,1,2,2,3,3,4,4,5,5];b (f1 1 1 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 76: Laboratorio Computacion Numerica Unsch 03

BIBLIOGRAFÍA RECOMENDADA

ACADEMIA DE ANÁLISIS NUMÉRICO Elementos de Métodos Numéricos para Ingeniería

PIKE - GUERRA Optimización en Ingeniería Elementos de Métodos Numéricos para Ingeniería

Editorial McGRAW HILL. Universidad de Guadalajara. México. 2002 AKAI, TERRENCE J. Métodos Numéricos Aplicados a la Ingeniería (Applied Numerical Methods for Engineers) John Wiley & Sons INC Editorial Limusa Grupo Noriega Editores México 2000

Editorial ALFAOMEGA– 1ra. Edición. México. 1989 PRESS W.H. – TEUKOLSKY S.A. – VETTERLING W.T. – FLANNERY B.P. Numerical Recipes in C: The Art of Scientific Computing Published by the Press Syndicate of the University of Cambridge. Second Edition. EE.UU. 1992John Wiley & Sons, INC. – Editorial Limusa, Grupo Noriega Editores. México. 2000

BATHE, K.J. y WILSON, E.L. Numerical Methods in Finite Element Analysis Edit. Prentice Hall Inc., Englewood Cliffs, N.J.

Published by the Press Syndicate of the University of Cambridge. Second Edition. EE.UU. 1992 RAFFO LECCA, Eduardo Algoritmos: Análisis y Diseño Editorial Raffo-Lecca. Lima. Perú. 1999

CHAINSKAIA, LUDMILA – DOIG, ELIZABETH Elementos de Análisis Numérico – Algoritmos y Aplicaciones Fondo Editorial Pontificia Universidad Católica del Perú. Lima.1999

RAFFO LECCA, Eduardo Métodos Numéricos Para Ciencias e Ingeniería con Pascal Editorial Raffo-Lecca. Lima. Perú. 1997

CHAPRA, STEVEN C. – CANALE RAYMOND P. Métodos Numéricos Para Ingenieros Editorial McGRAW HILL. México. 1998 GERALD C.F. – WHEATLEY P.O.

SCALETTI FARINA, HUGO Métodos Numéricos Avanzados Universidad Nacional de Ingeniería. FIC-CISMID. Lima. Perú. 2001 SEDGEWICK ROBERT

Análisis Numérico con Aplicaciones Editorial PRENTICE HALL – Pearson Educación. 6ta. Edición. México. 2000 MEYER CARL D. Matrix Analysis and Applied Linear Algebra

Algorithms ADDISON-WESLEY Publishing Company – Brown University. EE.UU. 1983 TIRUPATHI R. CHANDRUPATLA, ASHOK D. BELEGUNDU Introducción al Elemento Finito en IngenieríaMatrix Analysis and Applied Linear Algebra

Published by SIAM. EE.UU. 2000 NAKAMURA, SHOICHIRO Análisis Numérico y Visualización Gráfica con MATLAB Editorial PEARSON EDUCATION México 2001

Introducción al Elemento Finito en Ingeniería Editorial Prentice Hall – Addison Wesley Longman. México. 1999 ZIENKIEWICZ, O.C. – TAYLOR R.L. El Método de los Elementos Finitos – Volumen 1: Formulación Básica y Problemas Lineales Edit i l M GRAW HILL CIMNE B l 4t Edi ió E ñ 1993Editorial PEARSON EDUCATION – México. 2001

NIEVES, ANTONIO – DOMINGUEZ, FEDERICO Métodos Numéricos Aplicados a la Ingeniería Editorial CECSA. México. 1995

Editorial McGRAW HILL – CIMNE Barcelona. 4ta. Edición. España. 1993 ZIENKIEWICZ, O.C. – TAYLOR R.L. El Método de los Elementos Finitos – Volumen 2: Mecánica de Sólidos y Fluidos. Dinámica y No Linealidad

Muchas GraciasMuchas Gracias