Você está na página 1de 22

1

a11x1  a12 x2  ....  a1n xn  b1

Sistemas con a21x1  a22 x2  ....  a2 n xn  b2


multicomponentes 

an1 x1  an 2 x2  ....  ann xn  bn

Interacciones entre Estímulos


los componentes Ax = b externos

Respuestas de los
componentes individuales

1. Directo Eliminación gaussiana


Numéricos
2. Iterativo Jacobi / Gauss-Siedel

Algebraico Multiplicación de matrices

2
Dada la matriz de coeficientes A determinar:

1) Si la solución es única:
determinante ≠ 0  existe la inversa
=MDETERM(A) {=MINVERSA(A)}

Norma
infinita
2) Si el sistema está bien condicionado:
número de condición 1 < K ≈< 103
K ( A)  A  A1

n
A  máx  aij
Mide la influencia de los errores por redondeo  1i  n
j 1

Norma infinita de una matriz

3
x+y=2

A= 1,00 1,00 2
10,05x + 10y = 21
10,05 10,00 20

≠0 max(A) = 20
A-1= -200 20
det(A) = -0,05 201 -20 220
221

8
max(A-1) = 221

6
K(A) = 4431
4

2 >>103

-6 -4 -2
0
0 2 4 6
x= 20
-2
y= -18
-4

4
x+y=2 x= 20
y= -18
10,05x + 10y = 21

x+y=2 Ã= 1,00 1,00


det(Ã)= -0,10
10,10x + 10y = 21 10,10 10,00

Un pequeño cambio en un coeficiente provoca un gran cambio en


la solución
Sistema perturbado
0,5% 50%

x= 10
y= -8
56%

Un valor del número de condición mucho mayor que 103 significa que el sistema está
mal condicionado

Los resultados no son


confiables
5
Multiplicación de matrices Ax = b
 a11 a12 ... a1n   x1   b1 
     
 a21 a22 ... a2 n   x2  b 
[ A]   [ x]    [b]   2 
: : ... :  : :
     
a ann  x  b 
 n1 an 2 ...  n  n

[A]-1[A] [x] = [A]-1[b] [x] = [A]-1[b]

[A]-1[A] = I {=MMULT(MINVERSA(A) ; b)}

4,00 1,00 -1,00 1,00 6,00


1,00 4,00 -1,00 -1,00 25,00 DET=146
-1,00 -1,00 5,00 1,00 -11,00
1,00 -1,00 1,00 3,00 15,00

0,34246575 -0,10959 0,0821918 -0,1781 x1 =-4,2603 Matriz inversa


-0,10958904 0,315068 0,0136986 0,13699 x2 =9,1233
0,08219178 0,013699 0,239726 -0,1027 x3 =-3,3425
-0,17808219 0,136986 -0,10274 0,4726 x4 =10,5753

6
En un método iterativo la idea es llegar a la respuesta mediante una
sucesión de aproximaciones. Si el proceso es exitoso cada nuevo término de
la sucesión será una mejor aproximación al resultado

 Recomendado para matrices grandes (>100) y dispersas


 No debe haber ceros en la diagonal
Intercambiar filas
 Estrictamente diagonal dominante
n
 Condición de convergencia suficiente pero no necesaria ai ,i  a
j 1
i, j

 Caso trivial: se hacen todas las variables 0 j i

-1 20 0 100 0 1
-1 -1 50
A= -1 -1 50 A= -1 20 0
A= 100 0 1
100 0 1 -1 -1 50
-1 20 0

7
CÁLCULO DEL ERROR Criterio de paro: ema

x~
x 
 máx xi  ~
xi Distancia entre un vector y
1i  n una aproximación a ese vector

Norma máx xi  ~
xi  ema
infinita 1i  n

=MÁX(ABS(B18-B17);ABS(C18-C17);ABS(D18-D17);ABS(E18-E17))

8
n  i 1 n 
bi   aij x (jk 1) 
bi   aij x (jk )   aij x (jk 1) 

j 1
xi( k )   j 1 j i 1 
j i
xi( k )  aii
aii

   i 1 
n
xi( k )  (1   ) xi( k 1) 
aii 
bi  
  aij x (jk )   aij x (jk 1) 

  j 1 j i 1 

ω = 1  Método Gauss-Seidel

Coeficiente de relajación 0 < ω < 1  Método de sub-relajación (puede converger cuando


ω Gauss-Siedel no lo hace)

1 < ω < 2  Método de sobre-relajación (acelera la convergencia)

SEL.pmd-todos
9
-1 20 0 100 21
-a + 20b = 100
A= -1 -1 50 300 52
-a - b + 50c = 300
100 0 1 700 101
100a + c = 700
max= 101
No hay ceros en la diagonal
0,000 0,000 0,010 0,010
inv(A)= 0,050 0,000 0,000 0,051
0,001 0,020 0,000 0,021
≠0
max= 0,051

