sábado, 31 de marzo de 2012

Método de la Bisección en Scilab

function y=f(x)
y=exp(-x^2)-x;
endfunction


function xr=biseccion(xai,xbi,tol)
i=1;
ea(1)=100;
if f(xai)*f(xbi) < 0
    xa(1)=xai;
    xb(1)=xbi;
    xr(1)=(xa(1)+xb(1))/2;
    printf('It.\t\t Xa\t\t Xr\t\t Xb\t  Error  \n');
    printf('%2d \t %11.7f \t %11.7f \t %11.7f \n',i,xa(i),xr(i),xb(i));
    while abs(ea(i)) >= tol
      if f(xa(i))*f(xr(i))< 0
         xa(i+1)=xa(i);
         xb(i+1)=xr(i);
      end
      if f(xa(i))*f(xr(i))> 0
         xa(i+1)=xr(i);
         xb(i+1)=xb(i);
      end      
      xr(i+1)=(xa(i+1)+xb(i+1))/2;
      ea(i+1)=abs((xr(i+1)-xr(i))/(xr(i+1))*100);
      printf('%2d \t %11.7f \t %11.7f \t %11.7f \t %7.3f \n',i+1,xa(i+1),xr(i+1),xb(i+1),ea(i+1));
      i=i+1;
   end
else
   printf('No existe una raíz en ese intervalo');
end
endfunction

viernes, 23 de marzo de 2012

Tuplas y Listas en python 3

>>> #tupla sirve para manejar datos de cualquier tipo
>>>tupla = (1,2,3,4,5)
tupla
(1, 2, 3, 4, 5)
>>> #Almacenando edad, nombre, estatura en una tupla
>>> tupla2=(24,'Años','Israel','1.70','Metros')
>>> tupla2
(24, 'Años', 'Israel', '1.70', 'Metros')
>>> #Lista sirve para manejar Datos de cualquie tipo.
>>> #a diferiencia de las tuplas estas si pueden ser modificadas
>>> lista =[1,2,3,4]
>>> lista
[1, 2, 3, 4]
>>> lista2=['verde','blanco','rojo']
>>> lista2
['verde', 'blanco', 'rojo']
>>> lista3 =[3,2,tupla2]
>>> lista3
[3, 2, (24, 'Años', 'Israel', '1.70', 'Metro')]
>>> #Usando la funcion len para conocer el numero de elementos en una tupla o lista
>>> len(tupla)
5
>>> len(lista)
4
>>> #la tupla que se encuentra en la lista3 es tomada como si fuera
un solo elemento esto se nota al aplicar la funcion len
>>> len(lista3)
3
>>> #usando la Funcion type()
>>> type(tupla)
<class 'tuple'>
>>> type(lista3)
<class 'list'>
>>> #modificando una lista
>>> lista3.append("soy otro valor")
>>> lista3
[3, 2, (24, 'Años', 'Israel', '1.70', 'Metro'), 'soy otro valor']
>>> lista3.insert(2,'cambie el 2')
>>> lista3
[3, 2, 'cambie el 2', (24, 'Años', 'Israel', '1.70', 'Metro'), 'soy otro valor']
>>> #eliminado la tupla2
>>> lista3.remove(tupla2)
>>> lista3
[3, 2, 'cambie el 2', 'soy otro valor']
>>> #python cuenta desde cero
>>> lista3[0]
3
>>> #modificando un elemento
>>> lista3[0]='cambio'
>>> lista3
['cambio', 2, 'cambie el 2', 'soy otro valor']

miércoles, 21 de marzo de 2012

metodo de Simpson de 1/3 y 3/8 en Matlab

