x=1;
while((1+x)>1)
x=x/2;
end;
x=2*x;
disp('el valor mas pequeño es');
disp(x);
disp('este programa en particular arroja el minimo de tolerancia o aproximacion que acepta el matlab, es decir que valores inferiores a la x/2 calculada el matlab los toma como 0');
miércoles, 25 de mayo de 2011
segunda parte. Metodo de Newton
disp('Metodo de Newton');
disp('Recomendacion: Introducir un valor pequeño inicial, entre 0 y 1');
t=input('El valor de la tolerancia es:');
t=(1/10)^t;
xo=input('El valor de inicio es:');
fxo=(log10(xo))+xo;
fxd=(1/(log(10)))*(1/xo);
x1=xo-(fxo/fxd);
if(x1<0)
fprintf('ERROR,Correr de nuevo el programa e introducir un valor de inicio menor que xo= %.5f',xo );
else
while((abs(x1-xo))>=(t));
xo=x1;
fxo=(log10(xo))+xo;
fxd=(1/(log(10)))*(1/xo);
x1=xo-(fxo/fxd);
end;
x=x1;
fprintf('El valor de la raiz de f(x)=log(x)+x es x= %.5f',x);
end;
disp('Recomendacion: Introducir un valor pequeño inicial, entre 0 y 1');
t=input('El valor de la tolerancia es:');
t=(1/10)^t;
xo=input('El valor de inicio es:');
fxo=(log10(xo))+xo;
fxd=(1/(log(10)))*(1/xo);
x1=xo-(fxo/fxd);
if(x1<0)
fprintf('ERROR,Correr de nuevo el programa e introducir un valor de inicio menor que xo= %.5f',xo );
else
while((abs(x1-xo))>=(t));
xo=x1;
fxo=(log10(xo))+xo;
fxd=(1/(log(10)))*(1/xo);
x1=xo-(fxo/fxd);
end;
x=x1;
fprintf('El valor de la raiz de f(x)=log(x)+x es x= %.5f',x);
end;
segunda parte.Metodo de biseccion
disp('Metodo de biseccion');
disp('Recomendacion: Usar valores reales positivos para las variables en el intervalo(a,b)');
t=input('El valor de tolerancia es:');
t=(1/10)^t;
a=input('El valor de a es:');
b=input('El valor de b es:');
fa=(log10(a))+a;
fb=(log10(b))+b;
if(fa*fb>=0);
fprintf('Error; correr de nuevo el programa e introducir otro intervalo (a,b)');
else
k=abs(fa-fb);
while(t<k);
fa=(log10(a))+a;
fb=(log10(b))+b;
m=(a+b)/2;
fm=(log10(m))+m;
if(fm*fa>0);
a=m;
fa=(log10(a))+a;
k=abs(fa-fb);
elseif(fm*fb>0);
b=m;
fb=(log10(b))+b;
k=abs(fa-fb);
end
end
x=(a+b)/2;
fprintf('El valor de la raiz de F(x)=log(x)+x es x= %.5f',x);
end
disp('Recomendacion: Usar valores reales positivos para las variables en el intervalo(a,b)');
t=input('El valor de tolerancia es:');
t=(1/10)^t;
a=input('El valor de a es:');
b=input('El valor de b es:');
fa=(log10(a))+a;
fb=(log10(b))+b;
if(fa*fb>=0);
fprintf('Error; correr de nuevo el programa e introducir otro intervalo (a,b)');
else
k=abs(fa-fb);
while(t<k);
fa=(log10(a))+a;
fb=(log10(b))+b;
m=(a+b)/2;
fm=(log10(m))+m;
if(fm*fa>0);
a=m;
fa=(log10(a))+a;
k=abs(fa-fb);
elseif(fm*fb>0);
b=m;
fb=(log10(b))+b;
k=abs(fa-fb);
end
end
x=(a+b)/2;
fprintf('El valor de la raiz de F(x)=log(x)+x es x= %.5f',x);
end
Segunda Parte.El numero n mas pequeño
disp('el numero entero n mas pequeño');
M=input('el valor de M es:');
n=0;
k=0;
while((k<M)&&(n<=1000))
n=n+1;
k=1/n+k;
end
fprintf('el valor de n es %.4f',n);
M=input('el valor de M es:');
n=0;
k=0;
while((k<M)&&(n<=1000))
n=n+1;
k=1/n+k;
end
fprintf('el valor de n es %.4f',n);
jueves, 19 de mayo de 2011
Ejercicio 4. Tabla de comparacion de Pi
n | Vieté | Borwein | Método alternativo |
4 | 3.13654849 | 3.38871193 | 3.14260475 |
8 | 3.14157294 | 3.38871193 | 3.14159977 |
16 | 3.14159265 | 3.38871193 | 3.14159265 |
Ejercicio 4. Metodo alternativo
disp('metodo alternativo');
n=input('valor de n:');
if (n>0)
p=0;
for i=0:n
p=p+exp(i*log(-1))/((i+i+1)*exp(i*log(3)));
end;
p=2*(sqrt(3))*p;
fprintf('valor aproximado de pi es %0.8f',p);
else
disp('n tiene que ser mayor que 0');
end;
n=input('valor de n:');
if (n>0)
p=0;
for i=0:n
p=p+exp(i*log(-1))/((i+i+1)*exp(i*log(3)));
end;
p=2*(sqrt(3))*p;
fprintf('valor aproximado de pi es %0.8f',p);
else
disp('n tiene que ser mayor que 0');
end;
miércoles, 18 de mayo de 2011
Formula de Viete(1593)
disp('Cálculo de Pi por la Fórmula de Viete');
n=input('valor de n:');
d=0;
h=1;
m=1;
for i=1:n
d=sqrt(2+d);
m=m*d;
h=h*2;
p=(2*h)/m;
end;
fprintf('el valor aproximado de pi es %.8f',p);
n=input('valor de n:');
d=0;
h=1;
m=1;
for i=1:n
d=sqrt(2+d);
m=m*d;
h=h*2;
p=(2*h)/m;
end;
fprintf('el valor aproximado de pi es %.8f',p);
Ejercicio 3. Cubos en sumas
disp('Cubos en sumas');
a=input('valor de a:');
S=0;
n=a*a;
for i=1:n
S=S+a;
end
fprintf('el valor del cubo es %.f',S);
a=input('valor de a:');
S=0;
n=a*a;
for i=1:n
S=S+a;
end
fprintf('el valor del cubo es %.f',S);
Ejercicio3 Cuadrados en sumas
disp('Cuadrados en sumas');
a=input('valor de a:');
S=0;
n=a;
for i=1:n
S=S+a;
end
fprintf('el valor del cuadrado es %.f',S);
a=input('valor de a:');
S=0;
n=a;
for i=1:n
S=S+a;
end
fprintf('el valor del cuadrado es %.f',S);
Ejercico 2. Primeros n cubos por la Conjetura de Nicómaco
n=input('valor de n:');
S=0;
for i=1:n
S=S+n*(n-1)+(2*i-1);
end
fprintf('el valor del cubo es%.2f',S);
S=0;
for i=1:n
S=S+n*(n-1)+(2*i-1);
end
fprintf('el valor del cubo es%.2f',S);
Ejercicio 1
n | a | b | Exacto | Trapezoide | Simpson | Error Trapezoide | Error Simpson |
6 | 1.1 | 2 | 2.30258509 | 2.46348358 | 2.30794875 | 0.16089849 | 0.00536366 |
10 | 1.1 | 2 | 2.30258509 | 2.36521443 | 2.30356496 | 0.06262934 | 0.00097987 |
6 | 2 | 3 | 0.69314718 | 0.69487734 | 0.69314866 | 0.00173016 | 0.00000148 |
10 | 2 | 3 | 0.69314718 | 0.69377140 | 0.69314737 | 0.00062422 | 0.00000019 |
Metodo de simpson
disp('Metodo de Simpson');
a=input('valor de a:');
b=input('valor de b:');
n=input('valor de n:');
Ar=0;
h=(b-a)/n;
for i=0:n-1
xi=a+i*h;
xii=a+(1+i)*h;
xm=(xi+xii)/2;
S=1/(1-xi)+4*(1/(1-xm))+1/(1-xii);
if (S<0)
S=(-1)*S;
else
S=S*1;
end
Ar=Ar+ h/6*(S);
end
fprintf('el valor del area es %.8f',Ar);
a=input('valor de a:');
b=input('valor de b:');
n=input('valor de n:');
Ar=0;
h=(b-a)/n;
for i=0:n-1
xi=a+i*h;
xii=a+(1+i)*h;
xm=(xi+xii)/2;
S=1/(1-xi)+4*(1/(1-xm))+1/(1-xii);
if (S<0)
S=(-1)*S;
else
S=S*1;
end
Ar=Ar+ h/6*(S);
end
fprintf('el valor del area es %.8f',Ar);
Metodo del trapecio
disp('Metodo del Trapecio');
a=input('valor de a:');
b=input('valor de b:');
n=input('valor de n:');
Ar=0;
h=(b-a)/n;
for i=0:n-1
xi=a+i*h;
xii=a+(1+i)*h;
S=1/(1-xi)+1/(1-xii);
if (S<0)
S=(-1)*S;
else
S=S*1;
end
Ar=Ar+ h/2*(S);
end
fprintf('el valor del area es %.8f',Ar);
a=input('valor de a:');
b=input('valor de b:');
n=input('valor de n:');
Ar=0;
h=(b-a)/n;
for i=0:n-1
xi=a+i*h;
xii=a+(1+i)*h;
S=1/(1-xi)+1/(1-xii);
if (S<0)
S=(-1)*S;
else
S=S*1;
end
Ar=Ar+ h/2*(S);
end
fprintf('el valor del area es %.8f',Ar);
Suscribirse a:
Entradas (Atom)