jueves, 30 de junio de 2011

Propiedades de los logaritmos

¿Que es un logaritmo? 
El logaritmo en base a de un numero x es el exponente al que hay que elevar la base para que resulte dicho numero (en el caso del siguiente ejemplo es R). 




Propiedades de los logaritmos


1.- El logaritmo de un producto es igual a la suma de los logaritmos de los factores.
logₐ (x * y) = logₐ x + logₐ y
Para entender esta propiedad y comprobar que funciona podemos descomponer un logaritmo, por ejemplo:
log
₁₀ 24
log
₁₀ (8 x 3)
log
₁₀ 8 + log₁₀ 3
log
₁₀ 2^3 + log₁₀ 3
3log₁₀ 2 + log₁₀ 3


2.- El logaritmo de un cociente es igual al logaritmo del dividendo menos el logaritmo del divisor.
logₐ (x / y) = logₐ x - logₐ y


Aplicamos lo mismo aquí, descomponer un logaritmo:
log₁₀ (2ab/c)
log₁₀ (2ab) - log₁₀ c
log
₁₀ 2 + log₁₀ a + log₁₀ b - log₁₀ c


3.- El logaritmo de una potencia es igual al producto del exponente por el logaritmo de la base.
logₐ (xᵇ) = b logₐ x


Aquí lo único que tenemos que hacer es mandar el exponente de nuestro logaritmo al inicio de nuestra expresión actuando como constante:
log₁₀ c ⁴  =  4 log₀ c

4.- Donde x > 0 ; y > 0
x ^ logₐ y = y ^ logₐ x


Aquí podemos darle valores a "x" y "y" para poder comprobar esta propiedad:
x = 2
y = 3

2^log
₁₀3  =  3^log₁₀2
1.3919  =  1.3919


5.- En este caso seria para calcular el factorial de un numero en base a logaritmos
Aquí lo único que tenemos que hacer es multiplicar todos los factores de un numero, en este caso 4, esto se detiene al llegar a 1, solo multiplicaremos hasta el 2 porque de lo contrario el resultado seria 0 ya que el log ₁₀ 1 = 0:


log₁₀ (5!) = log₁₀ 5  x  log₁₀ 4  x  log₁₀ 3  x  log₁₀ 2
log
₁₀ (5!) = 0.6989  x  0.6020  x  0.4771  x  0.3010
log
₁₀ (5!) = 0.0604




Corregido.

Gráfico de logaritmos

Aquí verán a gráfica que me resulte de realizar varias operaciones que vimos en la sesión de hoy, verán que utilizamos 5 ecuaciones y de estas veremos cual es la que resalta sobre las demás.


Como podrán ver la ecuación que resalta de las demás es y = e^x


En caso de que encuentren alguno dato dudoso o error me gustaría que me hicieran saber para asi enfocarme en lo que fallo, para así mejorar mis cálculos, espero por lo menos les sirva de base, gracias.

LaTex editor





LaTeX  es un sistema de composición de textos, orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas. Está formado por un gran conjunto de Macros de TeX con la intención de facilitar el uso del lenguaje de composición tipográfica, Tex es muy utilizado para la composición de artículos académicos, tesis y libros técnicos, dado que la calidad tipográfica de los documentos realizados con LaTeX es comparable a la de una editorial científica de primera línea.

La palabra LaTex en condigo vendría siendo de la siguiente manera:
" <i>L<sup>A</sup>T<sub>E</sub>X</i>" genera LATEX


Aqui les dejo una tabla que encontre del lenguaje de LaTex:

Alfabeto griego:

Símbolos matemáticos: 

Caracteres reservados de LaTex
Si queremos evitar errores en Latex, es necesario que conozcamos cuales caracteres son usados como comandos o delimitadores por el compilador de Latex, estos caracteres son:



#  $  %  &  _  {  }  ~  ^  \



Para poder incluir estos caracteres dentro de tu documento, como parte del texto debes anteponerle un backslash ( \ ), por ejemplo


Para obtener # , escribe \#
Para obtener $ , escribe \$
Para obtener % , escribe \%
Para obtener & , escribe \&
Para obtener _ , escribe \_
Para obtener { o } , escribe \{ o \}
Para obtener ~ , escribe \verb'~'
Para obtener ^ , escribe \verb'^'
Para obtener \ , escribe \verb'\'