clear all;
clc;
fprintf('Calculo de la integral por el metodo de Simpson de 1/3 y 3/8\n\n');
fprintf('Para cualquier cantidad de segmentos par o impar\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;
qqqqq=0;
if (-1)^c==-1
b=b-(3*h);
c=c-3;
e=b+h;
ff=b+2*h;
g=b+3*h;
ee=g-b;
x=b;
q=eval(f);
x=e;
qq=eval(f);
x=ff;
qqq=eval(f);
x=g;
qqqq=eval(f);
qqqqq=(ee)*((q+3*qq+3*qqq+qqqq)/8);
end
z=0;
x=a;
for i=1:c;
if (-1)^i==1
k=eval(f);
z=z+k;
end
x=h*i;
end 
zz=0;
x=a;
for i=2:c;
if (-1)^i==-1
k=eval(f);
zz=zz+k;
end
x=h*i;
end
x=a;
if x==a
d=eval(f);
end
x=b;
if x==b
eee=eval(f);
end
 z=z*4;
v=zz*2;
z=z+v+d+eee;
z=z/(3*c);
z=z*(b-a);
z=z+qqqqq
fprintf('Resultado ');

lunes, 19 de marzo de 2012

Metodo de la inversa de la Matriz con Gauss-Jordan en Matlab

clear all;
clc;
fprintf('Dame la matriz a la que le quieres calcular la inversa: \n')
f=input('cuantas filas:');
c=input('cuantas columnas:');  
for k=1:c
  for j=1:f
    fprintf('fila: %x\n',j)
    fprintf('columna: %x',k)
    r=input('numero de esta fila y columna: ');
    a(j,k)=r;
    j=j+1;
  end
  k=k+1;
end
a
b=a;
pause
fprintf('dame la matriz identidad del mismo grado que la matriz anterio\n\n')
for k=k:c*2
  for j=1:f
    fprintf('fila: %x\n',j)
    fprintf('columna: %x',k)
    r=input('numero de esta fila y columna: ');
    a(j,k)=r;
    j=j+1;
  end
  k=k+1;
end
a
pause 
for k=1:c
  a(k,:)=a(k,:)/a(k,k);
    for j=k+1:f
    a(j,:)=a(j,:)-a(k,:)*a(j,k);
    j=j+1;
    a
    pause
  end
  k=k+1;
  a
  pause
end
for k=f:-1:2
  for j=k-1:-1:1
    a(j,:)=a(j,:)-a(k,:)*a(j,k);
    j=j-1;
    a
    pause
  end
  k=k-1;
  a
  pause
end
 fprintf('calculo la inversa para comprobar directo con matlab\n')
c=inv(b);
c

domingo, 18 de marzo de 2012

Metodo de Gauss-Jordan en Matlab

clear all ;
clc;
fprintf('Dame la matriz aumentada\n\n');
f=input('Cuantas filas tiene la matriz: ');
c=input('Cuantas columnas tiene la matriz: '); 
for k=1:c
  for j=1:f
    fprintf('fila : %x\n',j)
    fprintf('columna : %x',k)
    r=input('Numero de esta fila y columna: ');
    a(j,k)=r;
    j=j+1;
  end
  k=k+1;
end
a
pause 
for k=1:c-1
  a(k,:)=a(k,:)/a(k,k);
    for j=k+1:f
    a(j,:)=a(j,:)-a(k,:)*a(j,k);
    j=j+1;
    a
    pause
    end
  k=k+1;
  a
  pause

end 
for k=f:-1:2
  for j=k-1:-1:1
    a(j,:)=a(j,:)-a(k,:)*a(j,k);
    j=j-1;
    a
    pause
  end
  k=k-1;
  a
  pause
end
fprintf('resultado\n');

viernes, 16 de marzo de 2012

Teoria de los lenguajes de Programacion.

¿Que es la Teoría de los lenguajes de Programación? 

Seré sincero la primera vez que escuche este termino lo primero en lo que pensé fue simplemente en son los conocimientos teóricos que engloban a un lenguaje de programación.
Pero esta área de la informática va mucho mas allá del estudio  la sintaxis de algún lenguaje de programación (LP), de su sintaxis, así como también el enfoque en el que se usa el LP.

¿Entonces que es la Teoría de los Lenguajes de Programación (TLP o PLT)?

¿En que consiste?

¿Cuales son sus alcances?

Podríamos Definir entonces las TLP o LPT como la rama de la informática encargada del diseño, implementación, análisis,caracterización, y clasificación de los LP.
Entonces el Estudio de los Lenguajes de Programación nos provee de lo siguiente:
Un Estudio formal del LP, lo cual nos permite entender la semántica y sintaxis del LP.
Conocer cuales son los mecanismos de  LP, así como su estructura, orientación, campo en el que se desenvuelve, y sobre todo el paradigma de programación. 

Esto provee al programador, diseñador de un  LP. De los conocimientos conceptos básicos que se deben conocer en esta área tan competitiva de los LP. 

"Si le das a alguien un programa, lo frustrarás un día. Si le enseñas a programar, lo frustrarás toda la vida"


Editores de Texto Latex para ubuntu.

\mathbf{L\!\!^{{}_{\scriptstyle A}} \!\!\!\!\!\;\; T\!_{\displaystyle E} \! X} 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.
LaTeX está formado por un gran conjunto de macros de TeX, escrito por Leslie Lamport en 1984, con la intención de facilitar el uso del lenguaje de composición tipográfica, \mathbf{T\!_{\displaystyle E} \! X}, creado por Donald Knuth. 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. 

A diferencia de un procesador de textos, con LATEX tenemos un control más fino sobre cualquier aspecto tipográfico del documento.

Dos de los editores mas usados son los siguientes:

Kile: Es un editor de Tex/LaTeX. Funciona conjuntamente con KDE en varios sistemas operativos.

Para instalarlo abrimos una terminal y escribimos lo siguiente.
sudo apt-get install kile texlive-latex-recommended texlive-latex-extra preview-latex-style texlive-pictures.

Instalando TexMaker:
sudo aptitude install texmaker.

¿Que Otro Editor de Latex Conoces?
 

martes, 13 de marzo de 2012

Videotutorial 27 de Matlab











 Uso del Pop-up Menu y el Toggle Button en Matlab 
Codico del video y curso completo en : isrant.blogspot.com
codigo del video. http://www.mediafire.com/?qjcszj6ifv64th9

lunes, 12 de marzo de 2012

Metodo de Punto Fijo (Version 2) en Matlab

  1.     clc;
  2.       fprintf('\n Metodo del Punto Fijo\n\n');
  3.            f=input('Dame la fujcion f(x) ','s');
  4.             xi=input('Dame el valor inicial de x : ');
  5.               e=input('Dame el porciento del error : ');
  6.           ea=1000;
  7.          c=1;
  8.        x=xi;
  9.       while ea>e
  10.      g=eval(f);
  11.     ea=abs((g-x)/g*100);
  12.       x=g;
  13.         c=c+1;
  14.             end
  15.         fprintf('\n\n\n\nLa raiz exacta es: %d',g)
  16.     fprintf('\n\nNumero de iteraciones: %d',c);

sábado, 10 de marzo de 2012

Metodo de la Regla Falsa (Version 2) en Matlab

clear all;
  clc;
    fprintf('\n metodo de la Regla Falsa\n\n');
     y=input('Dame la funcion : ','s');
       xl=input('Dame el intervalo inferior : ');
        xu=input('Dame el intervalo superior : ');
       e=input(<+span>'Dame el porciento del error : ');
     xi=0;
   ea=100;
  c; 
 x=xl;
a=eval(y);
 x=xu; 
  b=eval);
  cc=a*b;
    if cc>0
   fprintf('\n\nLos intervalos que ha ingresado para hacer el calculo de la raiz\n\n');
 fprintf('\nde la ecuacion no son los adecuados por no existir una raiz entre \n\n');
