lunes, 10 de diciembre de 2012

Script para calcular el error de propagacion de una funcion

% Aporte de Diego Perez
syms fx x
syms F L E I
fx=(F*L^4)/(8*E*I);
dfF=diff(fx,F);
dfL=abs(diff(fx,L));
dfE=abs(diff(fx,E));
dfI=abs(diff(fx,I));
L=30;F=50;E=1.5*10^8;I=0.06;
eval(fx)
syms DfF DfL DfI DfE;
dfx=dfF*DfF+dfL*DfL+dfE*DfE+dfI*DfI;
DfF=2; DfL=0.1; DfE=0.01*10^8; DfI=0.0006;
eval(dfx)

%Aporte de Efrain Rojas
Programa para calcular error de propagación de una función


sábado, 10 de noviembre de 2012

FUNCION DIFERENCIAS DIVIDIDAS

Las entradas son dos vectores de cordenadas x,y  y el error (xint).
function diferencias_divididas(X,Y,xint)
n=length(Y);
fdd=zeros(n);

%llenando fdd con diferencias divididas
for i=1:n

   fdd(i,1)=Y(i);
end

for i=2:1:n
    for j=1:1:n+1-i
        fdd(j,i)=(fdd(j+1,i-1)-fdd(j,i-1))/(X(i+j-1)-X(j));
    end
end
Pol='';
Prod='';
for i=1:1:n-1
    Prod='';
    for j=1:1:i
        Prod=[Prod,'(X - ',num2str(X(j)),')'];
    end
    Pol=[Pol,'(',num2str(fdd(1,i+1)),')',Prod,' + '];
end
Pol=['F(x) = ',Pol,num2str(Y(1)),'\n\n'];

fprintf('Matriz de diferencias divididas:\n');
fdd
fprintf('Polinomio de Newton calculado:\n\n');
fprintf(Pol);

fint=0;
xprod=1;
sum=fdd(1,1);
for i=1:1:n-1
    fint=fdd(1,i+1);
    xprod=1;
    for j=1:1:i
        xprod=xprod*(xint-X(j));
    end
    fint=fint*xprod;
    sum=sum+fint;
end
fint=sum;
%graficando el polinomio de newton
fint1=0;
xprod1=1;
xn=1:0.01:max(X)+max(X)*xint;
yn=[];
for k=1:1:length(xn)
sum1=fdd(1,1);
for i=1:1:n-1
    fint1=fdd(1,i+1);
    xprod1=1;
    for j=1:1:i
        xprod1=xprod1*(xn(k)-X(j));
    end
    fint1=fint1*xprod1;
    sum1=sum1+fint1;
end
fint1=sum1;
yn(k)=fint1;
end

Error=abs((log(xint)-fint)/log(xint));

fprintf('Evaluando el polinomio en X = %f resulta: %f\n\n',xint,fint);
xg=1:0.1:max(X)+max(X)*xint;
yg=log(xg);
plot(xg,yg,'r')
hold on;
plot(X,Y,'bo');
hold on;
plot(xint,fint,'r+');
hold on;
plot(xn,yn,'b');
hold on;
plot(xint,log(xint),'ro');
hold off;
title('Representacion grafica de Ln(x) y el polinomio de Newton');
xlabel('X');
ylabel('Y = Ln(X)');
legend('Ln(x)','Puntos insertados','Valor interpolado','polinomio de Newton','valor real');
Vari=['X = ',num2str(xint),' Y = ',num2str(fint),' Er = ',num2str(Error),' Ea = ',num2str(Error*100),' %'];
text(xint+xint*.1,fint,Vari);
 Metodo de biseccion en java :)

public class Biseccion {
 
 /**
     *@autor: Andrea Ibañez Irusta
     * @param args
     */
          private double funcion(double x){
              // return Math.sqrt( x*x +1 ) -4;
               return (Math.exp(x)+Math.cos(Math.pow(x, 2)));
            
           }
          
