Professional Documents
Culture Documents
METODOS NUMERICOS
Ingeniera Civil
Sesin 03
MTODOS NUMRICOS
Stateflow
Coder
RTW Compiler
A=2.3 A= 2.3000
Variable names: z Starts with a letter z Up to 31 characters ( some use 19 or 21) z May contain letters letters, digits and underscore underscore_ z Case sensitive (A is not the same as a)
this creates a variable A A and set its value to 2.3 The square braces Th b [ ] are used to define matrices. We can use them for scalars too too.
X=[2,3 X=[2 3 7 ] X= 2 3 7
X=[2;3 ; 7 ]
X= 2 3 7
semicolon are used to end a row. You can also Y l use ENTER t to end a row
Remarks
2 3 5 V = 3 3 8
C=[1 4 7 Z 2 Z=2 10]
1 0 V = 0 1
0 0 0 V = 0 0 0
A=magic(4) sum(A) (A) se obtienen bti l las sumas d de l las columnas l sum(A') se obtienen las sumas de las filas sum(diag(A)) ( g( )) se obtiene la suma de la diagonal g p principal p sum(diag(rot90(A))) se obtiene la suma de la otra diagonal
fliplr(A)
==>
sum(diag(fliplr(A)))
VECTORES Y MATRICES
Las matrices son el tipo fundamental de dato en Matlab.
A=[1 3 5; 6 9 2; 4 8 7] A^2+3*A A = ans = 1 6 4 det(A) ans = 5 3 9 8 5 2 7 42 86 92 79 142 164 61 68 106
MATrix MAT i LABoratory LAB -- datos son matrices -- reglas l del d l lgebra l b lineal li l
La matriz en MatLab
1 Columnas (n) 2 3 4
1
5
16
A=
1
2
4 8
10 1.2 5
1 9 7 4 13
11
6 4 1 5 0
2 25
21
(2,4) , ) A(
12
17
22
Filas (m) 3 4 5
7.2 3 0 23
4
13
18
11 23 56 24 10
25
A (17)
0.5 0 59 83
10
14
19
15
20
Matriz rectangular: E Escalar: l matriz ti d de 1X1 Vector: matriz de mX1 matriz de 1Xn Matriz: matriz de mXn
NOTA:
1) Separador de fila punto y coma (;)
b=[-2.8, sqrt(-7), (3+5+6)*3/4] b = -2.8000 0 + 2.6458i 10.5000 b(2,5) b(2 5) = 23 0 + 2.6458i 0 10.5000 0 0 0 0 23.0000
1. Cada expresin de MatLab puede ser ingresada como un elemento de una matriz (internamente es otra matriz) 2. En MatLab, los matrices siempre son rectangulares
Expansin Escalar
Expansin escalar: Suma de matriz + escalar
w=[1 [1 2 2;3 3 4] + 5 w = 6 7 8 9 x = 1:5 x = 1 2 y = 2:-0.5:0 y = 2.0000 1.5000 z = rand(2,4) z = 0.9501 0.2311 0.6068 0.4860 0.8913 0.7621 0.4565 0.0185 3 4 5
1.0000
0.5000
4 8
10
11
6 4 1 5 0
16
21
1.2 7 5
8
9 12 7 13 4 14
17
25 22 11 23 56 24 10 25
7.2 3 0 23
4
18
0.5 9
19
83 10 1315
20
Concatenacin de matrices
Use [] para combinar los matrices como elementos de una matriz
a=[1 [1 2 2;3 3 4] a = 1 3 2 4 4*a; 5*a, 6*a] 4 8 8 16 12 24
Separador de fila punto y coma (;) Separador de columna espacio o coma (,)
4*a
Multiplicacin de matrices
a = [1 2 3 4 4; 5 6 7 8] 8]; b = ones(4,3); c = a*b c = 10 26 10 26 10 26 [2x4]*[4x3] [2x4] [4x3] [2x3]
Multiplicacin punto
a = [1 2 3 4; 5 6 7 8]; b = [1 [1:4; 4 1 1:4]; 4] c = a.*b c = 1 5 4 12 9 21 16 32 c(2,4) = a(2,4)*b(2,4)
size devuelve el nmero de filas y de columnas de una matriz length devuelve la longitud de un vector o la mxima dimensin de una matriz (A) ) calcula la inversa de la matriz A inv( A es la transpuesta de la matriz A d=eig(A) devuelve los valores propios asociados con la matriz A cuadrada com o un vector columna [V,D]=eig(A) devuelve vectores propios en la matriz V y los valores propios com o 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, norma2, norma- poly(A) encuentra el polinomio caracterstico 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 direccin 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 e ceros (nxn). >>Z=zeros(3); %crea una matriz d e ceros de orden 3 ans = 0 0 0 000 000 ones(n,m) ones(n m): Matriz d e unos (nxm) >>X=ones(3,5); %crea una matriz de unos de orden 3x5 ans = 1 1 1 1 1 11111 11111
randn(n,m): Matriz (nxm) de nmer os aleatorios distribuidos normalme nte con media cero y varianza unida d. >> randn(2) ans= 1.1650 0.0751 0.6268 0 6 68 0 0.3516 35 6
Notacin matricial
La mayor potencialidad de MATLAB es su capacidad para manejar matrices y vectores mediante un sistema de indexacin flexible, que permite realizar numerosas operaciones con comandos sencillos que no requieren procedimientos iterativos MATLAB trabaja fundamentalmente con un solo tipo de elemento base: matrices Los escalares son matrices de un elemento por un elemento y los vectores son matrices de una fila o de una columna Ejemplos: 1. Generar un vector cuyos elementos son los nmero del 1 al 8
>> v = [1:8] [1 8] v = 1 2
Notacin matricial
1. Generar un vector cuyos elementos son los nmero del 1 al 8
>> v = [1:8] v = 1 2
Notacin matricial
4 Producto escalar de vectores de tres elementos 4.
>> u(1:3)*v(1:3)' ans = 26
Notacin matricial
7. Multiplicacin 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 1 2 1 2 3 2 3 Y = 3 2 1 4 1 1 5 2 1 >> X.*Y ans = 3 0 1 8 1 2 15 4 3
>> inv(X) ans = 0.0736 0 0078 0.0078 -0.0155 0.0543 -0.0271 0.1550
2 6 2
3 2 7
Determinante
Vectores y Matrices
Mtodos Mt d N Numricos i Aplicados a la Ingeniera
VECTORES Y MATRICES
Las matrices son el tipo fundamental de dato en Matlab.
A=[1 3 5; 6 9 2; 4 8 7] A^2+3*A A = ans = 1 6 4 det(A) ans = 5 3 9 8 5 2 7 42 86 92 79 142 164 61 68 106
MATrix MAT i LABoratory LAB -- datos son matrices -- reglas l del d l lgebra l b lineal li l
VECTORES Y MATRICES
Vectors (arrays) are defined as >> v = [1, 2, 4, 5] >> w = [1; 2; 4; 5]
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
Matrix Multiplication
Example
2 3 1 1 0 1 3 2 1 0 2 1 1 0 1 = 1 1 0 1 1 2 3 columns
>> [1,0,-1;0,2,1] * [2,3,1;1,0,-1;-1,1,2] ans s = use semi a Note: semi-colons colons to separate rows 3 2 -1 1 1 0
3 row ws
V t Vectores y matrices ti
Definicin 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]
Dimensin de un vector w: length(w) Generacin de vectores
Especificando el incremento h de sus componentes v=a:h:b Especificando su dimensin n: linspace(a,b,n) (por defecto n=100) Componentes logartmicamente espaciadas logspace(a,b,n) (n puntos logartmicamente espaciados entre 10a y 10b. Por defecto n=50)
V t Vectores y matrices ti
Definicin de matrices:
No hace falta establecer de antemano su tamao (se puede definir un tamao y cambiarlo posteriormente). Las matrices L ti se definen d fi por filas fil ; los l elementos l t d de una misma i fil fila est tn separad d os por blancos o comas. Las filas estn separadas por punto y coma (;). M=[3 4 5; 6 7 8; 1 -1 0] Matriz vaca: M=[ ]; Informacin de un elemento: M(1,3), de una fila M(2,:), de una columna M(:,3). Cambiar el valor de algn elemento: M(2,3)=1; Eliminar una columna: M(:,1)=[ ], una fila: M(2,:)=[ ];
Vectores y matrices
Definicin de matrices:
Generacin de matrices:
Generacin de una matriz de ceros, zeros(n,m) Generacin de una matriz de unos, ones(n,m) Inicializacin de una matriz identidad eye(n,m) eye(n m) Generacin de una matriz de elementos aleatorios rand(n,m)
Aadir matrices: [X Y] columnas, [X; Y] filas
Vectores y matrices
Operaciones con Matrices y vectores:
Para definir matrices se utiliza:
[] , ;
En lugar de coma ( (,) ) puede utilizarse un espacio espacio, y en lugar de punto y coma (;) puede utilizarse un retorno de carro Ejemplo:
matriz inversa: B=inv(M), rango: rank(M) diag(M): Obtencin de la diagonal de una matriz. sum(diag(M)) calcula la traza de la matriz A. diag(M,k) busca la k-sima diagonal. ( ) norma de una matriz ( (mximo de valores absolutos de los elementos norm(M) de A) flipud(M) reordena la matriz, haciendo la simtrica respecto de eje horizontal. fliplr(M) ) reordena la matriz, haciendo la simtrica respecto de un eje vertical [V, landa] landa]=eig(M) eig(M) da una matriz diagonal landa con los autovalores y otra V cuyas columnas son los autovectores de M
A=[1,2,3;4,5,6] B = A' C=A*B D=B*A v=[1,2,3,4] w=[5;6;7;8] x=v*w Y=w*v M=[1:10 ; 11:20 ; 21:30] V [1 0 3 10] V=[1:0.3:10]
A = [ 1 , 2 , 3 ; 4 , 5 , 6 ] Define la matriz A de 2x3 B=A A' Define B como la matriz transpuesta de A C = A * B C es la multiplicacin de matrices A * B D = B * A D es la multiplicacin 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 multiplicacin de matrices v * w Y = w * v Y es la multiplicacin de matrices w * v M=[1:10 ; 11:20 ; 21:30] matriz de 3x10, 3x10 elementos 1 al 30 V=[1:0.3:10] vector con elementos del 1 al 10 cuyas componentes t se forman f sumando d 0.3 0 3 a la l anterior t i
la matriz unidad de 4x4 zeros(3,5) (3 5) Forma una matriz de ceros de 3x5 ones(3) Forma una matriz de unos de 3x3 ones(2,4) Idem Id d tamano de t 2 4 2x4 rand(3) forma una matriz de 3x3 de nmeros aleatorios entre t 0y1 1, con di distribucin t ib i uniforme if rand(4,2) Idem de tamano 4x2 A= magic(3) size(A) length(A) sum(A) v=[1:10] size(v) length(v) sum(v)
Operadores .*
./
.^
En MATLAB se puede aplicar elemento a elemento los operadores p (* / ^) ( ) Para ello se los p precede p por un punto(.)
[ [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
Operadores relacionales
< menor que > mayor que <= menor o igual que > >= mayor o igual que == igual que ~= di ti t que distinto Si una comparacin se cumple el resultado es 1 (true), mientras que si no se cumple es 0 (false).
Operadores lgicos
& | ~
Cuando los operadores relacionales se aplican a matrices del mismo tamao, la comparacin se realiza elemento a elemento
>> A=[1,2;3,4]; [ ] >> B=[4,3;3,2]; >> A==B A B ans = 0 0 1 0 >> A~=B ans = 1 1 0 1
Si se compara una matriz con un escalar, La comparacin se realiza entre el escalar y cada elemento de la matriz matriz.
1 1 5
Many standard functions predefined >> det(A) >> rank(A) >> eig(A)
The number of input/output arguments can often be varied >> [V [V,D]=eig(A) D] i (A)
Vectores
Edicin
u = v = w = w = 2 3] [ [1 2 3] [1,2,3] [1;2;3] [1
Normas
1 0.8 0.6 0.4 02 0.2 0 -0.2 -0 4 -0.4 -0.6 -0.8 -1 -1 1 -0.6 06 -0.2 02 02 0.2 06 0.6 1
Progresivos
0:0.1:10 linspace(0,1,11)
P d t Productos
por escalar: escalar: elemental: matricial: de comps.: 2*u dot(u v) dot(u,v) u.*v u*w w*u u*w, prod(u)
Funciones
Matrices
Edicin Bloques
A = [1,2;3,4] B = [-1 -2 -3 -4] M = [A,B;B,A]
Submatrices
Columna: A(:,1)
Determinante
det(A)
Inversa
inv(A)
Rango
rank(A)
Matrices usuales
Identidad de orden n: Nula de tamao mn: Matriz de unos: M t i aleatoria: Matriz l t i Matriz de Hilbert: Matriz de van der Monde:
eye(n) zeros(m,n) ones(m,n) rand(m,n) hilb(n) vander(x)
Ejercicio
a(1,1) = 7.9787
Ejercicio
7.9787 a(1:2:end,1) (1 2 d 1) = 11.015 11.183
Ej Ejercicio i i
Ejercicio
Orden ascedente
Orden descedente
Ejercicio
Opciones para generar grficas
4 3 .5 3 2 .5 2 1 .5 1 0 .5 0
bar(p)
4 3 .5 3 2 .5 2 1 .5 1 0 .5 0
hist(p,5) Percentiles
25%
0 10 20 30 40 50 60 70 80 90
50%
75%
Ejercicios
Resolviendo sistemas de ecuaciones lineales
1.2 x1 + 2.2 x2 = 21.4 7.1 x1 + 0.5 x2 = 39
2) Verificar si efectivamente magic(4) es un cuadro mgico comprobando que las filas, columnas y g principales p p sumen exactamente el diagonales mismo valor (utilizar funciones diag y rot90)
el producto interior a . b
2) Verificar si efectivamente magic(4) es un cuadro mgico comprobando que las filas, columnas y diagonales principales sumen exactamente el mis mo valor (utilizar funciones diag y rot90)
Rta: hay yq que realizar las siguientes g operaciones: p A=magic(4) sum(A) se obtienen las sumas de las columnas sum(A') (A') se obtienen bti l sumas de las d las l filas fil sum(diag(A)) se obtiene la suma de la diagonal principal sum(diag(rot90(A))) se obtiene la suma de la otra diagonal
Ejercicios j
1) Escribir una expresin que compute la cantidad de nmeros 3 que posee una matriz ti A A. 2) E Escriba ib una expresin i que d devuelva l el l valor l mximo i d de cada d fila de una matriz A (funcin max). 3)Escriba una expresin que devuelva true (1) si todos los elem entos de una matriz son iguales.
sum(sum(A==3))
2) Escriba una expresin que devuelva el valor mximo de cada fil d fila de una matriz t i A (f (funcin i max). )
max(A')'
3)Escriba una expresin que devuelva true (1) si todos los elem entos de una matriz A son iguales.
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 cualquier elemento con un slo subndice. Por ejemplo >> A=[1,2,3;4,5,6;7,8,9]; >> A(4) ans = 2
Probar qu devuelve A(:)
>> A=magic(4) A= 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1
10
13 3 12
Obsrvese que tambin puede utilizarse un vector como ndice. En este caso sirve para poder sele ccionar filas disjuntas
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 p por fila y agregarlo g g como ltima colum na de A
2) Eliminar la columna 3
A=A(:,[1,2,4:6])
Aplicaciones a la Ingeniera
Mtodos Mt d N Numricos i Aplicados a la Ingeniera
R1
R1
R1
R1
I1 R2
I2 R2
I3 R2
I4
R3
R4
R4
R4
R4
M t i de Matriz d incidencia i id i
Cal l e 1 C r u c e A B C D E F 1 -1 0 0 0 0 2 0 1 -1 0 0 0 3 1 0 0 -1 1 0 0 4 0 -1 0 0 1 0 5 0 0 1 0 0 -1 6 0 0 0 -1 1 1 0 7 0 0 0 0 -1 1
S 1 1 TC = (TW + TN + TS + TE)/4 4 1
Molcula
Matriz M t i asociada i d
2 -1 -1 2 -1 -1 2 % % % -1 -1 2
T0
T1
T2
. . .
Tn
Tn+1
80
60
40
20
0 5 4 3 2 1 1 3 2 4 5 6
Aplicaciones a la Ingeniera
l
La utilizacin de los Mtodos Iterativos para la resolucin de sistemas de ecuaciones lineales es aconsejable j bl cuando d se abordan b d problemas bl de gran dimensin y dispersos. Existen multitud de aplicaciones donde la matriz de coeficientes es dispersa y de gran dimensin . Ejemplos: Ejemplos :
F F F
Ecuaciones en derivadas parciales p Problemas de valores en la frontera Aproximacin de funciones (Splines Splines) )
d 2u ui +1 2ui + ui 1 2 d dx h2
y sustituyendo en la ecuacin original, queda:
ui +1 2ui + ui 1 = 0 i = 1,....,5 2 h
A partir de estas 5 ecuaciones se obtiene un sistema tridiagonal
2 1 0 0 0
1 2 1 0 0
0 1 2 1 0
0 0 1 2 1
0 u2 0 u3 = 1 u4 2 u5
0 u1
0 0 0 0 1
Ecuacin de Poisson
Como resultado de la discretizacin de la ecuacin de Poisson.
2u 2u x 2 + y 2 = f ( x, y ) en y u = 0 en
Aparece un S A S.E.L. E L con l la matriz de coeficientes dispersa de la forma:
ny=3 x
nx=5
CASOS DE APLICACIN
100
50
100
50
T1
T3
T5
50
50
T2
T4
T6
50
50
NOTA.- suponga que la temperatura en cada nodo Tij es la media de las temperaturas de los 4 nodos vecinos:
Tij =
Las condiciones de equilibrio de cada nodo, proporcionan el sistema ya preparado para aplicar un mtodo iterativo
4T1 T1 T1
T2
T3
= 150 = 50 50 50 50 = = =
+ 4T2 T2 + 4T3 T3 T3
= 150
Comentario
Sea
: Variable dependiente, que representa la temperatura del elemento p t : Grosor de la placa k : Conductividad Q : Razn de prdida de calor por unidad de volumen La ecuacin que rige esta situacin es con Q = 0, donde estas aproximaciones se usan para las derivadas de segundo orden en un nodo central donde la temperatura es O .
RAZN DE FLUJO HACIA DENTRO RAZN DE FLUJO HACIA FUERA RAZN DE PRDIDA DE CALOR DESDE LA SUPERFICIE
Nota.- Los matemticos cuentan con una denominacin y un smbolo especial para indicar la suma de las segundas derivadas parciales. parciales Se denomina LAPLACIANO y se representa por rl smbolo
Comentario
Para el problema sealado, hay un dispositivo que puede usarse para recordar esta aproximacin al Laplaciano, que se denomina operador grfico:
1 (L + R + A + B 4O ) 1 2 = 2 1 4 1O 2 = h h2 1
Mediante el Mtodo de LIEBMANN, (con condiciones en la frontera de DIRICHLET):
1 ( i1, j + i +1, j + i, j 1 + i, j +1 ) 1 O = 1 0 1 i , j = 4 4 1
1 8
2 9 16
3 10
4 11
5 12
6 13
7 14
15
17
18
19
20
21
SISTEMAS DE ECUACIONES LINEALES Por un tubo de secciones interior y exterior cuadradas, circula un lquido a temperatura de 200 C. El tubo est p parcialmente sumergido g en hielo, , de manera q 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 la temperatura en los laterales vara linealmente entre los 0 C de la parte superior de hielo y los 100 C de la cara superior. La seccin interior mide 4 cm. De lado y la exterior 10 cm. La distribucin de la temperatura p en una seccin transversal del tubo se aproxima p mediante una malla con nudos cada cm. a) Resolver el sistema por un mtodo directo b) Estudiar la convergencia de los mtodos indirectos de Jacobi y Gauss-Seidel. c) ) Hallar la solucin p por otro mtodo numrico q que acelere la convergencia. g d) Mostrar la estructura del sistema resultante. e) Presentar una solucin con una herramienta computacional (se recomienda MATLAB) f) Dibujar las isotermas en la seccin del tubo estudiada. 100 80 60 40 20 200 80 60 40 20
0 0
0 0
100
80 60 40 20 200
80 60 40 20
ym
( 1) +1 (n-1)m+1
m+2
2m+2
(n-1)m+2
y3 y2 y1 0
m+3
2m+3
(n-1)m+3
2m
3m
x1
x2
x3
nm xn
x 2 + y 2 = 0 donde u(x, y) es la funcin a obtener " u" " es la l temperatu t t ra en un punto t (x, ( y) ) del d l plano l
2u 2u x 2 + y 2 =0
2u (xi , y j )
2u (xi , y j ) y 2
ui 1, j 2ui , j + ui +1, j h2
ui , j 1 2ui , j + ui , j +1 h2
Substituyendo en la ecuacin de Laplace estas ecuaciones para cada nodo del interior de la malla se obtiene un sistema de ecuaciones lineales con nm malla, nm incgnitas:
u i 1, j + u i , j 1 4u i , j + u i , j +1 + u i +1, j = 0
La funcin de MATLAB siguiente construye por diagonales la m atriz correspondiente a una malla mxn
function A = calor2D(m,n) p = m*n; v = ones(1, p-1); % Diagonales 1 y -1 v(m:m:p-m) = 0; w = ones(1,p-m); (1 ) % Di Diagonales l m y -m A = -4*eye(p)+ diag(v,1)+ diag(v,-1) + diag(w,m)+ diag(w,-m);
Fases de la eliminacin
Ax = b
Ux = c
x = A1b
Factorizacin LU
Sistema original Ax = b LUx = b
[L,U] = lu(a) [L,U,P] = lu(a) Resolucin de mltiples sistemas con la mis ma matriz. I Inversa por el l mtodo t d d de J Jordan-Gauss d G
CASOS DE APLICACIN Problema N 01 Aplicar el mtodo de eliminacin de Gauss con pivotacin parcial para resolver el siguiente sistema lineal, operando directamente en MATLAB con notacin matricial: x + 2y z = -1 1 2x 3y + z = -6 x + 4z = 2 Comprobar la obtencin de la solucin directamente con el operador \ de MATLAB Expresar matricialmente E ti i l t las l operaciones i elementales l t l realizadas en el proceso, de tal manera que se obtenga la f t i factorizacin i LU de d la l matriz t i del d l sistema i t
Matrices Dispersas
Mtodos Mt d N Numricos i Aplicados a la Ingeniera
Matrices Dispersas
Creacin de matrices dispersas
sparse(A) full(a) speye(n)
Operaciones usuales
+ * \ lu
Ejemplo prctico
Las matrices dispersas aparecen e n mltiples aplicaciones. Como resultado de la discretizacin d e la ecuacin de Poisson,
2u 2u 2 + 2 = f en y u = 0 en y x
Aparecen matrices de forma muy si 123 milar a la de la figura.
Pese a q que ambas matrices son iguales, puesto que poseen los mismos elementos, MATLAB nicamente almacena los elementos no nulos de AS. La funcin issparse permite saber si una funcin se halla almacenada o no en formato disperso disperso.
La posicin (3,4) corresponde a un elemento nulo de la matriz AS. Se aade un elemento no nulo. Se modifica un elemento no nulo. tecleando AS podemos ver las modificaciones efectuadas.
Se ha aadido.
6 0
nz = 8
La funcin find permite extraer los tres t es vectores ecto es de del formato o ato coo coordenado. de ado
3 4 1 1.4 4 4 4 5 5.5 5 1 5 5 5 7 7.1 1 8 8.2 2 9 9.5 5
Los elementos se hallan ordenados por columnas, columnas y en la columna por filas.
Las f L funciones i t il y triu tril t i permiten it separar el lt tringulo i l i inferior f i y superior de una matriz dispersa. >> BSL=tril(BS); BSU triu(BS); >> BSU=triu(BS);
20
20
30
30
40
40
139
50 0
10
20 30 nz = 242
40
50
50 0
10
20 30 nz = 266
40
50
0. b=(0,0,0,,0)t 1. para i=1:nfil 2. para j=1:ncol 3. bi=bi+aij*xj 4 4. fi fin 5 .fin 0. b=(0,0,0,,0) ( , , , , )t 1. para j=1:ncol 2. p para i=1:nfil 3. bi=bi+aij*xj 4. fin 5. fin
x1 x2 x3 x4 x5
bi
bi= ai1x1+ ai2x2+ ai3x3+ ai4x4+ ai5x5 b1=a1jxi b2=a2jxi b3=a3jxi b4=a4jxi b5=a5jjxi
xj
b1 b2 = b3 b4 b5
0. b=(0 (0,0,0,,0) 0 0 0)t 1. para i=1:nfil 2. para j=I( I(i): I(i i+1) 1)-1 1 3. bi=bi+S(j)*xJ(j) 4. Fin 5. .fin
0 0 0 0 0 i 0 c 0 f 0 0 0 0 0 0 g 0 a 0 e 0 0 0 0 d 0 0 h 0 b 0 0 0 0 j x1 x2 x3 x4 x5 x6 b1 b2 b3 b4 b5 b6
0. b=(0,0,0,,0) =(0 0 0 0)t 1. para i=1:nfil 2 2. para j=1:ncol 1:ncol 3. bi=bi+aij*xj 4. fin 5 .fin
1 2 3 4 5 6 7 8 9 nnz 10
S: J: I:
[ a b c d e f g h i j ] [ 4 6 2 5 4 2 3 5 1 6 ] [ 1 3 5 6 7 9 11]
1 2 3 4 5 6 7 nfil+1
S: J: I:
[ a b c d e f g h i j ] [ 4 6 2 5 4 2 3 5 1 6 ] [ 1 3 5 6 7 9 11]
1 2 3 4 5 6 7 nfil+1
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 1 j=2 2 i=2 j=3:4 b2= c x2 + d x5 I(2):I(3)-1 S(3) xJ(3) S(4) xJ(4) j=3 j=4 i=6 j=9:10 b6= i x1 + j x6 146 I(6):I(7)-1 S(9) xJ(9) S(10) xJ(10) (9) (10) j=9 j=10
Ejercicio
Producto matriz vector disperso orientado a colu mnas (Ax=b) function [b] =mv_csc(I,J,S,x) =mv csc(I J S x)
0 0 0 0 0 i
0 c 0 f 0 0
0 0 0 0 g 0
a 0 e 0 0 0
0 d 0 0 h 0
b 0 0 0 0 j
x1 x2 x3 x4 x5 x6
b1 b2 b3 b4 b5 b6
j=1: b6 = b6 + i x1 j j=2: b2 = b2 + c x2 j b 4 = b 4 + f x2
Ejercicio
function [y]= mv_csc (I,J,S,x) cols=length(J)-1; fils=max(I); y=zeros(fils,1); for j = 1:cols for k=J(j): J(j+1)-1 J(j+1) 1 i=I(k); y(i) = y(i) + x(j) x(j)*S(k); S(k); end end
V t Vectores y matrices___________ ti
Ejemplo1: Tomemos la siguiente matriz
12 7 0 0 0 4 3 0 0 0 0 0 0 13 2 0 0 0 11 7 0 8 0 0 4
Y trabajemos con ella como una matriz dispersa, para ello definimos el vector de elementos no nulos, nulos el vector definido 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) 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 b=sparse(f1,c1,m1,5,5]; (f1 1 1 5 5] full(b) a=sparse(f,c,m) s=a+b p=a*b [f2,c2,m2]=find(p) e=full(sparse(f2,c2,m2))
BIBLIOGRAFA RECOMENDADA
ACADEMIA DE ANLISIS NUMRICO Elementos de Mtodos Numricos para Ingeniera Editorial McGRAW HILL. Universidad de Guadalajara. Mxico. 2002 AKAI, TERRENCE J. Mtodos Numricos Aplicados a la Ingeniera (Applied Numerical Methods for Engineers) John Wiley & Sons, Sons INC. INC Editorial Limusa, Limusa Grupo Noriega Editores. Editores Mxico. Mxico 2000 BATHE, K.J. y WILSON, E.L. Numerical Methods in Finite Element Analysis Edit. Prentice Hall Inc., Englewood Cliffs, N.J. CHAINSKAIA, LUDMILA DOIG, ELIZABETH Elementos de Anlisis Numrico Algoritmos y Aplicaciones Fondo Editorial Pontificia Universidad Catlica del Per. Lima.1999 CHAPRA, STEVEN C. CANALE RAYMOND P. Mtodos Numricos Para Ingenieros Editorial McGRAW HILL. Mxico. 1998 GERALD C.F. WHEATLEY P.O. Anlisis Numrico con Aplicaciones Editorial PRENTICE HALL Pearson Educacin. 6ta. Edicin. Mxico. 2000 MEYER CARL D. Matrix Analysis and Applied Linear Algebra Published by SIAM. EE.UU. 2000 NAKAMURA, SHOICHIRO Anlisis Numrico y Visualizacin Grfica con MATLAB Editorial PEARSON EDUCATION Mxico. Mxico 2001 NIEVES, ANTONIO DOMINGUEZ, FEDERICO Mtodos Numricos Aplicados a la Ingeniera Editorial CECSA. Mxico. 1995
PIKE - GUERRA Optimizacin en Ingeniera Editorial ALFAOMEGA 1ra. Edicin. Mxico. 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. 1992 RAFFO LECCA, Eduardo Algoritmos: Anlisis y Diseo Editorial Raffo-Lecca. Lima. Per. 1999 RAFFO LECCA, Eduardo Mtodos Numricos Para Ciencias e Ingeniera con Pascal Editorial Raffo-Lecca. Lima. Per. 1997 SCALETTI FARINA, HUGO Mtodos Numricos Avanzados Universidad Nacional de Ingeniera. FIC-CISMID. Lima. Per. 2001 SEDGEWICK ROBERT Algorithms ADDISON-WESLEY Publishing Company Brown University. EE.UU. 1983 TIRUPATHI R. CHANDRUPATLA, ASHOK D. BELEGUNDU Introduccin al Elemento Finito en Ingeniera Editorial Prentice Hall Addison Wesley Longman. Mxico. 1999 ZIENKIEWICZ, O.C. TAYLOR R.L. El Mtodo de los Elementos Finitos Volumen 1: Formulacin Bsica y Problemas Lineales Edit i l McGRAW Editorial M GRAW HILL CIMNE B Barcelona. l 4t 4ta. Edi Edicin. i Espaa. E 1993 ZIENKIEWICZ, O.C. TAYLOR R.L. El Mtodo de los Elementos Finitos Volumen 2: Mecnica de Slidos y Fluidos. Dinmica y No
Linealidad
Muchas Gracias