det= 1E+05 K(A)= 5,1

<103
No es estrictamente diagonal dominante (EDD)

10
ω= 1,2
a b c Error
0 0 0 0 0,0001
1 -1,20E+02 -2,16E+02 1,52E+04 1,52E+04
2 -5,28E+03 9,20E+05 6,31E+05 9,21E+05
3 2,21E+07 1,12E+07 -2,65E+09 2,65E+09
4 2,64E+08 -1,59E+11 -3,12E+10 1,59E+11
Independientemente
5 -3,83E+12 2,75E+12 4,59E+14 4,59E+14
del valor del
6 6,68E+13 2,75E+16 -8,11E+15 2,75E+16
coeficiente de
7 6,59E+17 -1,28E+18 -7,91E+19 7,91E+19
relajación, el método
8 -3,09E+19 -4,71E+21 3,73E+21 4,71E+21
diverge
9 -1,13E+23 3,60E+23 1,36E+25 1,36E+25
10 8,67E+24 8,03E+26 -1,04E+27 1,06E+27
11 1,93E+28 -8,58E+28 -2,31E+30 2,31E+30
12 -2,06E+30 -1,36E+32 2,48E+32 2,50E+32
13 -3,27E+33 1,88E+34 3,92E+35 3,92E+35
14 4,53E+35 2,30E+37 -5,44E+37 5,48E+37
15 5,52E+38 -3,93E+39 -6,62E+40 6,61E+40
16 -9,45E+40 -3,86E+42 1,13E+43 1,14E+43
17 -9,25E+43 7,93E+44 1,11E+46 1,11E+46
18 1,90E+46 6,43E+47 -2,29E+48 2,30E+48
19 1,54E+49 -1,56E+50 -1,85E+51 1,85E+51
20 -3,74E+51 -1,07E+53 4,50E+53 4,52E+53
21 -2,56E+54 3,01E+55 3,07E+56 3,06E+56
22 7,22E+56 1,75E+58 -8,67E+58 8,70E+58
23 4,21E+59 -5,71E+60 -5,05E+61 5,04E+61
24 -1,37E+62 -2,86E+63 1,65E+64 1,65E+64 11
100a + c = 700 Se intercambian filas: EDD
-a + 20b = 100
-a - b + 50c = 300 100 0 1 700
A= -1 20 0 100
-1 -1 50 300

ω= 1
a b c Error El método converge
rápidamente
0 0 0 0 0,0001
1 7,000 5,350 6,247 7,000
2 6,938 5,347 6,246 0,062
3 6,938 5,347 6,246 0,000

12
El CEO de una empresa de venta de software realizó un viaje a Europa y gastó $30 al día por
hotel en Inglaterra, $20 en Francia y $20 en España. En cuanto a comida gastó $20 en
Inglaterra, $30 en Francia y $20 en España. Por conceptos varios gastó $10 en cada uno de
los países.
A su regreso rinde un gasto total en hotel de $340, en comida $320 y por gastos varios
$140.
Calcular la cantidad de días que estuvo en cada país.
ω= 1,10
UK Francia España x y z Error
Método Iterativo (SOR) 1 0,000 0,000 0,000 0,001
Hotel 30 20 20 340 2 12,467 2,591 -1,164 12,467
3 2 2 34 3 10,173 4,867 -1,028 2,294
Comida 20 30 20 320 2 3 2 32 4 8,634 5,669 -0,230 1,539
1 1 1 14 5 7,615 5,751 0,720 1,019
Varios 10 10 10 140 6 6,959 5,526 1,594 0,873
7 6,549 5,209 2,306 0,713
8 6,300 4,901 2,848 0,542
No EDD 9 6,154 4,642 3,240 0,392
1 0 -2 10 6,072 4,441 3,512 0,273
det =1 inv(A) = 0 1 -2 11 6,027 4,294 3,696 0,184
K(A) =49 -1 -1 5 12 6,005 4,190 3,816 0,120
13 5,995 4,120 3,892 0,076
14 5,992 4,073 3,939 0,047
7 3
15 5,992 4,043 3,968 0,030
7 3 16 5,993 4,025 3,984 0,019
3 7 17 5,994 4,013 3,993 0,011
max(A) = 7 max(inv(A)) = 7 18 5,996 4,007 3,998 0,007
19 5,997 4,003 4,000 0,004
20 5,998 4,001 4,001 0,002
21 5,999 4,000 4,001 0,001
13
No Si
Det ≠ 0

Fin
No Si
K(A) < 103

Fin No Si
Diag ≠ 0

Intercambio

No Si
Diag ≠ 0