           public double metodoDeBiseccion(double a, double b, double error){
               double c = 0.0;
               double fa;
               double fb;
               double fc;
               if((funcion(a) * funcion(b)) > 0){
                   System.out.println("Error en el intervalo, en ese intervalo no existen raices");
               }else{
                    c = (a + b) /(double) 2;
                   do{
                     
                       fa = funcion(a);
                       fb = funcion(b);
                       fc = funcion(c);
                       if((fa * fc) > 0){
                           a = c;
                           fa = funcion(a);
                           fb = funcion(b);
                            c = (a + b) /(double) 2;
                           fc = funcion(c);
                       }else if((fb * fc) > 0 ){
                           b = c;
                           fa = funcion(a);
                           fb = funcion(b);
                            c = (a + b) /(double) 2;
                           fc = funcion(c);

                       }


                   }while(Math.abs(fc) >= error);
               }
               System.out.println("valor de la funcion: "+funcion(c));
               System.out.println("raiz= "+c);
               return  c;


           }


        }

sábado, 27 de octubre de 2012

Método de Simpson 1/3


clear
clc
format long
disp ('Método de Simpson 1/3')
syms x
f = input('función: ');
b = input('límite superior: ');
a = input('límite inferior: ');
n = input('número de divisiones (par): ');
h = (b-a)/n;

%integracion normal
i = int(f);
x = b;
r = eval(i);
x = a;
r = r - eval(i);

%metodo de Simpson 1/3
for j=0:n;
    if(j == 0)
        x = a;
        s = eval(f);
    elseif(j == n)
        x = b;
        s = s+eval(f);
    elseif(rem(j,2) ==0)
        x = x+h;
        s = s+2*eval(f);
    else
        x = x+h;
        s = s+4*eval(f);
    end
end
s = h*s/3;
fprintf('resultado por simpson 1/3: %f\n',s)
fprintf('resultado por integración normal: %f\n',r)

jueves, 25 de octubre de 2012

DIFERENCIAS DIVIDIDAS

PROGRAMA PARA CALCULAR EL METODO DE NEWTON CON DIFERENCIAS DIVIDIDAS ES DECIR DE UN GRADO MAYOR


ESTO YA ESTA PROBADO CON UNA MATRIZ:


X=[1 4 6 5];

Y=log(X);

n=length(X);

fdd=zeros(n);

xint=2;

%llenando fdd con diferencias divididas

for i=1:n

fdd(i,1)=Y(i);

end



for
i=2:1:n

for j=1:1:n+1-i

fdd(j,i)=(fdd(j+1,i-1)-fdd(j,i-1))/(X(i+j-1)-X(j));

end

end

Pol='';

Prod='';

for i=1:1:n-1

Prod='';

for j=1:1:i

Prod=[Prod,'(X - ',num2str(X(j)),')'];

end

Pol=[Pol,'(',num2str(fdd(1,i+1)),')',Prod,' + '];

end

Pol=['F(x) = ',Pol,num2str(Y(1)),'\n\n'];



fprintf(
'Matriz de diferencias divididas:\n');

fdd

fprintf(
'Polinomio de Newton calculado:\n\n');

fprintf(Pol);



fint=0;

xprod=1;

sum=fdd(1,1);

for i=1:1:n-1

fint=fdd(1,i+1);

xprod=1;

for j=1:1:i

xprod=xprod*(xint-X(j));

end

fint=fint*xprod;

sum=sum+fint;

end

fint=sum;

%graficando el polinomio de newton

fint1=0;

xprod1=1;

xn=1:0.01:max(X)+max(X)*0.25;

yn=[];

for k=1:1:length(xn)

sum1=fdd(1,1);

for i=1:1:n-1

fint1=fdd(1,i+1);

xprod1=1;

for j=1:1:i

xprod1=xprod1*(xn(k)-X(j));

end

fint1=fint1*xprod1;

sum1=sum1+fint1;

end

fint1=sum1;

yn(k)=fint1;