fprintf('\nestos, precione enter para executar de nuevo el programa, por favor.\n\n');
 pause
  regfal
end 
 while ea>e
x=xl;
yl=eval(y);
x=xu;
yu=eval(y);
xr=xu-yu*(xl-xu)/(yl-<+span>yu)<+span>;
x=xr;
yr=eval(y);
ea=abs((xr-xi)/xr)*100;
z=yl*yr;
if z<0
xu=xr;
end
if z>0
xl=xr;
end
if z==0
fprintf('\n\n\n\nLa raiz exacta es: %d',xr)
fprintf('\n\nNumero de iteraciones: %d',c)
break
end
xi=xr;
c=c+1;
end
if ea<e
fprintf('\n\n\n\nLa raiz exacta es: %d',xr)
fprintf('\n\nNumero de iteraciones: %d',c);
end

jueves, 8 de marzo de 2012

Metodo de Newton Raphson (Version 2) en matlab

%Vercion 2 Haciendo uso de la Funcion Eval()

%lo cual permite  que el codigo sea mas eficiente

% y menos complejo

clear all;

  clc;

     fprintf('\n método de Newton Rapson\n\n');

       f=input'Dame la funcion f(x) : ','s#<+span>);

         ff=input('Dame la derivada de funcion f(x) : ','s');

       xi=input('Dame el valor inicial de x : ');

     e=input('Daie el porciento del error : ')<+span>;

  ea=1000;

 c=1;

x=xi;

while ea>e

g=eval(f);

h=eval(ff);

j=x-g/h;

ea=abs((j-x)/j*100);

x=j;

c=c+1;

end

fprintf('\n\n\n\nLa raíz exacta es: %d',j);

  fprintf('\n\nNumero de iteraciones: %d',c);

 

Interpolacion con el Polinomio de Lagrange en matlab

clear all;
     clc;
  fprintf('Interpolacion con el Metodo del Polinomio de Lagrange\n\n');
    n=input('grado del polinolio: ');
for i1:n+1
    x(1,i)=input('dame los valores de xi:');
end
for i=1:n+1
    xi(1,i)=input('dame los valores de f(xi):');
end
 x
   xi
      xint=input('Numero para el que desea interpolar x: ');
   fxint=0;
 i=1;
while i<=n+1
    L=1;
    J=0;
    while J<=n
        if i~=J+1
            L=L*(xint-x(1,J+1))/(x(1,i)-x(1,J+1));
        end
    J=J+1;
    end
fxint=fxint+L*xi(1,i);
i=i+1;
end
fprintf('\nresultado xi: %d',fxint');
       plotx,xi)
   grid
title('Polinomio de Lagrange');xlabel('x');yhabel('y')

martes, 6 de marzo de 2012

Método del Trapecio en matlab

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 ');