Estructurar la forma del texto

Un documento en Latex consiste en un texto tal y una serie de comandos para el compilador que son los que le van a dar la forma al texto. Un comando comienza con el carácter bakcslash ( \ ) seguido por su nombre (debemos tener cuidado ya existen diferencias en la utilización de mayúsculas y minúsculas), un ejemplo de comando es:



       \pagestyle{empty};


El documento contiene dos secciones principales que son, el encabezado, está
compuesto por los comandos para definir la estructura general del documento, y el documento tal, que contiene el texto y algunos otros comandos. La forma general de un documento en Latex es:


      
      \documentclass[...
      \usepackage{...}
      (Comandos del encabezado) 
      \begin{document}
      (Texto del documento y comandos)
      \end{document}

Como insertar ecuaciones y formulas

Podemos realizar esto a través de 4 comandos que son: math (para fórmulas en el texto), displaymath (para una línea de ecuación no numerada), equation (para una línea de ecuación numerada) y por último eqnarray (para varias líneas de ecuación).

El ambiente math se utiliza para intercalar fórmulas en las líneas de texto, por ejemplo si se escribe el teorema de Pitágoras: $x^{2} + y^{2} = h^{2}$ .
O también puede ser:
        El teorema de Pitágoras.
        \begin{math}
        x^{2} + y^{2} = h^{2}.
        \end{math}

Los ambientes displaymath y equation se utilizan para imprimir una ecuación en el centro de la línea. Los comandos son:
  • Si encierras la fórmula entre los comandos \begin{displaymath} y \end{displaymath} o entre \[ y \], ocasiona que la fórmula no sea numerada
  • Por otra parte si se utiliza \begin{equation} y \end{equation} la fórmula será numerada. Y cada vez que ingreses una nueva fórmula en este ambiente se incrementará automáticamente el número.
El siguiente es un ejemplo:
          \begin{displaymath}
               x^{2} + y^{2} = h^{2}
          \end{displaymath}
Sin embargo, se puede utilizar el otro ambiente:
          \begin{equation}
               x^{2}+y^{2}=h^{2}
          \end{equation}

Los ambientes eqnarray y eqnarray* son usados para producir ecuaciones o varias ecuaciones consecutivas en más de una línea. El primer ambiente las genera numeradas mientras que el segundo no las numera.
Notar los siguientes puntos : 
  • Si se desea que una ecuación no sea numerada debes dar el comando \nonumber antes del comando \ en la línea de la ecuación.
  • Cuando se genera en varias líneas una ecuación, las líneas extras aparecen después del signo igual (=) o de la desigualdad o cualquier otro símbolo, en ocasiones uno desearía que estas líneas fueran impresas un poco más a la izquierda, Tú puedes hacer esto escribiendo los siguientes comandos en el ambiente eqnarray
          \lefteqn{(Lado izquierdo de la ecuación y el símbolo)} \\
          & & (Lado derecho de la ecuación)\\
    
    Por ejemplo
    \begin{eqnarray*}
    \lefteqn{{\cal R}(y) + \int_{0}^{y} \Psi (x) \, dx =} \\ 
      & & a + b + c + d + e + f + g +  \\ 
      & & h + i + j + k + l + m + o + p + q
    \end{eqnarray*}
    
CUIDADO: No poner líneas en blanco dentro de este ambiente, esto genera errores muy difíciles de decifrar.

Referencia de una ecuación 

Se no es posible referenciar una ecuación desde cualquier lugar del texto, para ello podemos utilizar dos comandos, los cuales son:
\label{key} (En al ecuación)
~\ref{key} (Insertada en el lugar del texto donde la ecuación es citada)
Cualquier texto puede ser usado para reemplazar a key. Suponga que tiene la siguiente ecuación con el primer comando:
          \begin{equation}
               Y = 4x^{2} - 3x + 5  \label{ecua}
          \end{equation}

A continuación les dejare un vídeo que encontré en youtube de como usar códigos de LaTex para un blog, esta explicado con notas, igual si esta entendible el vídeo:


También les dejare este otro vídeo que igual es de youtube que explica como obtener ecuaciones y formulas, es online el programa pero también es LaTex:



Y por ultimo les dejare una pagina que encontré donde pueden probar el editor de LaTex, además es la que viene en el primer vídeo y de ahí pueden practicarhttp://www.codecogs.com/latex/eqneditor.php

Y de aquí pueden descargar el editor LaTex para su PChttp://texmakerx.softonic.com/

http://www.fceia.unr.edu.ar/lcc/cdrom/Instalaciones/LaTex/latex.html

miércoles, 29 de junio de 2011

Lenguajes decidibles o recursivos

Los lenguajes decidibles son cadenas de palabras calculables mediante funciones recursivas por lo cual también se les llaman lenguajes recursivos. Un posible alfabeto sería, digamos, {a, b} , y una cadena cualquiera sobre este alfabeto sería, por ejemplo, ababba, las frases sobre el alfabeto {a, b} que contienen alternadas las letras a y b. Se caracterizan porque para cada uno de ellos existe una máquina de Turing que aceptará cualquier palabra del lenguaje y parará siempre.


A continuación algunos ejemplos que yo invente:


L = {0, 1}*
A  ->  0A | 1A | E (vació)  


Para:
101101 


A
1A
10A
101A
1011A
10110A
101101A
101101E
Resultado = 101101


Otro ejemplo:


L = { j , a }
B  ->  j B a | BB | E (vació)


Para:
j j j a j a a a


j B a
j j B a a
j j B B a a
j j j B a B a a
j j j E a B a a
Resultado = j j j a j a a a


Todo consiste en sustituir por las opciones que te brinda el lenguaje para formar la frase para llegar al resultado, bueno eso es todo, espero y les pueda servir.


Fuente: http://www.mitecnologico.com/Main/LenguajesDecidibles

Operaciones con números binarios

Suma de números binarios

Las posibles combinaciones al sumar dos bits son
  • 0 + 0 = 0
  • 0 + 1 = 1
  • 1 + 0 = 1
  • 1 + 1 = 10
'       100110101
'   +    11010101
'     ———————————  
'      1000001010  

Resolvemos como en el sistema decimal: comenzamos a sumar desde la derecha, en el ejemplo, 1 + 1 = 10, entonces escribimos 0 en la fila del resultado y llevamos 1. A continuación se suma el 1 que tenemos arriba a la siguiente columna: 1 + 0 + 0 = 1, y seguimos hasta terminar todas la columnas (exactamente como en decimal) y cabe mencionar que las comas que están al principio de cada linea de la operación están colocadas para que no se corra hacia la derecha cada linea, no afectan la operación.

Resta de números binarios

El procedimiento de la resta en binario es el mismo que en el sistema decimal. Es conveniente repasar la operación de restar en decimal para comprender la operación binaria, que es más sencilla. Los términos que intervienen en la resta se llaman minuendo, sustraendo y diferencia.
Las restas básicas 0-0, 1-0 y 1-1 son evidentes:
  • 0 - 0 = 0
  • 1 - 0 = 1
  • 1 - 1 = 0
  • 0 - 1 = no cabe o se pide prestado al próximo.
La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1 = 1 y me llevo 1, lo que equivale a decir en decimal, 2 - 1 = 1. Esa unidad prestada debe devolverse, sumándola, a la posición siguiente.
'        10001                 11011001
' - 01010 - 10101011 ' ———————— —————————— ' 01111 00101110 Multiplicación de números binarios
El procedimiento del producto en binario es igual que en números decimales, aunque se lleva cabo con más sencillez, ya que el 0 multiplicado por cualquier número da 0, y el 1 es el elemento neutro del producto.
Por ejemplo, multipliquemos 10110 por 1001:
'                10110       
'                 1001                    
'              —————————
'                10110               
'               00000                
'              00000                
'             10110 
'           —————————
' 11000110
 

División de números binarios

La división en binario es similar a la decimal, la única diferencia es que a la hora de hacer las restas, dentro de la división, estas deben ser realizadas en binario. Por ejemplo, vamos a dividir 100010010 entre 1101:
'                100010010 |1101
'                           ——————
'               - 0000      010101
'                ———————
'                 10001
'                - 1101
'                ———————
'                  01000
'                 - 0000
'                 ———————
'                   10000
'                  - 1101
'                  ———————
'                    00111
'                   - 0000
'                   ———————
'                     01110
'                    - 1101
'                    ———————
'                      00001

Cabe mencionar que todas las apostrofes que están en las operaciones de ejemplo no tienen nada que ver con las mismas, solo es para que las lineas no se corran, así que no las tomen en cuenta, y espero que la información les sea de mucha ayuda.


Fuente: http://es.wikipedia.org/wiki/Sistema_binario
http://platea.pntic.mec.es/~lgonzale/tic/binarios/aritmetica.html

Maquina de turing

Una Maquina de Turing es un dispositivo que transforma un alfabeto de entrada en uno de salida después de algunos pasos, consiste en una cabeza de lectura/escritura que examina una dimensión posiblemente infinita de una cinta bidireccional dividida en cuadros cada uno de los cuales está identificado con un 0 o un 1.
Para llevar a cabo algún algoritmo la máquina inicializa en algún estado interno arbitrario. Después, entra en marcha y la máquina lee el bit que se encuentra en ese momento en su interior y ejecuta alguna operación con ese bit (lo cambia o no, dependiendo de su estado interno). A continuación se mueve hacia la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma manera. Al final se para, dejando el resultado al lado izquierdo.

Siguiendo este sistema de conversión: 

s, 0 (s, 0,>)
s, 1 (s, 1,>)
s, _ (q, _ ,<)
s, ^ (s, ^,>)
q, 0 (“alto”, 1,−)
q, 1 (q, 0,<)
q, ^ (“alto”, ^,>)


Estados: s, q
Punteros: <, >, -
Estados terminales: "alto", "si", "no"
Símbolos especiales: _ , ^ 


A continuación les dejare un ejemplo que yo hice, y que mejor manera de que entiendan que con imágenes y texto, porque tal vez un programa seria un poco complejo de entender:


1.-


2.-

3.- 
4.-
5.-
6.-
7.-


Espero les sea de ayuda, estaría mejor que lo subiera en forma de vídeo pero todavía estoy en eso, aun no se muy bien como hacerlos, igual espero les sirva.


Fuente: http://campusvirtual.unex.es/cala/epistemowikia/index.php?title=La_m%C3%A1quina_de_Turing/La_teor%C3%ADa_de_la_computaci%C3%B3n_y_la_M%C3%A1quina_de_Turing

La tabla de sistema de conversión la tome de las diapositivas que nos aporto la Dra. Elisa Schaeffer

martes, 28 de junio de 2011

Conversión de números decimales a binarios

En esta entrada les dejare un material que encontré en la Internet que nos puede servir de mucha ayuda en la conversión de números decimales a Binarios.


Para empezar les dejare este vídeo donde te muestra los pasos para la conversión ya mencionada, espero les sirva de ayuda:


A continuación les dejo una tabla de conversión que encontré en www.ascii.cl, nos puede servir para comparar y verificar que hicimos bien nuestra operación, solo basta con que le den clic aquí en la palabra Tabla de conversión y podrán ir a la pagina directamente a esta tabla.
También les dejare el código de un programa que hice basándome en unos ejemplos que investigue, el código  esta hecho en C++ y es el siguiente:

#include<stdio.h>
#include<conio.h>

/*
Programa que convierte numeros decimales a binarios
*/

void dec2bin(long decimal, char *binario); /* El dec2bin sirve para la conversion
                                             de decimal a binario*/

main() 
     long int decimal; 
     char binario[80]; 
       
     printf("Ingrese el numero que desea convertir: "); 
     scanf("%ld",&decimal); 
     printf("\n");
     dec2bin(decimal,binario); 
     printf("\nEl numero binario de: %ld es %s \n",decimal,binario); 
     
     getchar(); /* Trampa de entrar */ 
     getchar(); /* Esperar */ 
     return 0; 
     
     getch();
     } 