end



Error=abs((log(xint)-fint)/log(xint));



fprintf(
'Evaluando el polinomio en X = %f resulta: %f\n\n',xint,fint);

xg=1:0.1:max(X)+max(X)*0.25;

yg=log(xg);

plot(xg,yg,
'r')

hold on;

plot(X,Y,'bo');

hold on;

plot(xint,fint,'r+');

hold on;

plot(xn,yn,'b');

hold on;

plot(xint,log(xint),'ro');

hold off;

title('Representacion grafica de Ln(x) y el polinomio de Newton');

xlabel('X');

ylabel('Y = Ln(X)');

legend('Ln(x)','Puntos insertados','Valor interpolado','polinomio de Newton','valor real');

Vari=['X = ',num2str(xint),' Y = ',num2str(fint),' Er = ',num2str(Error),' Ea = ',num2str(Error*100),' %'];

text(xint+xint*.1,fint,Vari);

domingo, 14 de octubre de 2012

viernes, 12 de octubre de 2012

Interpolacion de Lagrange

function y0 = lagrange_interp(x, y, x0)
% x is the vector of abscissas.
% y is the matching vector of ordinates.
% x0 represents the target to be interpolated
% y0 represents the solution from the Lagrange interpolation
y0 = 0;
n = length(x);
for j = 1 : n
    t = 1;
    for i = 1 : n
        if i~=j
            t = t * (x0-x(i))/(x(j)-x(i));
        end
    end
    y0 = y0 + t*y(j);
end

lunes, 8 de octubre de 2012

Programa que calcula el polinomio interpolador con comentarios

n=9;    %  número de puntos
syms x;  % define la variable simbólica para crear el polinomio
xn=[-5 -3 -2 -1 0 1 2 3 4 5];  % abscisas de los puntos a interpolar
yn=1./(1.+xn.^2);  % ordenadas de estas abscisas
plot(xn,yn,'*r')  %  dibuja los puntos a interpolar
hold on
p=0;  % inicializa el polinomio de interpolación que empezará a calcular
for i=1:n
    L=1;
    for j=1:n
        if j~=i
           L=L*(x-xn(j))/(xn(i)-xn(j));
        end
    end
    p=p+L*yn(i);  %  forma de Lagrange
end
p=simplify(p)
     pretty(p)   %  muestra el polinomio en pantalla
x=-5:0.01:5;
f=1./(1+x.^2);
plot(x,f);  %  dibuja la función a interpolar


fuente:  http://www.uam.es/personal_pdi/ciencias/barcelo/cnumerico/recursos/ProgramasMatLab.html

 METODO INTERPOLACION POR LAGRANGE

Un código sencillo para hacerlo es:


function y0 = lagrange_interp(x, y, x0)
y0 = 0;
n = length(x);
for j = 1 : n
t = 1;
for i = 1 : n
if i~=j
t = t * (x0-x(i))/(x(j)-x(i));
end
end
y0 = y0 + t*y(j);
end

En donde (x,y) en la entrada son los valores conocidos. x0 es el valor a interpolar.

la fuente es tomado  de :

http://www.lawebdelprogramador.com/foros/Matlab/1201500-S.O.S_Interpolacion_Lagrange_en_matlab.html

sábado, 25 de agosto de 2012

Teoria de Errores1

https://bubbl.us/
esta es la dirección un programa que nos ayuda a realizar mapas mentales de una forma facil
como pueden ver se puede exportar en formato "pdf" y también como "html"


viernes, 15 de junio de 2012

http://www.fileserve.com/file/rNEwhVe/rungeKutta.rar
Link de descarga Runge Kutta
grupo de:
Junior Manuel Muñoz Cuiza
Wilmer Mijhael Yucra Lecoña

jueves, 14 de junio de 2012

Hola somos el grupo que desarollara el metodo de Runge kutta de 4to orden, aca nuestro archivo http://www.mediafire.com/?s7v9fqtdb6z1fzm
Hola somos el grupo que desarollara el metodo de Runge kutta de 4to orden, aca nuestro archivo http://www.mediafire.com/?s7v9fqtdb6z1fzm

