Vous êtes sur la page 1sur 12

Ejercicios del Mtodo del Punto Fijo. 1.

% ************ iteracion de punto fijo ********** % datos de entrada % funcion g(x), de la que se busca el punto fijo % p0 es el punto inicial % n es el numero de iteraciones % delta es la cota del error relativo % salida: % vector de iteraciones p function y=punto_fijo(g,p0,n,delta) k=1; relerr=1; p(1)=p0; while (k <=n) & (relerr>delta) p(k+1)=feval(g,p(k)); err(k)=abs(p(k+1)-p(k)); relerr(k)=err(k)/(abs(p(k+1))+eps); k=k+1; end disp('las iteraciones obtenidas son')

2.- en el siguiente archivo se define la funcin g(x)=(1+sen x)1/2 % funcion de ejemplo para la iteracion de punto % fijo, g(x)=sqrt(1+senx) function y=funcion_punto_fijo(x) y=sqrt(1+sin(x));

3.- en el siguiente archivo estn las instrucciones para aplicar la iteracin de punto fijo a g(x), tomando como dato inicial p0=1 % aplicacion de la iteracion de punto fijo % a g(x)=sqrt(1+sen x) tomando como dato inicial % p0=1. p0=1; n=10; delta=0.001; punto_fijo('funcion_punto_fijo',p0,n,delta);

4.-) usar el mtodo de iteracin del punto fijo para aproximar la raz de comenzando con y hasta que .

codificado x0=0; x=cos(x0); f=abs(cos(x0)-x0); disp([x0,x,f]) while (abs(cos(x0)-x0))>(10^-2) x0=x; x=cos(x0); f=abs(cos(x0)-x0); disp([x0,x,f]) end

5.-) usar el mtodo de iteracin del punto fijo para aproximar la raz de , comenzando con codificado x0=0; x=((x^2-2.7183^x)/5); f=abs(x^2-5*x-2.7183^x); disp([x0,x,f]) while (abs(x^2-5*x-2.7183^x))>(10^-2) x0=x; x=((x^2-2.7183^x)/5); f=abs(x^2-5*x-2.7183^x); disp([x0,x,f]) end y hasta que .

Ejercicios del mtodo del Newton Raphson.

