martes, 23 de agosto de 2011

El inicio y fin del universo.

En esta entrada diré algunas cosas que pasan por mi mente, no es que sea un erudito en el tema, puede que no todo esté muy bien acertado, pero bajo mis conocimientos y lógica los concibo como certeros para mí en el momento en que escribo, imagino cosas que quizá suenen raras, pero les trato de poner sentido basado en lo que conozco.

Bueno, para comenzar, habrá que entender mi perspectiva de la nada, la no existencia, en lo otras palabras, lo que es donde no existe nada, de cierta forma es un concepto simple, pero esa sencillez quizá nos confunda, y por otro lado asumir que el universo se está expandiendo en medio de la nada. Como su concepto lo dice, la nada es la ausencia de cualquier cosa, entonces para mí la nada está mas allá del universo que se expande, si te encontraras con la nada y avanzas de frente jamás podrías encontrar algún tipo de existencia, la única forma es retroceder de donde provienes y moverse dentro del universo al cual perteneces, pues como la nada es ausencia de todo, seguirías indefinidamente en una dirección hacia la nada sin encontrar ningún tipo de existencia.

Para entenderlo mejor, hagamos un caso hipotético de una borde hacia la nada de forma de una lámina, tal sería la condición inicial en un tiempo que llamaríamos cero, donde por x razón se logró generar tal borde de nada. Luego del tiempo cero nuestro universo afecta la nada y empieza a expandirse a través de ella, puesto que la radiación electromagnética entraría y se expandirá hacia la nada en forma indefinida, de tal suerte las dos caras de la lámina serian como dos ventanas hacia dos lugares diferentes, lo que entra por una cara nunca podría salir por la otra.

Ahora bien, si el universo se expande, en algún momento estuvo concentrado en un espacio más pequeño, por tanto se introduce el concepto de concentración crítica de la existencia, un tiempo en el cual todo estaba concentrado en un punto de existencia en medio de la nada. Con la concentración de existencia al máximo, sigue el tiempo y esta por su propia naturaleza no puede mantenerse así, y  se expande como si de una explosión se tratara, y se abre paso en medio de la nada, de esta forma el universo nace y sigue expandiéndose. Ahora bien, la existencia misma no puede estar tan densa como al principio, por ello ha de llegar un momento en que la fuerza de expansión termine y el universo empiece a contraerse, la misma existencia atrayéndose como si de materia negra se tratara, absorbiendo cualquier tipo de existencia y llegando así a una nueva etapa donde se de la concentración crítica de existencia. De tal suerte que sería un ciclo indefinido de este fenómeno.


Nuevos paradigmas.

El concepto de la nada, y consecuencias de ello es básicamente lo que lleva  a pensar muchos nuevos paradigmas, la expansión del universo en múltiples dimensiones, no solo las 3 básicas que a diario se maneja, si no una cuarta dimensión que podría entenderse como el tamaño, deducida tras el criterio en el cual las diferentes dimensiones han de ser ortogonales. Otro aspecto que puede ser mencionado es la velocidad máxima que podría ser absoluta en una dirección bien definida, en una hipótesis rápida diría que la velocidad máxima en una dirección corresponde a la velocidad de expansión de la existencia en medio de la nada.

La posibilidad de otros universos en medio de la nada, puesto que cuando la existencia empieza a contraerse podría haber la posibilidad de que no sea en un único punto, si no en varios a la vez, de tal suerte que a partir de un universo podrían aislarse varios universos al final de su ciclo. Si se considera que el universo se expande en múltiples dimensiones la nada está más cerca de lo que se podría pensar, el problema es acceder a la dirección correcta. Si el tamaño se concibe como una dimensión, entonces para un laboratorio convencional sería imposible ver el ente físico más pequeño posible, puesto que la misma existencia se expande en la dirección del tamaño, si se quiere acceder a medir un ente más pequeño al introducir el medio de medida ya se está expandiendo al universo en la dimensión del tamaño, puesto que el ente de medida ha de ser parte de la existencia del universo actual, es más, si la existencia se expande indefinidamente en tal dirección, entonces actualmente es virtualmente inimaginable la existencia de menor tamaño posible.