domingo, 10 de junio de 2012

Buenas para todos ........aquí les dejamos toda la información para la expo....
http://www.4shared.com/rar/xhpqm1Y8/SIMPSON.html]SIMPSON.rar

  Univ:CHOQUEHUANCA FERNANDEZ BASILIA ||LIPA PAUCARA MARIA ISABEL ||RUIZ SAMO MIGUEL ANGEL


sábado, 9 de junio de 2012

Hola Compañeros aqui les dejo la exposición del dia Lunes de Las Reglas de Simpson
Univ. Yolger Perez Conde
Documentación
http://www.mediafire.com/download.php?gqigy6smd6bmys2
Programa
 http://www.mediafire.com/download.php?b65sr6zk62qcrbe
Descargenlo, si se cae el enlace me avisan para volver a subirlo

viernes, 8 de junio de 2012

function [valor,a,b,c,d] = Spline(vy,vx,xinter)
    a=vy;
    valor=0;
    c=0;b=0;d=0;
    h=0;A=eye(length(vx));B=zeros([length(vx)],1);
    for i=1:(length(vx)-1)
        h(i)=vx(i+1)-vx(i);
    end
    for i=2:length(h)
        A(i,i)=2*(h(i)+h(i-1));
        A(i,i-1)=h(i-1);
        A(i,i+1)=h(i);
        B(i,1)=((3/h(i))*(a(i+1)-a(i)))-((3/h(i-1))*(a(i)-a(i-1)));
    end
    c=inv(A)*B;
    c=c';
    for(i=1:length(h))
        b(i)=((a(i+1)-a(i))/h(i))-((h(i)/3)*(c(i+1)+2*c(i)));
    end
    for(i=1:length(h))
        d(i)=(c(i+1)-c(i))/(3*h(i));
    end
   
    for(i=1:length(vx)-1)
        if(vx(i)<=xinter)
            if(xinter<=vx(i+1))
                valor=a(i)+b(i)*(xinter-vx(i))+c(i)*(xinter-vx(i))^2+d(i)*(xinter-vx(i))^3;
            end
        end
    end
    disp(valor)
end

 GRUPO 9 INTERPOLACIÓN DE TRAZADORES CÚBICOS - SPLINE

http://www.4shared.com/rar/H5EuXqA2/INTERPOLACION_SPLINE_CUBICO.html
la contraseña del rar es: mat156
http://www.4shared.com/office/Feq644c4/INTERPOLACION_SEGMENTARIA_CONT.htmlinterpolacion segmentearia    maribel patzi velarde
http://www.4shared.com/rar/fM3MfiER/Spline.html
http://www.4shared.com/rar/fM3MfiER/Spline.html
El link de la informacion necesaria para aprender interpolacion por spline
http://freakshare.com/files/98izd2lm/Spline.m.htmlla funcion de spline

jueves, 7 de junio de 2012

function [valor,a,b,c,d] = Spline(vy,vx,xinter)
    a=vy;
    c=0;b=0;d=0;
    h=0;A=eye(length(vx));B=zeros([length(vx)],1);
    for i=1:(length(vx)-1)
        h(i)=vx(i+1)-vx(i);
    end
    for i=2:length(h)
        A(i,i)=2*(h(i)+h(i-1));
        A(i,i-1)=h(i-1);
        A(i,i+1)=h(i);
        B(i,1)=((3/h(i))*(a(i+1)-a(i)))-((3/h(i-1))*(a(i)-a(i-1)));
    end
    c=inv(A)*B;
    c=c';
    for(i=1:length(h))
        b(i)=((a(i+1)-a(i))/h(i))-((h(i)/3)*(c(i+1)+2*c(i)));
    end
    for(i=1:length(h))
        d(i)=(c(i+1)-c(i))/(3*h(i));
    end
    for(i=1:length(d)-1)
        if(vx(i)<=xinter&xinter<=vx(i+1))
            valor=a(i)+b(i)*(xinter-vx(i))+c(i)*(xinter-vx(i))^2+d(i)*(xinter-vx(i))^3
        end
    end
    disp(valor)