1.- programa escrito en matlab para hallar las races usando el mtodo de newton-raphson function newtoniterationfunction(x) { return x - (cos(x) - x^3) / (-sin(x) - 3*x^2) } var x := 0,5 for i from 0 to 99 { print "iteraciones: " + i print "valor aproximado: " + x xold := x x := newtoniterationfunction(x) if x = xold { print "solucin encontrada!" break

2.disp ('newton-raphson') xo=input('valor inicial ='); n=input ('numero de iteraciones='); salida=ones(n,4); % matiz de salida de datos for i=1:n x1=xo-[(exp(-xo)-xo)]/[(-exp(-xo)-1)]; vsal=[xo;x1]; er=[[abs((xo-x1)/xo)]]*100; % error relativo porcentual ea=[[abs((x1-xo)/x1)]]*100; % error xo=x1; salida(i,1)=i; salida(i,2)=x1; salida(i,3)=er; salida(i,4)=ea; end disp('ite raiz er ea'); disp(num2str(salida)); 3.syms x1 syms x2 syms x3 v=['sin(x1)+2^x2+log(x3)-7';'3*x1+2*x2-x3^3+1 ';'x1+x2+x3-5 %se calcula el jacobiano: dv(1,:)=[diff(v(1,:),x1), diff(v(1,:),x2),diff(v(1,:),x3)]; dv(2,:)=[diff(v(2,:),x1), diff(v(2,:),x2),diff(v(2,:),x3)]; dv(3,:)=[diff(v(3,:),x1), diff(v(3,:),x2),diff(v(3,:),x3)]; %se da el valor de partida: x1=0; x2=4; x3=2; x_1o=[x1;x2;x3]; %se calcula h en ese punto vo(1,:)=eval(v(1,:)); vo(2,:)=eval(v(2,:)); vo(3,:)=eval(v(3,:)); %se calcula el jacobiano en ese punto dv1=eval(dv); %se calcula la inversa del jacobiano en ese punto dv_1=dv1^-1; %se calcula el siguiente valor de iteracin x_1=[x1;x2;x3]-dv_1*vo;

'];

%cantidad de iteraciones maxima: n=50; %se define a = n, si se cumple condicion de error antes, cambia a=n; for i=1:n %error relativo entre aproximaciones sucecivas er=norm(x_1-x_1o)/norm(x_1); if er<.0001 a=i; break; end x1=x_1(1); x2=x_1(2); x3=x_1(3); x_1o=[x1;x2;x3]; vo(1,:)=eval(v(1,:)); vo(2,:)=eval(v(2,:)); vo(3,:)=eval(v(3,:)); dv1=eval(dv); dv_1=dv1^-1; x_1=[x1;x2;x3]-dv_1*vo; end a x_1

Ejercicios del mtodo de la biseccin

1.-El siguiente cdigo en lenguaje C, Permite la obtencin de de las races de una funcin usando el Mtodo de biseccin: #include<stdio.h> #include<math.h> // #include<conio.h> // NOTA: conio.h no es parte de ANSI C, es una libreria de C de Borland //Funcion Que Queremos hallar double f(double x){ return ((pow(x/3, 2))+(9)); //Esta funcion es Y=(X*X*X)/3)+9 Reemplazar por la funcion deseada ej: Y=(x*x)+(3*x)+6

} // Funcion pausar char pausa() { char c; printf("Presiona enter para contiuar..."); c=getchar(); } //biseccion: Retorna el valor de la funcion usando metodo de biseccion //parametros: a= valor menor al punto //parametros: b= valor mayor al punto //parametros: p= el punto que deseamos encontrar //parametros: errorDeseado = margen de error double biseccion(double a, double b, double p, double errorDeseado){ double xr, errorAbsoluto; //xr representa el punto intermedio printf("valor a:%f valorb:%f\n",a,b); xr=((b+a)/2); printf("biseccion a,b: %f\n",f(xr)); //Cambia A o B por el valor del punto dependiendo de cuales se encuentran en medio de p if(p<xr){ b=xr; }else{ a=xr; } //calcula el error relativo errorAbsoluto=fabs(f(p)-fabs(f(xr))); //Si el margen de error ya es valido retorna la funcion. if (errorAbsoluto<errorDeseado){ return xr; }else{ return biseccion(a,b, p, errorDeseado); } } int main(){ printf("%f\n", biseccion(-424,146, 7, 0.02)); // introduce un rango amplio // getch(); // NOTA: Se recomienda para pausar crear su propia funciona de caracter para continuar, o usar la pausa nativa de OS. pausa(); // system("pause"); es otra opcion en sistemas windows. return 0;

2.-El siguiente cdigo en lenguaje C++, imprime las iteraciones por el Mtodo de biseccin: #include <stdio.h> #include <conio.h> float f (float x) { return ((x*x*x)+(4*(x*x))-10); } int main ( void ) { int t = 0, iteraciones; float Xinicial, Xfinal, Xresultante, a = 0.0, error, precision; clrscr (); printf ("Metodo de biseccion\n" ); printf ("Xinicial "); scanf ("%f", &Xinicial); printf ("Xfinal "); scanf ("%f", &Xfinal); printf ("Error aproximado"); scanf ("%f", &precision); printf ("Cuantas iteraciones deseas"); scanf ("%d",&iteraciones); printf ( "It Xl Xu Xr Ea\n\n" ); for (;;) { t++; Xresultante=(Xinicial + Xfinal)/2; printf ( "%3d %6.4f %6.4f %6.4f ", t, Xinicial, Xfinal, Xresultante ); if (f(Xresultante)==0) break; if ((f(Xinicial) * f(Xresultante))<0) Xfinal = Xresultante; else Xinicial = Xresultante; error=(Xresultante-a)/Xresultante*100; printf("%6.4f\n",error); if (error<0) error=(-1)*error; if (error<precision||t>=iteraciones) break; a=Xresultante; } printf("La raiz es: %f",Xresultante); getch (); return 0;

3.- MatLab function x = biseccion(fun,a,b,tol) % Aproxima por el mtodo de la biseccin una raz de la ecuacin fun(x)=0 disp('Mtodo de la biseccin'); u=feval(fun,a); v=feval(fun,b); n=1; if sign(u)==sign(v) disp('Error la funcin debe cambiar de signo en (a,b)'); end while ((b-a)*0.5=tol) c=(b+a)/2; w=feval(fun,c); disp(['n=', num2str(n)]); disp(['c=', num2str(c)]); disp(['f(c)=', num2str(w)]); if sign(u)==sign(w) a = c; u=w; else b=c; v=w; end n=n+1; end; x=c;

4.- Python # -*- coding: utf-8 -*from math import sin,cos,tan,asin,acos,atan,sqrt,log,exp from math import sinh,cosh,tanh,asinh,acosh,atanh ec=raw_input('De la funcion a resolver: ') x1=float(input('de el extremo inferior del intervalo aproximado: ')) x2=float(input('de el extremo superior del intervalo aproximado: ')) errordeseado=input('De el error deseado: ') def f(x): return eval(ec) while True: xmed=(x1+x2)/2 if f(xmed)==0.0:

break if (f(x1)*f(xmed))<0: x2=xmed else: x1=xmed error=abs(x2-x1) if error<errordeseado: break print 'La raiz es',xmed 5.- El siguiente cdigo para SciLab, Permite la obtencin de de las races de una funcin usando el Mtodo de biseccin: function x = biseccion(LaFuncion,a,b,tolerancia) disp('Mtodo de la biseccin'); u=evstr("LaFuncion(a)"); v=evstr("LaFuncion(b)"); n=1; disp(sign(u)); disp(sign(v)); if sign(u)==sign(v) disp('Error la La funcin debe cambiar de signo en (a,b)'); end while ((b-a)*0.5>tolerancia) c=(b+a)/2; w=evstr("LaFuncion(c)"); disp(['************ Paso : ', string(n), '************'] ); disp(['Valor c=', string(c)]); disp(['f(c)=', string(w)]); if sign(u)==sign(w) a=c; u=w; else b=c; v=w; end n=n+1; end; disp('************* La Raiz : *************'); x=c; endfunction;

Ejercicios Realizados en Clase Grafica de Malla y Superficie 1.-) Crear un archivo script que contenga las funciones para generar un grafico de malla y de superficie de la funcin Codificado. %grafique malla y superficie %z=xy^2/(x^2+y^2) x=-1:0.1:3; y=1:0.1:4; [x,y]=meshgrid(x,y) z=(x.*y.^2)./(x.^2+y.^2); mesh(x,y,z) grid on xlabel('x');ylabel('y');zlabel('z') title('GRAFID DE SUPERFICIE') Grafica de Malla y Superficie. para un dominio de -1 x 3 y 1 y 4

Grfico Tridimensional. 2.- ) Realizar una grafica tridimensional utilizando las coordenadas x, y, z en funcin del tiempo (t) para un dominio 0 t 6 %rep`resentacin grfica de una fincin t=0:0.1:6*pi; x=sqrt(t).*sin(2*t); y=sqrt(t).*cos(2*t), z=0.5.*t plot3(x,y,z,'r','linewidth',1) grid on

3.-) Ejercicio. x=linspace(-3,3,500);y=exp(-x.^2);z=2*exp(-x.^2); plot(x,y,'-',x,z,'--') %dibujamos dos funciones title('CAMPANA DE GAUSS') xlabel('eje ordenadas')% ylabel('eje ordenadas')% rotulo eje vertical legend('exp (x.^2','2*exp(-x^2)')%leyenda legend('exp (x.^2)','2*exp(-x^2)')%leyenda gtext('texto')%texto en cualquier sitio