Gnu Octave: Alternativa gratuita a Matlab






El programa al que se hace mención es una excelente alternativa de MATLAB, puesto que permite trabajar con una sintaxis casi idéntica de tal forma que muchas rutinas pueden ser compatibles entre los dos programas y lo más importante es que se puede adquirir de forma totalmente gratuita. Quizá para quien inicie con este programa Gnu Octave permite un sin numero de operaciones para el manejo especializado de vectores, con lo cual se puede hacer el manejo de gran variedad de información. Es posible trabajar toda la matemática de vectores de una manera sencilla, manejo de operaciones con números complejos, derivadas, integrales, raíces de polinomios; también es importante anotar que se pueden mostrar gráficas de ecuaciones en dos y tres dimensiones mediante otro programa que acompaña a Gnu Octave; además existen otras funciones especiales para el manejo de imágenes, y sonido.
Se puede decir que el programa en cuestión no es solo un programa de matemáticas, si no que se vale de estas para desarrollar un propio lenguaje con el cual se pueden solucionar variedad de problemas a nivel profesional.
En el presente texto solo se darán a conocer algunas nociones básicas.


Entrar y salir
Cuando ya se tiene instalado Octave, aparecerá un icono en el escritorio, se accede a este programa como a cualquier otro (dando doble clic sobre su icono). Cuando se abre el programa aparece la ventana de comandos en la cual es donde se procederá a trabajar, su aspecto es un tanto sencillo, sin ninguna barra de herramientas, u opción donde se pueda seleccionar con el cursor; que esto no sea intimidante, pues el programa en si ofrece grandes posibilidades de trabajo. A continuación se presentan algunos datos de la versión seguidos del prompt (aviso) característico (octave:1>), este indica la línea donde puede empezar a digitar comandos o funciones. Para salir del programa puede digitar quit o exit.

Operaciones elementales.
Las operaciones como sumas, restas… Se realizan de manera normal, por ejemplo:

octave:2> 3+5
ans = 8
octave:3> 8/2
ans = 4
octave:4> 5*4
ans = 20
octave:5> 45-5
ans = 40
octave:6> 2^3
ans = 8

Como se observa en el ejemplo, estas operaciones no toman ninguna dificultad en comprenderlas, además de los operadores que se usan (+,-,/,*,^).

Crear variables.
Las variables son posiciones de memoria a las cuales se les pueden asignar diferentes valores, para crear una variable basta con asignarle una letra o un nombre que debe empezar por un carácter alfabético y definirle o asignarle un valor, esto se lo realiza mediante el signo “=”. Es IMPORTANTE tener en cuenta que se reconocen como diferentes las variables con nombres en mayúscula o en minúscula, esto también es valido para los comados.

Ejemplos:
octave:6> a=256
a = 256
octave:7> b=548;
octave:8> c=5+6
c = 11
En los ejemplos se pueden observar las diferentes formas para asignar valores a una variable, ya sea directamente el valor o mediante una operación. También es importante notar que si no se desea ver el valor asignado o el resultado del comando, se finaliza con “;”.

Crear Matrices.
Para crea matrices se puede hacerlo digitando los elementos, los de la misma fila están separados por espacios o comas, mientras que las filas están separadas por pulsaciones intro o por caracteres punto y coma (;). Por ejemplo, el siguiente comando define una matriz A de dimensión (3×3):

octave:9> A=[1 8 -2;2,6,8
> 7 5 -3]
A =

1 8 -2
2 6 8
7 5 -3
Se puede apreciar las diferentes formas de introducir los diferentes elementos de la matriz, que bien pudo haberse realizado de una sola manera espaciando sus elementos o colocando comas, y para las filas solo “;” o intro.

Si se desea crear un vector de números consecutivos se procede con el siguiente formato:
= ::
octave:10> B= 0:2:10
B =

0 2 4 6 8 10

octave:11> A= 0:2:11
A =

0 2 4 6 8 10