Iterativo
Algebraico
No Si
EDD

Puede no
Converge
converger
14
Dinámica de partículas y cuerpos rígidos

La aplicación de las leyes de Newton para partículas simples, genera dos ecuaciones,
pero si alguna de las partículas del sistema afecta a otras, entonces se puede generar un gran
número de ecuaciones simultáneas. m × a =  Fi

Problema

Se tiene un sistema formado por tres bloques apoyados sobre una superficie lisa
inclinada 30 respecto de la horizontal unidos por una soga de peso despreciable. Se desea
conocer el valor de la aceleración que tendrá el sistema.

Bloque Masa Coeficiente de fricción a


(kg) (N)
A 100 0.25 R

B 50 0.375 T

C 20 0.375

g = 9.82 m/seg2 30°

15
N
T Balance de fuerzas para el bloque A
a
m × a = m × g × sen 30 - m × g × cos 30 × A - T
100 a = 100 × 9.82 × 0.5 – 100 × 9.82 × 0.866 × 0.25 – T
100 a = 491 – 212.60 – T
100 a + T = 278.4

m×g
Balance de fuerzas para el bloque B
N
R
a m × a = m × g × sen 30 - m × g × cos 30 × B - R + T
50 a = 50 × 9.82 × 0.5 – 50 × 9.82 × 0.375 × 0.866 – R + T
50 a = 245.5 – 159.45 – R + T
T 50 a + R - T = 86.05

m×g Balance de fuerzas para el bloque C

N m × a = m × g × sen 30 - m × g × cos 30 × C + R


a 20 a = 20 × 9.82 × 0.5 – 20 × 9.82 × 0.375 × 0.866 + R
20 a = 98.2 – 63.78 + R
20 a - R = 34.42
R

m×g 16
100 a + T = 278.4 100 1 0 = 278.4
50 a – T + R = 86.05 50 -1 1 = 86.05
20 a - R = 34.42 20 0 -1 = 34.42 ≠0

No hay ceros en la diagonal principal


det = 170
No es diagonal dominante
0,02
1,59
0,01 0,01 0,01
1,12 K(A) = 160,41
MINVERSA = 0,41 -0,59 -0,59
max= 1,59
0,12 0,12 -0,88
101
52
<103
21
max= 101

17
18
n

Datos: A, b, ema
bi  
j 1
aij x (jk 1)
j i
function [] = jacobi(A, b) xi( k ) 
[n,m] = size(A)
aii
ema = input('Ingrese el error maximo admisible: ')

for i = 1:n
suma = 0
for j = 1:n
if (j <> i) then suma = suma + vecXAnt(j)*A(i,j)
end //if
end //for j
vecXAct(i) = (b(i) - suma)/A(i,i)
end //for i

vecXAnt = zeros(1,n) //caso trivial

19
El error para cada ejecución será el máximo de los calculados para cada incógnita

=MÁX(ABS(J13-J12);ABS(K13-K12);ABS(L13-L12))

er = max(abs(vecXAct - vecXAnt)) //calcula el error entre vectores

vecXAct = zeros(1,n) //caso trivial

vecXAnt = vecXAct //guarda vector actual en vector anterior

while(er > ema)

end //while

Resultados: x, it disp('Resultado'); disp(vecXAct)

disp('Uso ‘ + string(it) + ' iteraciones')

20
n
bi  a
j 1
( k 1)
ij x j
if (j <> i) then suma = suma + vecXAnt(j)*A(i,j)
end //if
j i -------------
xi( k ) 
aii vecXAct(i) = (b(i) - suma)/A(i,i)

if (j <> i) then if (j < i) then suma = suma + vecXAct(j)*A(i,j)


 i 1 n  else suma = suma + vecXAnt(j)*A(i,j)
 
bi   aij x (jk )   aij x (jk 1) 

end //if
end //if
xi( k )   j 1 j i 1  -------------
aii vecXAct(i) = (b(i) - suma)/A(i,i)

   i 1 
n
xi( k )  (1   ) xi( k 1) 
aii 
bi  
 
aij x (jk )   aij x (jk 1) 

  j 1 j i 1 
if (j <> i) then if (j < i) then suma = suma + vecXAct(j)*A(i,j)
else suma = suma + vecXAnt(j)*A(i,j)
end //if
end //if
---------------------
vecXAct(i) = (1-w)*vecXAnt(i) + w*(b(i) - suma)/A(i,i)21
--> A = [100,1,0;50,-1,1;20,0,-1];
--> b = [278.4;86.05;34.42];

--> det(A)
ans = 170

--> K = norm(A, ’inf’)*norm(inv(A), ‘inf’)


K = 160.41

--> x = A\b
x=
2.3463
43.7706
12.5059

22

Você também pode gostar