C´digo en c para multiplicar dos matrices 3x3

Solo disponible en BuenasTareas
  • Páginas : 4 (937 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de febrero de 2011
Leer documento completo
Vista previa del texto
C´digo en C para multiplicar dos matrices 3x3. o
V´ ıctor Mu˜oz n 9 de abril de 2006

1.

Razonamiento te´rico. o
Sean M, N ∈ M3 : m00 M =  m10 m20 n00 N =  n10 n20   m01 m11 m21 n01 n11n21  m02 m12  m22  n02 n12  n22 una matriz R ∈ M3 :  r02 r12  r22  = r00  = r01 r0i  = r02  = r10  = r11 r1i  = r12  = r20  = r21 r2i  = r22

Multiplic´ndolas tendremos como resultado a r00 r01 R =  r10 r11 r20 r21

Estudiando dicho producto elemento a elemento, obtenemos:  2  m00 · n00 + m01 · n10 + m02 · n20 m00 · n01 + m01 · n11 + m02 · n21 m0j · nji , ∀i ∈ 0, 1, 2  j=0m00 · n02 + m01 · n12 + m02 · n22  2  m10 · n00 + m11 · n10 + m12 · n20 m10 · n01 + m11 · n11 + m12 · n21 m1j · nji , ∀i ∈ 0, 1, 2  j=0 m10 · n02 + m11 · n12 + m12 · n22  2  m20 · n00 + m21 · n10+ m22 · n20 m20 · n01 + m21 · n11 + m22 · n21 m2j · nji , ∀i ∈ 0, 1, 2  j=0 m20 · n02 + m21 · n12 + m22 · n22

Estudiando las expresiones de los sumatorios, obtenidas por simple inspecci´n, oobtenemos tres bucles, correspondientes a cada una de las tres filas de R (r0i , r1i , r2i ). Tomando como ejemplo la primera fila (r0i ),
2

m0j · nji , ∀i ∈ 0, 1, 2
j=0

representar´ dos buclesanidados. El interno calcular´ cada elemento, por lo ıa ıa que dejar´ ıamos “i” constante (tomando la forma general de un elemento de la primera fila de R, r0i , har´ ıamos i = 0 para el primer elemento, i= 1 para el segundo e i = 2 para el tercero). El bucle quedar´ por tanto: ıa, 1

Bucle interno f o r ( j = 0 ; j < 3 ; ++j ) { r [ 0 ] [ 0 ] += m[ 0 ] [ j ] ∗ n [ j ] [ 0 ] ; } Para obtener elbucle externo tendremos en cuenta que lo que variamos en este caso es la “j”, desde 0 hasta 2. Nos queda: Bucle externo f o r ( i = 0 ; i < 3 ; ++i ) { f o r ( j = 0 ; j < 3 ; ++j ) { r [ 0 ] [ i ] += m[0 ] [ j ] ∗ n [ j ] [ i ] ; } } Por tanto, ya tenemos el c´digo que calcula la fila 0 de la matriz R. o Para calcular las dem´s variar´ a ıamos el ´ ındice de fila de R en el rango [0, 2]; ındice de...
tracking img