Aritmética de matrices.
Octave permite bastantes operaciones que facilitan el manejo de datos a nivel de matrices, por ello solo se explicarán las más básicas.

Un grupo de operaciones que se pueden realizar son las que respectan matrices con escalar.

octave:1> A= [1 2 -4; 1 -1 4; 5 -4 7];
octave:2> A+1
ans =

2 3 -3
2 0 5
6 -3 8

octave:3> B = A+1;
octave:4> B-1
ans =

1 2 -4
1 -1 4
5 -4 7

octave:5> 2*A
ans =

2 4 -8
2 -2 8
10 -8 14

También se pueden realizar las operaciones elemento por elemento de cada matriz, esto es posible mientras las matrices sean de iguales dimensiones.

octave:8> A.*B
ans =

2 6 12
2 -0 20
30 12 56

octave:9> A./B
ans =

0.50000 0.66667 1.33333
0.50000 -Inf 0.80000
0.83333 1.33333 0.87500

octave:10> A.+B
ans =

3 5 -7
3 -1 9
11 -7 15

octave:11> A.-B
ans =

-1 -1 -1
-1 -1 -1
-1 -1 -1

Como se observa, estas operaciones tiene en común que se antepone un punto a la operación normal que sería entre escalares.
Para las operaciones con matrices se tiene la multiplicación, división:
octave:15> B*A
ans =

-10 13 -17
27 -16 27
43 -17 20

octave:16> A/B
ans =

0.744444 -0.477778 0.077778
-0.255556 0.522222 0.077778
-0.255556 -0.477778 1.077778

octave:17> A\B
ans =

1.48387 0.48387 0.48387
1.03226 2.03226 1.03226
0.38710 0.38710 1.38710

Funciones Elementales y Trascendentes
Gnu Octave posee funciones predefinidas que se representan por su nombre y se aplican a uno o varios argumentos. La sintaxis es: función (argum-1, argum-2, … argum-n) Obviamente, se puede asignar el resultado a una variable:
Variable =función
Variable =expresión

• Básicas: abs, sqrt, round, fix, floor, ceil, sign, rem, mod, gcd,
lcm
• Trigonométricas: sin, cos, tan, cot, sec, csc, asin, acos, atan,
acot, asec, acsc
• Hiperbólicas: sinh, cosh, tanh, coth, sech, csch, asinh, acosh,
atanh, acoth, asech, acsch, log (natural)
• Trascendentes: log10 (base 10), log2 (base 2), exp (potencias
de e), pow2 (potencias de 2)
• De argumento complejo: angle, real, imag, conj
Se puede usar la ayuda que brinda el mismo programa, que indica las funciones de los diferentes comandos solamente digitando help seguido del comando o función buscada.

Constantes Predeterminadas
Se definen internamente:
  •  pi: π = 3, 14159...
  •  i, j: √−1 (imaginario)
  •  Inf: ∞ (infinito)
  •  NaN: Not a Number (0/0)
  •  clock: hora actual
  • date: fecha actual
  •  eps: diferencia mas pequeña entre dos valores
  •  ans: variable de salida por defecto
Formatos de salida
Representan las distintas formas de exhibición por pantalla de los resultados.
  •  short: es el formato estándar. Muestra la parte entera y 4 dígitos decimales.
  •  long: Parte entera y 14 dígitos decimales.
  •  bank: Parte entera y 2 dígitos decimales
  •  rat: Formato de fracciones. Exhibe los resultados de las operaciones en la forma a/b.
  •  hex: Formato hexadecimal (0-9, A-F).
Los formatos short y long presentan una opción en notación científica: short
e y long e. Para trabajar estos formatos se usa el comando format .

Números Complejos
Octave define las constantes i o j como la unidad imaginaria √−1. Si se expresa un número complejo en su forma binómica como z = (a + bi), su conjugado es zconj = (a − bi) (definido con el comando conj (z)). Otros comandos utilizados en la operatoria con complejos son:
  • real(x): calcula la parte real de un número complejo x
  • imag(x): calcula la parte imaginaria del número complejo x
  • abs(x): calcula el modulo de un número complejo
  • angle(x): calcula el valor del ángulo entre −π y π que representa el argumento de un número complejo. Se aplica atan2(imag(x)/real(x)).

