domingo, 14 de diciembre de 2014

Midiendo el tiempo de Ejecución de una multiplicacion de matrices en PERL

En este programa hacemos algunas consideraciones de tiempo para la ejecucion de programas o de fragmentos de un programa.

En este caso vamos a analizar como medir el tiempo en PERL entre dos momentos diferentes, esto sera importante mas adelante cuando sea muy importante medir la eficiencia de nuestros programas


 

 Esperamos que sigan pendientes de las proximas entradas...

miércoles, 26 de noviembre de 2014

Ecuacion de Laplace: Solución de ecuaciones diferenciales parciales (elipticas)con valores en la frontera mediante el método de diferencias finitas

En cálculo vectorial, la ecuación de Laplace es una ecuación en derivadas parciales de segundo orden de tipo elíptico, que recibe ese nombre en honor al físico y matemático Pierre-Simon Laplace. Introducida por las necesidades de la mecánica newtoniana, la ecuación de Laplace aparece en muchas otras ramas de la física teórica como la astronomía, la electrostática, la mecánica de fluidos o la mecánica cuántica. fuente:Wikipedia

Multiplicacion de Vector fila por Vector Columna (100 000) cien mil elementos!!!! con perl sobre windows

A continuación veremos la multiplicación de matrices básica e iniciaremos con un vector fila por un vector columna, soloque ahora lo haremos muy grande de manera gradual... esperamos que sigan visitando nuestro blog de análisis numerico en perl

miércoles, 12 de noviembre de 2014

Suma de Matrices de 3x3 en PERL

A continuación veremos la suma de matrices utilizando el lenguaje PERL Sigue visitándonos para ver mas algoritmos de algebra lineal en Lenguaje PERL

martes, 11 de noviembre de 2014

Alimentacion de una Matriz de 3x3 Usando generadores aleatorios en PERL

En este segundo video de nuestro curso de Algebra lineal en PERL desarollado por el profesor Felipe Gallego, el estudiante del curso y tambien docente Carlos A Garcia presenta su versión de la generación de números aleatorios para alimentar una matriz de 3x3.

 

Este programa es importante porque algunos conceptos serán utilizados en los próximos videos de nuestro curso de álgebra lineal, tales como Eliminación de Gauss,

Eliminación de Gauss Jordan para resolución de sistemas de ecuaciones.

Gracias por compartir esta entrada en tus redes sociales, y recuerda visitar el sitio web www.ingecursos.com el portal # 1 de cursos academicos en colombia


domingo, 9 de noviembre de 2014

Alimentar los elementos de una Matrix de 3x3 utilizando PERL

Este programa introduce el concepto de una matriz y de la forma de llenar valores a cada uno de sus elementos. Elegimos el lenguaje PERL por ser muy usado en bioinformatica y con muy buenas librerias para el analisis numerico Vamos a llenar la matriz y luego a mostrarla.

  Esp

Espero que podamos pronto hacer un curso de perl completo para las personas que viven en manizales y que podamos poblicarlo en www.ingecursos.com la plataforma numero 1 de cursos  en colombia

viernes, 7 de noviembre de 2014

Método de Simpson






I.     INTRODUCCIÓN

Los ingenieros encontramos con frecuencia los problemas de integrar funciones que están definidas en forma de tabla o en forma gráfica, y no específicamente como funciones explícitas. Podemos usar métodos gráficos, sin embargo debemos admitir que los métodos numéricos son mucho mas precisos.
Como un objetivo definido de este informe es investigar sobre la regla de simpson y aplicarla a problemas cotidianos con los que nos encontramos los ingenieros.

II.     Método numérico: Regla de simpson

Una forma de obtener una aproximación adecuada de una integral es usar polinomios de grado superior para unir los puntos y aproximar la función real.

El método de Simpson, a diferencia de la Regla trapezoidal, intenta no incurrir en un mayor número de subdivisiones; se trata de ajustar una curva de orden superior en lugar de una línea recta como en la Regla Trapezoidal.






1. Programa en C++

Problema #3 – programado

#include
#include
#include
#include
#include
#include
#include

