Sunteți pe pagina 1din 5

Matemtica Aplicada

1
TRABAJO PRCTICO N1

Problema N1
Escriba un programa en C para multiplicar una matriz por un vector, A x = b
Lista de smbolos utilizados en el seudo cdigos

A : matriz (array) dato


n : dimensin de la matriz A
x : vector (array) dato
b : vector s (array) resultado
i, j : variables auxiliares

Seudo cdigo (lenguaje para describir algoritmos)


PASO 1:
PASO 2:
PASO 3:
PASO 4:
PASO 5:
PASO 6:
PASO 7:
PASO 8:
PARA 9:
PASO 10:
PASO 11:
PASO 12:

DATOS: n, A = { a ij ; 1 i n, 1 j n }, x = {xi ; 1 i n}
PARA i = 1, n
bi 0
PARA j = 1, n
bi bi + a ij xi
FIN- PARA
FIN-PARA
MUESTRE El producto es:
PARA i = 1, n
MUESTRE bi
FIN-PARA
FIN

Programa C
/*TRABAJO PRACTICO N1*/
/* Problema 1 */
#include <stdio.h> /*libreria estandar de entrada y salida (printf y scanf)*/
#include <stdlib.h> /*libreria estandar (funciones auxiliares)*/
#include <math.h> /* libreria matemtica */
// Declaracin de Variables Globales
int main(){
//Declaracion de variables locales
double A[100][100],x[100],b[100];
int n,i,j;
// Ingreso de Datos
printf ("Ingrese la dimension de la matriz \r\n");
scanf ("%d" ,&n);
for (i=1;i<=n; i++){
for (j=1;j<=n;j++){
printf ("Ingrese el elemento A[%d][%d] \r\n",i,j);
scanf("%lf", &A[i][j]);
}

Matemtica Aplicada

printf ("Ingrese el elemento x[%d] \r\n",i);


scanf("%lf", &x[i]);
}
// Aplicar Mtodo
for (i=1;i<=n; i++){
b[i]=0.0;
for (j=1;j<=n;j++){
b[i]=A[i][j]*x[j]+b[i];
}
}
printf("\r\n \r\n El producto es: \r\n\r\n");
for (i=1;i<=n; i++){
printf(" b[%d]=%lf \r\n",i,b[i]);
}
system("\r\n Pause");
return 0;
}

Ejemplo de aplicacin:
(

( )

El producto es:
b[1]=1.000000
b[2]=2.000000
b[3]=3.000000
Problema N2
Utilice el programa desarrollado en el punto anterior para multiplicar la matriz y el vector dado
a continuacin. Muestre el resultado obtenido.

)
-

El producto es:
b[1]=11.000000
b[2]=16.000000
b[3]=3.000000

( )

Matemtica Aplicada
Problema N3
Escriba un seudocdigo para multiplicar matrices y luego implemntelo en un programa en C.
Seudo cdigo (lenguaje para describir algoritmos)
PASO 1:
PASO 2:
PASO 3:
PASO 4:
PASO 5:
PASO 6:
PASO 7:
PASO 8:
PASO 9
PASO 10:
PASO 11:
PASO 12:
PASO 13:
PASO 14:
PASO 15:

DATOS: m, p, q, n, A = { a ij ; 1 i m, 1 j p }, B = { b ij ; 1 i q, 1 j n }
PARA i = 1, m
PARA j = 1, n
c ij 0
PARA k = 1, p
c ij c ij + a ik b kj
FIN- PARA
FIN-PARA
FIN-PARA
MUESTRE El producto es:
PARA i = 1, M
PARA j = 1, n
MUESTRE c ij
FIN-PARA
FIN-PARA

PASO 14:

FIN

Programa C
/*TRABAJO PRACTICO N1*/
/* Problema 3 */
#include <stdio.h> /*libreria estandar de entrada y salida (printf y scanf)*/
#include <stdlib.h> /*libreria estandar (funciones auxiliares)*/
#include <math.h> /* libreria matemtica */
// Declaracin de Variables Globales
int main(){
//Declaracion de variables locales
double A[100][100],B[100][100],C[100][100];
int m,n,p,q,i,j,k;
// Ingreso de Datos
printf ("Ingrese el numero de filas de la matriz A \r\n");
scanf("%d", &m);
printf ("Ingrese el numero de columnas de la matriz A \r\n");
scanf("%d", &p);
printf ("Ingrese el numero de filas de la matriz B \r\n");
scanf("%d", &q);
if(p!=q)
{
printf ("El numero de columnas de la matriz A no es igual al numero de filas de la matriz B \r\n");
printf ("El producto de matrices no se puede realizar \r\n");
}

Matemtica Aplicada
else
{
printf ("Ingrese el numero de columnas de la matriz B \r\n");
scanf("%d", &n);
for (i=1;i<=m; i++){
for (j=1;j<=p;j++){
printf ("Ingrese el elemento A[%d][%d] \r\n",i,j);
scanf("%lf", &A[i][j]);
}
}
for (i=1;i<=q; i++){
for (j=1;j<=n;j++){
printf ("Ingrese el elemento B[%d][%d] \r\n",i,j);
scanf("%lf", &B[i][j]);
}
}
// Aplicar Mtodo
for (i=1;i<=m; i++){
for (j=1;j<=n; j++){
C[i][j]=0.0;
for (k=1;k<=p;k++){
C[i][j]=A[i][k]*B[k][j]+C[i][j];
}
}
}
printf("\r\n \r\n El producto es: \r\n\r\n");
for (i=1;i<=m; i++){
for (j=1;j<=n; j++){
printf(" C[%d][%d]=%lf \r\n",i,j,C[i][j]);
}
}
}
system("\r\n Pause");
return 0;
}

Matemtica Aplicada

Problema N4
Utilice el programa desarrollado en el Problema 3 para multiplicar las matrices A y B.
(

)
-

El producto es:
C[1][1]=-5.800000
C[1][2]=-3.300000
C[1][3]=9.500000
C[2][1]=5.100000
C[2][2]=-3.100000
C[2][3]=4.000000
C[3][1]=-1.700000
C[3][2]=-9.800000
C[3][3]=4.500000

(-

)
-

S-ar putea să vă placă și