Está en la página 1de 7

Instituto Politcnico Nacional

Unidad Profesional Interdisciplinaria de


Ingeniera Campus Guanajuato

Ingeniera en Biotecnologa

Mtodos Numricos (Taller)

Tarea 2: Introduccin a Scilab (Parte II)

Alumna:
Sheila Luca Rodrguez Garca 2013660381
Introduccin a Scilab II
Problema 1:

La matriz de Hilbert es una matriz de cuya entrada i; j corresponde a:

1
=
+1

Usando Scilab crea una funcin que tome el argumento de entrada n e imprima en
la consola la matriz de Hilbert correspondiente.

Para la resolucin del problema se plante la ecuacin de la Matriz de Hilbert, esta


ecuacin est en funcin de dos variables: i & j. Dado que es una matriz, se tom
i= renglones & j=columnas. Sin embargo el usuario es el que decide de qu
dimensiones ser la matriz cuadrada, por lo que se necesita de un ciclo que vaya
desde la posicin 1 de la matriz hasta la posicin n que viene dada por el valor
que el usuario ingresa.

Como se trata de una matriz, y no un vector, harn falta dos ciclos anidados, uno
que determine la posicin de los renglones y otro la posicin de las columnas.
Para este caso se emple el ciclo for, ya que sabemos exactamente hasta donde
se tiene que parar el ciclo, hasta llegar a n.

Por lo tanto, el algoritmo del problema queda as:

1. Pedir al usuario el valor de n


2. Declaracin de la ecuacin en funcin (i,j)
3. Para i= renglones desde 1 hasta n
4. Para j=columnas desde 1 hasta n
5. Resuelve la ecuacin de la funcin para matriz de hilbert
6. Termina el ciclo para j
7. Termina el ciclo para i
8. Muestra la matriz

En este caso, al momento de correr el


programa en Scilab, nos muestra el
siguiente resultado, el cual es correcto
al verificar con la calculadora:

Figura 1.- Ejecucin del programa 1 en Scilab


Problema 2

Se necesita transmitir una matriz de 7 filas y 7 columnas conteniendo bits (ceros o


unos). Antes de transmitirla se debe agregar una columna conteniendo ceros o
unos de manera que las 7 filas tengan paridad par, es decir, que la cantidad de
unos en cada fila sea par. Este cero o uno adicional se denomina bit paridad.

Genere aleatoriamente la matriz de 7x7 llena de ceros y unos, agregue el bit de


paridad en cada fila y muestre la matriz resultante. Pista: Para generar un nmero
aleatorio en Scilab utiliza la instruccin rand (), la cual genera un nmero aleatorio
entre 0 y 1.

Figura 2.- Matriz de Bits

En la solucin de este problema, el primer punto a desarrollar fue el implementar


un cdigo que arrojara una matriz de 7x7 conteniendo nicamente valores que
fueran cero o uno. Para esto el problema nos aconsejaba utilizar el comando rand.
Sin embargo este comando nos arroja una matriz que tiene valores entre 0 y 1. Es
decir nos daba nmeros decimales nicamente tal como 0.04, 0.85, etc.

Se investig otra funcin que permitiera redondear dichos valores, el comando


fix(rand()). El problema con este comando era que redondeaba a un valor entero
inmediatamente inferior, es decir, que si tenamos 0.04 lo redondeaba a 0 y si
tenamos 0.85 lo redondeaba a 0 igualmente. Por lo tanto nos arrojaba una matriz
de ceros. Dado que esto dificultaba la solucin del problema, se busc de qu
forma este comando involucrara tambin al redondeo de unos.

As que, si esos valores aleatorios entre 0 & 1 los multiplicsemos por dos, nos
daran nmeros decimales mayores que uno, y tambin menores que l, as al
momento de redondearlos nos arrojaran valores 0 & 1 nicamente, es decir:

Si 0.04 2 = 0.08 Redondea a 0


Si 0.85 2 = 1.7 Redondea a 1
Y as para todos los valores aleatorios generados en la matriz. Permitiendo tener
una matriz de ceros o unos. El comando qued:

fix(rand(7x7)*2)

Se tiene entonces una matriz de 7x7. Ahora bien, se debe obtener la suma de los
renglones de esa matriz, para cada rengln, si la suma da un nmero impar, en
una octava posicin se debe agregar un 1 que haga par a dicho rengln de la
matriz. Si la suma da par, se le agrega 0, puesto que el rengln ya no necesita
hacerse par.

Para esto se agreg a la estructura del programa un contador de los nmeros uno
de cada rengln, al cual se le llam unos. De manera que, al dividir el resultado
de esta suma de nmeros unos entre 2 si el residuo de dicha divisin es 0, se trata
de un nmero par, de lo contrario es nmero impar y por lo tanto se tendr que
agregar un 1 a la octava posicin para darle paridad a la matriz. El procedimiento
antes descrito quedar ms entendible en el siguiente algoritmo:

1. Para i=renglones de la matriz desde 1 hasta 7


a. Declarar contador unos=0, esto se hace con el fin de que cuando
inicie la suma de un nuevo rengln, el contador se inicialice en 0.
2. Para j=columnas de la matriz desde 1 hasta 7
a. La matriz con renglones i & columnas j, es igual a fix(rand()*2)
b. Si la matriz en la posicin (i,j) es igual a 1
c. Entonces unos=unos+1, se le suma un 1 al contador de unos
d. Termino de la condicin si
e. Si el residuo de la divisin del contador unos entre 2, es igual a 0
f. Entonces se trata de suma par, por lo cual se le agregara un 0 a un
vector con posicin en i
g. En caso contrario, se trata de suma impar, por lo cual se le agregara
un 1 a un vector con posicin i
h. Termino de la condicin
3. Termino para j, columnas
4. Termino para i, renglones
5. Asignamos una nueva matriz, que sume la matriz(i,j) ms el vector creado
que le dar paridad
6. Mostramos la nueva matriz creada con paridad, con 7 renglones, 8
columnas

A continuacin se muestra la ejecucin del programa en Scilab, mostrando la


matriz paridad:
Figura 3.- Ejecucin del segundo programa en scilab de la Matriz de Bits paridad

Nota: El comando mdulo se utiliza para sacar el residuo de la divisin de unos


entre 2.

De esta forma si contamos los unos de la matriz por rengln, se comprueba la


paridad:

Matriz V(i) Suma


0 1 0 0 1 1 1 0 4
1 1 0 1 1 1 0 1 6
1 0 0 0 1 1 0 1 4
1 0 0 0 0 1 0 + 0= 2
0 1 1 0 0 1 0 1 4
1 0 0 0 0 0 0 1 2
[1 0 0 1 0 1 1 ] 0 4

Problema 3

En los siguientes ejercicios grafica las siguientes funciones:


Para resolver el ejercicio, simplemente basta con implementar los cdigos
aprendidos en scilab sobre declarar una funcin y como graficarla en cierto rango
de valores numricos.

De acuerdo al cdigo introducido en Scilab se ejecuta el programa, obteniendo los


siguientes resultados:

Tabla1.- Resultados para la ejecucin del problema 3 en Scilab


Nmero Cdigo empleado Grfica mostrada
de
funcin
1

2
3

Los comandos a, b y c representan los ejes x de cada grfica y la funcin


expresada con las letras f, g & k el eje y de las grficas respectivamente.

También podría gustarte