void dec2bin(long decimal, char *binario) 
     int a=0, N=0; /* Contadores */
     int indic_neg=0; 
     int sobrante; /* Variable para residuo */
     int ant_decimal; /* Variable para antiguo decimal */
     char temp[80]; /* Variable que contara con caracteres ya leidos */
     
     if(decimal<0) 
     { 
          decimal=decimal-1; 
          indic_neg=1; 
          }
          
     do{
          ant_decimal=decimal; /* Antiguo decimal es igual a nuevo decimal*/
          sobrante=decimal%2; /* Calculo de residuo */
          decimal=decimal/2; /* Calculando nuevo decimal */
          
          printf("%d/2 = %d, residuo = %d\n", ant_decimal, decimal, sobrante); 
          temp[a++]=sobrante + '0'; 
          }while(decimal>0); 
          
          if(indic_neg){ 
                         temp[a++] = '-';
                         } 
               else{ 
                   temp[a++] = ' '; 
                   }
                   
                   while(a>=0) 
                   binario[N++]=temp[--a]; 
                   binario[N-1]=0; 
                   }

Visite estas paginas para darme una idea de como hacer el programa:



Bueno espero les haya servido de ayuda.

lunes, 27 de junio de 2011

Adelanto para la primera sesión: Repeticiones