end

jueves, 17 de mayo de 2012

Aca un ejemplo de la vida sobre sistemas mal condicionados http://folk.uib.no/ssu029/Pdf_file/Deuflhard74.pdf si no lo pueden bajar mañana se los paso :)

martes, 15 de mayo de 2012

SISTEMAS MAL CONDICIONADOS

SISTEMAS MAL CONDICIONADOS http://www.cibernetia.com/tesis_es/CIENCIAS_DE_LA_TIERRA_Y_DEL_ESPACIO/GEODESIA/GEODESIA_DE_SATELITES/1 Nos habla acerca de la aplicacion de sistemas de ecuaciones para la observacion de satelites, los sistemas mal condicionados con frecuencia en múltiples campos relacionados con las Ciencias de la Tierra. Tambien pueden escuchar el resumen de la tesis en la pagina

sábado, 17 de marzo de 2012

Hola chicos este es el link de descarga del libro:   Basta de Historias-Andres Oppenheimer
http://www.mediafire.com/?eafkt6a5yc071gv

viernes, 16 de marzo de 2012

Funcion solo para dos variables
function [val,ea]=error2(f,x1,ex,y1,ey)
syms x y
dy=diff(f,y);
dx=diff(f,x);
dx=inline(dx);
dy=inline(dy)
ea=ex*dx(x1,y1)+ey*dy(x1)
f=inline(f);
val=f(x1,y1)
ea/val
end
ejemplo en el matlab
error2('x^2+4*x*y',2,0.2,3,0.1)
pruebenlo
Esta es la funcion que nos sirve para la propagacion de errores para dos varialbles:

function propagacion2var(f,x0,y0,ex,ey)
    syms x
    syms y;
    y1=subs(f,{x,y},{x0,y0});
    f1=diff(f,x);
    f2=diff(f,y);
    valF1=subs(f1,{x,y},{x0,y0});
    valF2=subs(f2,{x,y},{x0,y0});
    ea=abs(valF1)*ex+abs(valF2)*ey;
    er=ea/y1;
    disp('valor de y:');
    disp(y1);
    disp('error:');
    disp(ea)
    disp('er:')
    disp(er);
end


y ejecutenlo de la siguiente forma:
>> propagacion2var('x^2+4*x*y',5,3,0.2,0.1)

y el resultado sera:
valor de y:
    85

error:
32/5

er:
32/425

el resultado nos devolvera en fracciones pero si lo dividen les dara el mismo resultado
PDF con informacion basica para el tema de Propagacion de Errores  http://www.uv.es/zuniga/3.2_Propagacion_de_errores.pdf
PROPAGACION DE ERRORES


http://www.google.com.bo/url?sa=t&rct=j&q=propagacion%20del%20error%20en%20una%20funcion&source=web&cd=6&ved=0CEYQFjAF&url=http%3A%2F%2Fwww.astro.ugto.mx%2F~papaqui%2Flaboratorio_mecanica%2FTema_04-Propagacion_de_Errores.pdf&ei=qzBjT7KEB5Hdgge_7uTcAg&usg=AFQjCNFPMyhXQMTP_Sez_drY33FQ3se79g&cad=rja
Este pdf nos proporciona informacion acerca de la propagacion de errores en funciones ysencillas de una variable y tambien de varias variables.
aca una página con información sobre propagacion de errores

http://www.uv.es/~diaz/mn/node5.html

viernes, 9 de marzo de 2012

He aca una interesante página que nos ayuda a ver algunas reglas sobre las cifras significativas y a comprobar la cantidad de cifras significativas de un número cualquiera

http://www.educaplus.org/formularios/cifrassignificativas.html