Otros comandos y funciones.
  • rand (,), (): genera matrices con números al azar.
  • tic;<>; toc: contabiliza el tiempo que tarda en ejecutar las operaciones que están definidas entre las dos palabras clave.
  • who: muestra las variables que están disponibles.
  • whos: igual a who solo que además indica el tamaño usado por las variables.
  • clear: borra todas las variables, si se especifica también se puede borrar una variable en especial.
  • clc: lleva el prompt al inicio de la pantalla, también se usa igual el comando home.


Graficar funciones.

Para graficar funciones se lo realiza mediante el uso de vectores, en donde se define el dominio de la función con intervalo que se desee evaluar (“resolución de la funcion”), y se usa el comando plot(,).

octave:60> x=0:0.1:10;
octave:61> y= 3*x+3;
octave:62> plot(x,y)




En el ejemplo se grafica f(x) = y = 3X + 3; evaluado cada 0.1 unidades, de cero a 10.
Para un polinomio en “x” f(x) = X 2 + 2X

octave:63> y= x.^2+2*x+3;
octave:64> plot(x,y)

Se deben tener en cuenta como se operan los vectores, para elevar al cuadrado se debe optar por “.^” porque es un error elevar un vector al cuadrado. También es posible realizar gráficos con coordenadas polares con el comando polar(<ángulo>, ).

Ejemplo:
Rosa de tres pétalos:
octave:26> angulo=0:pi/60:2*pi;
octave:27> radio=10*sin(3*angulo);
octave:28> polar(angulo,radio)

Existen varias opciones que permiten modificar el gráfico, algunas son:
  •   title: Pone titulo al grafico, se usa title(’TITULO’)
  •   xlabel: Pone una etiqueta al eje x, xlabel(‘DISTANCIA’)
  •   ylabel: Pone una etiqueta al eje y, ylabel(‘ALTURA’)

domingo, 9 de agosto de 2009

Producto de polinomios en la fx-7400G

Para muchos de los que poseemos la calculadora mencionada es bien conocido que las operaciones posibles son un tanto restringidas, pero si hacemos buen uso de las posibilidades que se ofrecen en su programación es posible obtener una gran gama de utilidades. A continuación se presenta un programa con el cual será de suma facilidad realizar el producto de dos polinomios de una forma sencilla y no con engorrosas operaciones que implica hacerlo sobre el papel y haciéndose muy común el error.

El modo de uso es el siguiente, primero solicita el polinomio A, este se debe ingresar a modo de lista especificando los coeficientes numéricos del polinomio.

Ejemplo:
3x+1 => se escribiría {3,1}, 3x^2+1 => {3 ,0 ,1}, es importante notar que cuando faltan coeficientes se los debe llenar con ceros.

Cuando solicita el polinomio B el formato a escribir es el mismo anterior, luego con un simple EXE el resultado se mostrara en el mismo formato de coeficientes del polinomio resultante.

El programa que llamen POLIP

= POLIP=

"A" ? &F List 1 &EXE //Solicita polinomio A
"B" ? &F List 2 &EXE // Solicita polinomio B
Dim List 1 &F M &EXE // Dimension polinomio A (M)
Dim List 2 &F N &EXE // Dimension polinomio B (N)
M+N-1 &F P&EXE //Dimension del polinomio resultante (P)
Seq(0C, C, 1, P, //Inicializa la lista 6 como lista auxiliar
1) &F List 6 &EXE //Donde los resultados se acumulan
For 0 &F I To (N //Recorrido para el polinomio B
-1) &EXE
For 0 &F J To (M //Recorrido para el polinomio A
-1) &EXE
List 6 [P-I-J] //Suma el resultado paracial al actual,
+List 1 [M-J] x //y guarda en la misma posicion
List 2 [N-I] &F
List 6 [P-I-J] &EXE
Next &EXE
Next &EXE
List 6 &EXE //muestra el resultado