Ciclo WHILE

Estos ciclos se utilizan cuando queremos repetir la ejecución de unas sentencias un número indefinido de veces, siempre que se cumpla una condición. Se más sencillo de comprender que el bucle FOR, pues no incorpora en la misma línea la inicialización de las variables su condición para seguir ejecutándose y su actualización. Sólo se indica, como veremos a continuación, la condición que se tiene que cumplir para que se realice una iteración.

while (condición){
sentencias a ejecutar
}

Un ejemplo de código donde se utiliza este bucle se puede ver a continuación.

var color = ""
while (color != "rojo")
color = dame un color
}

Este es un ejemplo de lo más sencillo que se puede hacer con un ciclo while. Lo que hace es pedir que el usuario introduzca un color mientras que el color no sea rojo.



Ciclo FOR
La sentencia for funciona de igual manera que lo hace el ciclo while, solo que su uso es más común y más fácil, ya que en el encabezado de la sentencia se realiza la inicialización, la comparación y el incremento.
Cuando nosotros utilizamos el ciclo while, es muy probable que se nos olvide colocar la inicialización antes del comienzo del ciclo, y también el incremento de la variable dentro del cuerpo del mismo. Sin embargo, el ciclo for nos sugiere colocarlos en su encabezado para evitar este tipo de errores, los cuales podrían provocar un ciclo infinito.
En seguida veremos el diagrama de flujo del ciclo for