int Lee_Datos(void);

int Nseg;
float a,b;
double Xi;
float X[10];
float Fx[10];
int main (void)
{
int i;
float Base;
double Area;
double SumMulti = 0;
double SumResto = 0;

Lee_Datos();

Base = (b-a)/Nseg;
Xi = a;
printf("\nDatos Tabulados.......");
printf("\n-------------------------");
printf("\n| i | Xi | Funcion");
printf("\n-------------------------");
printf("\n| 0 | %.2f | %.4lf",a,Fx[0]);
for ( i=1; I ;);

Métodos numéricos, Derivación numérica

La derivación numérica es una técnica de análisis numérico para calcular una aproximación a la derivada de una función en un punto utilizando los valores y propiedades de la misma.
Por definición la derivada de una función f(x) es:

f′(x)=limh→0f(x+h)−f(x)h
Las aproximaciones numéricas que podamos hacer (para h > 0) serán:
Diferencias hacia adelante:
f′(x0)≈f(x0+h)−f(x0)h
Diferencias hacia atrás:
f′(x0)≈f(x0)−f(x0−h)h
La aproximación de la derivada por este método entrega resultados aceptables con un determinado error. Para minimizar los errores se estima que el promedio de ambas entrega la mejor aproximación numérica al problema dado:

Diferencias centrales:
f′(x0)≈f(x0+h)−f(x0−h)2h

f′′(x0)≈f(x0+h)−2f(x0)+f(x0−h)h2

jueves, 6 de noviembre de 2014

Metodo del Trapecio


INTRODUCCIÓN


En matemática la regla del trapecio es un método de integración numérica, es decir, un método para calcular aproximadamente el valor de la integral definida.


MÉTODO DEL TRAPECIO:


La regla se basa en aproximar el valor de la integral de f(x) por el de la función lineal que pasa a través de los puntos (a, f(a)) y (b, f(b)). La integral de ésta es igual al área del trapecio bajo la gráfica de la función lineal. Se sigue que

Y el error es:
La regla del trapecio s es una forma de aproximar una integral definida utilizando n trapecios. En la formulación de este método se supone que f es continua y positiva en el intervalo [a,b].
De tal modo la integral definida  representa el área de la región delimitada por la gráfica de f y el eje x, desde x=a hasta x=b. Primero se divide el intervalo [a,b] en n subintervalos, cada uno de ancho.
Después de realizar todo el proceso matemático se llega a la siguiente fórmula:
Donde h = 
 y n es el numero de divisiones.

La expresión anterior también se puede escribir como:
Ejemplo:



Primero obtenemos la h, y se obtiene de los límites de la integral que representan a y b y nos queda:
Y ahora sustituimos en la formula:
Y nos queda:


Aplicaciones del Método Trapecio:

EN MATLAB 



  CODIGO EN MATLAB JA DEL TRAPECIO
clear all; 
clc; 
fprintf('Calculo de la integral por el metodo trapecial\n\n'); 
f=input('introduce la funcion:','s'); 
a=input('lime inferior:'); 
b=input('limite superior:'); 
c=input('numero de segmentos a dividir:'); 
h=(b-a)/c; 
z=0; 
for x=a:h:b
k=eval(f);
if x==a,d=k;
end
if x==b,e=k;
end
z=z+k;
end 
z=z-d-e; 
z=z*2; 
z=z+d+e; 

z=z/(2*c); 
z=z*(b-a) 
fprintf('Resultado ');

CONCLUSIONES



·         Este trabajo lo realizamos para aprender los diferentes método como es El método de trapecio el cual nos permite identificar la integral de f(x) por el de la función lineal que pasa a través de los puntos (a, f(a)) y (b, f(b)).

BIBLIOGRAFIA:

·         Hostetler Edwards, Larson: Calculo I (Octava edición)

·         http://books.google.com.co/books?id=xQdP_z4ateoC&pg=PA8&lpg=PA8&dq=aplicaciones+del+metodo+del+trapecio+en+matlab&source=bl&ots=SJG5egMFZP&sig=CGzeVX9BDFojB1sQRMWyhLmMRDo&hl=es&sa=X&ei=X-9aVKaZDYWryQTZ94DQDA&ved=0CCkQ6AEwAg#v=onepage&q=aplicaciones%20del%20metodo%20del%20trapecio%20en%20matlab&f=false 


















Metodo de Trapecio


domingo, 19 de octubre de 2014

metodo de gauss-Seidel



El método de gauss-Seidel nos permite encontrar la solución a un sistema de n ecuaciones con n incógnitas.
En análisis numérico el método de Gauss-Seidel es un método iterativo utilizado para resolver sistemas de ecuaciones lineales.
El método se llama así en honor a los matemáticos alemanes Carl Friedrich Gauss y Philipp Ludwig von Seidel

El método de Gauss-Seidel es un método iterativo, es decir, debe aplicarse recursivamente hasta encontrarse una ecuación adecuada o con un error considerablemente pequeño.
Para resolver el método de gauss-seidel de deben realizar unos pasos:
  • ·         Observar si el sistema es convergente
Cuando el valor absoluto del término de la diagonal principal es mayor a la sumatoria de los absolutos de los demás coeficientes
  • ·         Definir los valores iniciales
Se asignan valores arbitrarios a las incógnitas
  • ·         Despejar las incógnitas
Se despejan las incógnitas que se encuentran en la diagonal principal
  • ·         Resolver el procedimiento
Se resuelven las ecuaciones teniendo en cuenta que inmediatamente se encuentre una posible solución esta debe ser reemplazada en la siguiente secuencia de operaciones
  • ·         Prueba final
Se reemplazan las soluciones finales en las ecuaciones originales y debe dar exactamente lo mismo de lo contrario de debe volver a empezar.

jueves, 16 de octubre de 2014

Ecuación Caracteristica Y Método de Krylov

Ecuacion Caracteristica:
Existen fenomenos fisicos que al ser modelados matematicamente, conducen a un problema de valores caracteristicos, el cual consisten en obtener soluciones diferentes.

Ax=λx
En donde A es una matriz de orden nXn, x es vector de incógnitasy λ un escalar.

Para garantizar que el sistema sea compatible indeterminado se debe igualar a cero el determinante de la matriz de coeficientes del sistema; asi:

det |A-λI|=0
Donde I es la matriz identidad.

 Método de Krylov:
Consiste en aplicar el teorema de Hamilton-Cayley que establece:
"Toda matriz A verifica su propia ecuacion caracteristica".

miércoles, 15 de octubre de 2014

Método de Gauss-Jordan (Video)


Video Metodo Jacobi


METODOS DE JACOBI Y GAUSS-JORDAN

INTRODUCCIÓN


Los métodos de Jácobi y Gauss – Jordán son los equivalentes en la solución de sistemas de ecuaciones lineales al método de aproximaciones sucesivas en la solución de ecuaciones algebraicas y trascendentes.

Consiste básicamente en obtener una ecuación de recurrencia (matricial en este caso) y proponer un vector solución inicial; posteriormente, se deberá realizar las iteraciones necesarias hasta que la diferencia entre dos vectores consecutivos cumpla con una tolerancia predefinida.


MÉTODO DE JACOBI:

Sea el sistema de ecuaciones lineales AX=b, donde A es la matriz de coeficientes, X es el vector de incógnitas y b el vector de términos independientes.
En la ecuación 1 se puede sustituir a la matriz A por la suma de dos matrices:
En donde la matriz D es una matriz cuyos elementos son cero excepto los elementos

de la diagonal que corresponden a los elementos de la matriz A y R que es una matriz con ceros en la diagonal y sus restantes elementos coindicen con los respectivos de A.



Sustituyendo la ecuación 2 en la ecuación 1:



Despejando el término

Premultiplicado por la matriz D-1

Resulta:

La ecuación 6 no aporta una solución por sí misma, si se observa desde la óptica del algebra matricial. Sin embargo, si se aplica desde una forma recursiva:
Para k=0, 1, 2,……, n y donde X (K) representa un vector solución inicial y X (k+1) representa una aproximación posterior a la inicial X (k). Se puede constatar claramente que la ecuación 7 es totalmente representativa de un método de aproximaciones sucesivas.
Esta ecuación 7 requiere de un breve análisis para su aplicación práctica. En principio, la matriz D, detallada en 4 solo posee elementos diferentes de cero (que corresponden a los de A) en su diagonal principal. Es fácilmente comprobable que la matriz inversa D-1  también posee únicamente valores diferentes de cero en su diagonal principal y que estos valores corresponden a los recíprocos  de sus valores en la matriz A, es decir, será 1/aii .  Por otra parte, el resto de los elementos de cada renglón de la matriz A se encuentran en la matriz R y son restados del vector de términos independientes.
En contexto, la ecuación 7 equivale, a partir del sistema de ecuaciones lineales, a despejar a la incógnita ubicada en la diagonal principal de cada una de las ecuaciones que conforman el sistema, de las siguientes formas:



El método de Jácobi propone que el vector inicial X0  sea igual a cero. A partir de esta propuesta, el vector siguiente X1= bi/aii, es decir, el elemento independiente entre el coeficiente de la diagonal principal para cada ecuación.


Este vector X (1) se sustituye en las ecuaciones 8 obteniendo el siguiente vector X (2). El proceso se realiza consecutivamente hasta que la norma entre dos vectores consecutivos es menor que cierta tolerancia preestablecida.
La norma 0 se calcula como:





Criterio de convergencia

El método de Jácobi e susceptible de los efectos del pivoteo. En consecuencia, su criterio de convergencia lo conforman los criterios de la diagonal, mismo que posee dos condiciones:
1.        Condición necesaria: es condición necesaria que el elemento ubicado en la diagonal principal de cada ecuación sea mayor en el valor absoluto que el resto de los elementos de la misma ecuación.




1.        Condición suficiente: el elemento ubicado en la diagonal principal de cada ecuación sea mayor en valor absoluto que la suma del resto de los elementos de la misma ecuación.
CODIGO MATLAB JACOBI:

clear all
clc
fprintf('Resolución del sistema Ax = b por \n');
fprintf('Jácobi \n\n')
n=input('Ingrese el orden del sistema = ');
fprintf('\n');
fprintf('Matriz coeficientes del sistema \n\n')

for i=1:n
   for j=1:n
      fprintf('coeficiente A(%d,%d) = ', i,j ) % Definición de la matriz A
      A(i,j)=input(' ');
   end
end

fprintf('\nVector términos independientes \n\n')

for i=1:n
      fprintf('término b(%d) = ', i ) % Definición del vector b
      b(i)=input(' ');
end

b=b';

fprintf('\nVector aproximación inicial\n\n')

for i=1:n
   fprintf('xo(%d) = ', i ) % Definición de la aproximación inicial
   xo(i)=input(' ');
end

xo=xo';

e=input('\nIngrese el valor de la tolerancia = '); % Definición de la tolerancia
fprintf('\n');

for i=1:n
   c(i)=b(i)/A(i,i); % Cálculo del vector c
   for j=1:n
      if i==j T(i,j)=0; , else T(i,j)=-A(i,j)/A(i,i);, end % Cálculo de la matriz T
   end
end

c=c';

Er=A*xo-b;

while norm(Er,inf)>=e
  
   x=T*xo+c;
   xo=x;
   Er=A*xo-b;  
end

disp(x)

METODO DE ELIMINACION COMPLETA DE GAUSS-JORDAN

Este método consiste en obtener sistemas equivalentes a partir del sistema original dado, utilizando las operaciones elementales sobre los renglones de la matriz ampliada del sistema, que son:

1.        Intercambiar un renglón por otro; esto equivale a reordenar las ecuaciones del sistema.
2.        Multiplicar todos los elementos de un renglón por un escalar diferente de cero; operación que es equivalente a multiplicar una ecuación por una constante.
3.        Sumar los elementos correspondientes de dos renglones, que es equivalente a sumar término a término las ecuaciones del sistema.

El método de Gauss-Jordan consiste en sistematizar la obtención de sistemas equivalentes hasta obtener uno en el cual la matriz del sistema se convierta en la matriz identidad I; a partir de este último se podrá observar la solución directamente.
Los pasos a seguir para la obtención de sistemas equivalentes con el método de Gauss-Jordan son:

. Seleccionar un elemento diferente de cero como pivote; éste debe ser algún elemento de la matriz de coeficientes.

. Convertir en uno el elemento pivote mediante operaciones elementales.

. Convertir en cero todos los elementos de la columna donde se encuentra el elemento pivote.

. Seleccionar un nuevo pivote, el cual no debe estar ni en el renglón ni en la columna donde se encontraba(n) el(los) pivote(s) anterior(es).

. Repetir los pasos anteriores hasta obtener una matriz de coeficientes formada solamente con unos y ceros, en caso necesario intercambiar renglones para obtener la matriz identidad. En el sistema de ecuaciones correspondiente a esta última matriz se observará la solución.

ERRORES EN EL METODO GAUSS-JORDAN

El método de Gauss- Jordan es un método directo, por lo tanto su solución debería ser exacta; sin embargo no lo es, debido a los errores de redondeo que se presentan en el desarrollo del mismo.

Ejemplo:

1.        Tomemos el siguiente sistema de 3 ecuaciones con 3 incognitas


Presentamos el sistema de ecuaciones por medio de una matriz aumentada
Solución:

CODIGO MATLAB GAUSS-JORDAN

 function [x,iter]=newton(x0,f,df)
% Algoritmo Newton-Raphson
N = 100; eps = 1.e-5; %Defino max. Numero. iteraciones y error
maxval = 10000.0; % Defino valor para divergencia
x=x0;
while (N>0)
    xn = x-f(x)/df(x);%Funcin de Newton
    if abs(f(xn))<eps
       x=xn;iter=100-N;
       return;
    end;
    if abs(f(x))>maxval
       disp(['# de Iteraciones = ',num2str(iter)]);
       error('La Solucion Diverge');
       break;
    end;
    N = N - 1;
    x = xn;
end;
error('No Converge');
return;
% Fin de la Funcion

CONCLUSIONES


·         Se concluye cuan pesada es una diagonal, no se establece una relación numérica que nos diga la relación que debe guardar el elemento aii sobre el resto de los coeficientes aij  de su ecuación. En todo caso, entre más evidente sea el dominio de los elementos sobre la diagonal principal, más rápida será la convergencia de la solución.
·         El método de Gauss-Jordan es uno de los más  exactos para encontrar la solución de un sistema de ecuaciones algebraicas lineales.

BIBLIOGRAFIA:

Metodos numéricos_ Rafael Iriarte V. Balderrama.


















lunes, 13 de octubre de 2014

Un resumen basico : que es el calculo? (Video)

Bienvenidos. Aqui aparece un video donde se muestra de manera clara, sucinta y divertida los elementos clásicos del calculo y sus aplicaciones. Que lo disfruten!!!!



viernes, 10 de octubre de 2014

Introduccion a los Valores propios de Una Matriz...

Introduccion al concepto de Valores propios por el Magister Felipe Gallego
En álgebra lineal, los vectores propios, autovectores o eigenvectores de un operador lineal son los vectores no nulos que, cuando son transformados por el operador, dan lugar a un múltiplo escalar de sí mismos, con lo que no cambian su dirección. Este escalar \lambda recibe el nombre valor propio, autovalor, valor característico o eigenvalor. A menudo, una transformación queda completamente determinada por sus vectores propios y valores propios. Un espacio propio, autoespacio, eigenespacio o subespacio fundamental asociado al valor propio \lambda es el conjunto de vectores propios con un valor propio común. La palabra alemana eigen, que se traduce en español como propio, se usó por primera vez en este contexto por David Hilbert en 1904 (aunque Helmholtz la usó previamente con un significado parecido). Eigen se ha traducido también como inherente, característico o el prefijo auto-, donde se aprecia el énfasis en la importancia de los valores propios para definir la naturaleza única de una determinada transformación lineal. Las denominaciones vector y valor característicos también se utilizan habitualmente.

jueves, 25 de septiembre de 2014

Laniakea : el gran cumulo de galaxias

En este video vemos un gran ejemplo de representacion de vectores en el espacio, asi como de representacion de big data, por la gran cantidad de espacio, y por la gran cantidad de memoria que deben usar los procesadores y tarjetas graficas que muestran este tipo de videos en representaciones 3d de datos cientificos.

Por favor observa el siguiente video




Laniakea el gran cumulo de Galaxias (tomado de wiki)

Laniakea es el supercúmulo de galaxias al que pertenece nuestra galaxia de la Vía Láctea y por lo tanto también el Sistema Solar y la Tierra1 . Ha sido definido en septiembre de 2014, cuando astrónomos de la Universidad de Hawái liderados por Brent Tully 2 , publicaron una nueva forma de definir el término de supercúmulo conforme a las velocidades relativas de las galaxias. El nombre significa en hawaiano "Cielos inconmensurables".3

Se ha cuantificado la existencia en este supercúmulo de 100.000 (cien mil) galaxias con 100.000.000.000 (cien mil millones) estrellas en total y con 100 000 000 000 000 000 (cien mil billones) masas solares. Se trata de uno de los seis millones de supercúmulos que se calculan puedan existir en nuestro universo detectable. Laniakea posee un tamaño aproximado de 160 Mpc o 520 millones de años-luz, lo que hace que sea casi un 4 % del total del universo observable.

El nombre de Laniakea ha sido propuesto por David Nawa’a Napoleon, profesor de lengua hawaiana en la Universidad de Hawái, para la denominación del supercúmulo local.

miércoles, 24 de septiembre de 2014

Que es el analisis numerico ?

(tomado de wikipedia)



El análisis numérico o cálculo numérico es la rama de las matemáticas que se encarga de diseñar algoritmos para, a través de números y reglas matemáticas simples, simular procesos matemáticos más complejos aplicados a procesos del mundo real.

El análisis numérico cobra especial importancia con la llegada de los ordenadores. Los ordenadores son útiles para cálculos matemáticos extremadamente complejos, pero en última instancia operan con números binarios y operaciones matemáticas simples.

Desde este punto de vista, el análisis numérico proporcionará todo el andamiaje necesario para llevar a cabo todos aquellos procedimientos matemáticos susceptibles de expresarse algorítmicamente, basándose en algoritmos que permitan su simulación o cálculo en procesos más sencillos empleando números.

Definido el error, junto con el error admisible, pasamos al concepto de estabilidad de los algoritmos. Muchas de las operaciones matemáticas pueden llevarse adelante a través de la generación de una serie de números que a su vez alimentan de nuevo el algoritmo (feedback). Esto proporciona un poder de cálculo y refinamiento importantísimo a la máquina que a medida que va completando un ciclo va llegando a la solución. El problema ocurre en determinar hasta cuándo deberá continuar con el ciclo, o si nos estamos alejando de la solución del problema.

Finalmente, otro concepto paralelo al análisis numérico es el de la representación, tanto de los números como de otros conceptos matemáticos como los vectores, polinomios, etc. Por ejemplo, para la representación en ordenadores de números reales, se emplea el concepto de coma flotante que dista mucho del empleado por la matemática convencional.

En general, estos métodos se aplican cuando se necesita un valor numérico como solución a un problema matemático, y los procedimientos "exactos" o "analíticos" (manipulaciones algebraicas, teoría de ecuaciones diferenciales, métodos de integración, etc.) son incapaces de dar una respuesta. Debido a ello, son procedimientos de uso frecuente por físicos e ingenieros, y cuyo desarrollo se ha visto favorecido por la necesidad de éstos de obtener soluciones, aunque la precisión no sea completa. Debe recordarse que la física experimental, por ejemplo, nunca arroja valores exactos sino intervalos que engloban la gran mayoría de resultados experimentales obtenidos, ya que no es habitual que dos medidas del mismo fenómeno arrojen valores exactamente iguales