Un ejemplo sencillo de producto de polinomios, (2X+3)(5X+1)= 10X^2+17X+3:

A?

{2, 3}

B?

{5, 1}

Ans

[10

17

3]

Es mas o menos lo que seria el resultado y su modo de uso. Una nota adicional es que tengan cuidado con los datos que tienen en las listas 1,2 y 6 puesto que estos son alterados por el programa, ya que este hace uso de dichas listas y los valores anteriores serian borrados. Espero haber sido claro y si surgen dudas miren las otras entradas del blog porque creo que por allí podria estar la respuesta.

viernes, 22 de agosto de 2008

CASIO FX-7400G PLUS: Programa MT SMXN

El siguiente programa permite solucionar sistemas de ecuaciones algebraicas de primer orden teóricamente para n variables, para ello se vale de la matriz aumentada del sistema y a la cual se le aplica la eliminación de Gauss Jordan. El programa ya ha sido probado debidamente, pero es de aclarar que el autor no se hace responsable por ningún daño o consecuencia que se derive del uso del programa. También es importante tener idea de cómo funciona el programa, para así no tener ningún inconveniente.

Para ingresar la matriz, se hace uso de la lista 1, se ingresa al modo LIST y se ingresan los valores consecutivamente de izquierda a derecha y en orden de filas descendente de la matriz aumentada del sistema, de tal forma que quedará todo en forma de una sola columna, luego se procede a ejecutar el programa desde el modo PRGM, al solicitar VARS se digita el numero de variables del sistema y entonces se debe esperar por algún tiempo dependiendo de la complejidad del cálculo y la respuesta se presentará como una lista. El programa hace uso de la lista 6, por ello si ha datos allí se borrarán y serán cambiados por las respuestas respectivas; también es de aclarar que usa muchas de las 26 variables (A, B, C…), y por ello sus valores almacenados serán borrados.

Un último detalle, el programa usa otro auxiliar llamado “MTAUX” ( si tienes alguna duda del lenguaje revisa Calculadora CASIO fx-7400G PLUS ) que es:
  • = MTAUX=
    Dim List 1 &F S &EXE
    If T=0 &EXE
    Then List 1 &EXE
    Seq(U,U,1,2S,1) &F List 1 &EXE
    For 1 &F U To 2S &EXE
    List Ans [(U-1) Rmdr S+1] &F List 1 [U] &EXE
    Next &EXE
    Else If T=-1 &EXE
    Then Seq(List 1 [U+ S/2],U,1,S/2,1) &EXE
    List Ans &F List 1 &EXE
    Else If T>0 &EXE
    Then For 1 &F U To Z &EXE
    List Ans[U] &F List 1[Z(T-1 )+U] &EXE
    Next &EXE
    IfEnd &EXE

Ahora está el programa principal:

  • = MT SMXN =
    “VARS”? &F Y &EXE
    Y+1 &F Z &EXE
    Dim List 1 ¡= YxZ => Stop &EXE
    0 &F T &EXE
    Prog “MTAUX” &EXE
    For 1 &F V To Y &EXE
    List 1 [(V-1)Z+V] &F X &EXE
    X = 0 => Stop &EXE
    Seq(List 1[(V-1)Z+U],U,1,Z,1) &EXE
    List Ans &D X &F List 6 &EXE
    For 1 &F W To Y &EXE
    W &F T &EXE
    If W = V &EXE
    Then List 6 &EXE
    Prog “MTAUX” &EXE
    Else Seq( List 1 [(w-1)Z+U],U,1,Z,1) &EXE
    List Ans – List 1[(W-1)Z + V] x List 6 &EXE
    Prog “MTAUX” &EXE
    IfEnd &EXE
    Next &EXE
    Next &EXE
    Seq (List 1 [ZU],U,1,Y,1) &F List 6 &EXE
    -1 &F T &EXE
    Prog “MTAUX” &EXE
    List 6 &EXE

Espero lo disfruten y no tengan inconvenientes.