sintaxis del ciclo for en lenguaje C es la siguiente:

for( inicialización ; condición_a_evaluar ; incremento )
  {
  instrucción 1;
  :
  instrucción n;
  }

Ciclo DO WHILE

La estructura do while es otra estructura repetitiva, la cual ejecuta al menos una vez su bloque repetitivo, a diferencia del while o del for que podían no ejecutar el bloque.Esta estructura repetitiva se utiliza cuando conocemos de antemano que por lo menos una vez se ejecutará el bloque repetitivo.La condición de la estructura está abajo del bloque a repetir, a diferencia del while o del for que está en la parte superior.


El bloque de operaciones se repite mientras que la condición sea verdadera.
Si la condición retorna Falso el ciclo se detiene.

Adelanto para la primera sesión: Condiciones

Las estructuras condicionales comparan una variable contra otro valor(es), para que en base al resultado de la comparación, se siga un camino de acción dentro del programa. La comparación se puede hacer contra otra variable o una constante, dependiendo la necesidad. Existen tres tipos básicos, las simples, las dobles y las múltiples. 


Simples:
Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma: 



Diagrama de flujo:

Pseudocódigo: 


Dobles:
Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma: 



Diagrama de flujo:
Pseudocódigo: 
Múltiples:
Las estructuras de comparación múltiples, son tomas de decisión especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma común es la siguiente:



Diagrama de flujo:
Pseudocódigo:

Múltiples (En caso de): 
Las estructuras de comparación múltiples, es una toma de decisión especializada que permiten evaluar una variable con distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma es la siguiente: 

Diagrama de flujo:
Pseudocódigo: