Está en la página 1de 15

UNIVERSIDAD SANTO TOMS FACULTAD DE INGENIERA MECNICA MTODOS NUMRICOS

MTODOS DE PUNTO FIJO Y NEWTON-RAPHSON Por: Edinson Ferley Guilln Cruz 2091277 Para el desarrollo de problemas en ingeniera, utilizamos los diferentes tipos de clculos que existen solucionando el problema fcilmente, pero en ocasiones aparecen problemas que para su solucin son necesarios aplicar mtodos numricos para conocer una respuesta precisa y aproximada a un valor real. En este caso se utiliza el mtodo de Punto fijo y Newton-Raphson para conocer las races de una funcin de la forma ms precisa y exacta posible. EJERCICIO 1 Una correa en v con una longitud de es usada para transmitir potencia entre ejes mediante poleas de radio y . Tomando como la mitad del ngulo de contacto de la polea pequea y como la distancia entre ejes, es posible escribir la siguiente relacin para la transmisin:

Calcular el angulo

empleando cinco cifras significativas.

Para desarrollar el ejercicio por los mtodos de Punto fijo y Newton-Raphson es necesario graficar la funcin para saber cuntas races tiene, y para conocer un punto cercano a la raz.

Primero se debe igualar la funcin a cero.

Luego con el programa Matlab escribir un cdigo en un .m para graficar la funcin con los valores dados en el enunciado.
%Grafica ejercicio 2 poleas function grafica_ejercicio_poleas() L=500; R=60; r=40; teta=0:0.1:pi/2; f=(tan(teta))-(teta)-((0.5*L-pi*R)/(R-r)); plot(teta,f); grid on

En el cdigo se observa que teta es el dominio de la funcin, que va de 0 a pi/2 en intervalos de 0.1, lo cual nos da la siguiente grfica:

Luego identificamos el punto cercano donde la grfica corta en 0, en este caso tomamos como valor inicial a 1.3. Para saber si el valor inicial que escogimos nos sirve para implementar el mtodo de punto fijo, es necesario hacer una comprobacin donde se evala la derivada de la funcin despejada en trminos de la variable. ( )

Hacer la comprobacin por medio del siguiente cdigo:


function comprobacion_poleas syms L R r teta g2=atan(((0.5*L-pi*R)/(R-r))+teta); dg2=diff(g2,teta); L=500; R=60; r=40; teta=1.3; abs(eval(dg2))

Si el resultado del valor absoluto de la evaluacin de la derivada nos da menor a 1 quiere decir que el valor inicial escogido converge y sirve para desarrollar el mtodo, si no se debe escoger otro valor y revisar si converge. En este caso el resultado se observa en la siguiente imagen donde se observa que el resultado es menor que uno.

Teniendo claro el valor inicial y que este converge, se desarrolla el ejercicio implementando el cdigo de punto fijo e ingresando la ecuacin que genera la comprobacin con sus respectivas variables, tambin se implementa el cdigo de la grfica al final del cdigo de punto fijo para que al ejecutar el programa nos muestre tambin la grfica. El cdigo queda as:
%Universidad Santo Tomas %Facultadad INgenieria Mecanica %Metodos Numericos %Algoritmo de punto fijo para aproximar la raz de la funcion f(x)=0 %Edinson Guillen function tetai=puntofijo_poleas() grafica_ejercicio_poleas() disp('Metodo de Punto fijo'); tetao=input('Defina el valor inicial:');%define teta0 n=input('Defina el numero de cifras significativas:');%define n

Es=0.5*10^(2-n);%error estimado it=0;%inicio contador de iteraciones Ea=Es+1;%iicio error aproximado relativo %Proceso Iterativo: tetant=tetao; while (Ea>Es) if it>0 disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ' sprintf('%3.5f',Ea)]); else disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ---']); end tetai=g(tetant);%Formula para punto fijo Ea=abs((tetai-tetant)/(tetai))*100; tetant=tetai; it=it+1; end function teta=g(tetai)%Function teta=g(teta) L=500; R=60; r=40; teta=atan(((0.5*L-pi*R)/(R-r))+tetai); function grafica_ejercicio_poleas() L=500; R=60; r=40; teta=0:0.1:pi/2; f=(tan(teta))-(teta)-((0.5*L-pi*R)/(R-r)); plot(teta,f); grid on

Al ejecutar el programa este nos pide el valor inicial, y el nmero de cifras significativas. Introduciendo los valores muestra la siguiente tabla:

Como se observa en la tabla, el programa por el mtodo de punto fijo realizo 4 iteraciones para llegar a una respuesta con cinco cifras significativas aproximadas al punto donde la grfica corta al eje en 0, con un error aproximado de 0.00817%. Ahora se desarrolla el ejercicio por el Mtodo de Newton-Raphson, para desarrollar este ejercicio se iguala la funcin original a cero

Luego para hallar la raz de la funcin se hace la primera derivada, lo que se conoce como una aproximacin por la tangente de la funcin, como se ve en el siguiente cdigo:
%Derivada de la funcion f(teta) function derivada_funcion_poleas() syms L R r teta fteta=(tan(teta))-(teta)-((0.5*L-pi*R)/(R-r)); dfteta=diff(fteta)

Luego al ejecutar el cdigo nos da la expresin de la derivada de la funcin.

Ahora se reemplaza la funcin igualada a cero y la derivada de esta en el cdigo de NewtonRaphson para hallar la raz.
%Universidad Santo Tomas %Facultad de Ingenieria Mecanica %Metodos Numericos %Algoritmo de Newton-Raphson para aproximar la raiz de una funcion %Edinson Guillen %--------------------------------------------------------------------function tetai=newton_poleas() grafica_ejercicio_poleas() disp('Metodo de Newton-Raphson'); tetao=input('Defina el valor inicial: ');%define teta0 n=input('Define el numero de cifras significativas: ');%define n Es=0.5*10^(2-n);%error estimado it=0;%inicio contador de iteraciones Ea=Es+1;%inicio de error aproximado relativo %Proceso Iterativo tetant=tetao;

while (Ea>Es) if it>0 disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ' sprintf('%3.5f',Ea)]); else disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ---']); end tetai=tetant-(f(tetant)/df(tetant));%Formula para Newton Raphson Ea=abs((tetai-tetant)/tetai)*100; tetant=tetai; it=it+1; end function fteta=f(tetai)%funcion de equilibrio f(teta)=0 L=500; R=60; r=40; fteta=(tan(tetai))-(tetai)-((0.5*L-pi*R)/(R-r)); function dfteta=df(tetai)%derivada de la funcion de equilibrio f'(teta) dfteta=tan(tetai)^2; function grafica_ejercicio_poleas() L=500; R=60; r=40; teta=0:0.1:pi/2; f=(tan(teta))-(teta)-((0.5*L-pi*R)/(R-r)); plot(teta,f); grid on

Al ejecutar el cdigo, el programa pide el valor inicial y el nmero de cifras significativas mostrando la siguiente tabla:

Como se observa en la tabla, el programa por el mtodo de Newton-Raphson realizo 4 iteraciones para llegar a una respuesta con cinco cifras significativas aproximadas al punto donde la grfica corta al eje en 0, con un error aproximado de 0.04229%. En conclusin en este ejercicio aunque por ambos mtodos salen 3 iteraciones, el mejor mtodo para conocer la raz es el de punto fijo, ya que tiene un menor porcentaje de error y por lo tanto es ms exacto y preciso que el mtodo de newton-Raphson. EJERCICIO 2 En el mecanismo de cuatro barras mostrado, la relacin entre el Angulo de entrada de salida esta dada por la ecuacin de freudenstein. ( Dnde: ) y el angulo

Si d=16cm, a=8cm, b=12cm y c=12 determine numricamente para tomando como punto inicial .Realice cinco iteraciones tomando cinco cifras significativas.

Para desarrollar el ejercicio por los mtodos de punto fijo y newton-Raphson es necesario graficar la funcin para saber cuntas races tiene, y as encontrar un punto cercano a la raz. Como la ecuacin ya est igualada a cero, lo que se hace es hacer un cambio de variables en la ecuacin, donde es reemplazado por , y se reemplaza por su valor numrico que es de 20 o

de , para que cuando se introduzca la ecuacin en los cdigos de punto fijo y newton-Raphson no sea necesario cambiar la variable teta por fi, quedando la ecuacin de la siguiente forma: ( ( ) ( ) ( ))

Luego con el programa Matlab escribir un cdigo en un .m para graficar la funcin con los valores dados en el enunciado.
%Grafica ejercicio 3 barras function grafica_ejercicio_barras() a=8; b=12; c=12; d=16; teta=0:0.1:pi; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); f=(R1*cos(teta)-R2*cos(pi/9)+R3-cos(teta-(pi/9))); plot(teta,f); grid on

En el cdigo se observa que teta es el dominio de la funcin, que va de 0 a pi en intervalos de 0.1, lo cual nos da la siguiente grfica:

Luego identificamos el punto cercano donde la grfica corta en 0, en este caso tomamos como valor inicial a 1.5. Para saber si el valor inicial que escogimos nos sirve para implementar el mtodo de punto fijo, es necesario hacer una comprobacin donde se evala la derivada de la funcin despejada en trminos de la variable.

( )

Hacer la comprobacin por medio del siguiente cdigo:


function comprobacion_barras syms a b c d teta R1 R2 R3 g2=acos((R2*cos(pi/9)+cos(teta-(pi/9))-R3)/R1); dg2=diff(g2,teta); a=8; b=12; c=12; d=16; teta=1.5; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); abs(eval(dg2))

Si el resultado del valor absoluto de la evaluacin de la derivada nos da menor a 1 quiere decir que el valor inicial escogido converge y sirve para desarrollar el mtodo, si no se debe escoger otro valor y revisar si converge. En este caso el resultado se observa en la siguiente imagen donde se observa que el resultado es menor que uno.

Teniendo claro el valor inicial y que este converge, se desarrolla el ejercicio implementando el cdigo de punto fijo e ingresando la ecuacin que genera la comprobacin con sus respectivas variables, tambin se implementa el cdigo de la grfica al final del cdigo de punto fijo para que al ejecutar el programa nos muestre tambin la grfica. El cdigo queda as:
%Universidad Santo Tomas %Facultadad Ingenieria Mecanica %Metodos Numericos %Algoritmo de punto fijo para aproximar la raz de la funcion f(x)=0 %Edinson Guillen %--------------------------------------------------------------------function tetai=puntofijo_barras() grafica_ejercicio_barras() disp('Metodo de Punto fijo'); tetao=input('Defina el valor inicial:');%define teta0 n=input('Defina el numero de cifras significativas:');%define n Es=0.5*10^(2-n);%error estimado it=0;%inicio contador de iteraciones Ea=Es+1;%iicio error aproximado relativo %Proceso Iterativo: tetant=tetao; while (Ea>Es) if it>0 disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ' sprintf('%3.5f',Ea)]); else disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ---']); end tetai=g(tetant);%Formula para punto fijo Ea=abs((tetai-tetant)/(tetai))*100; tetant=tetai; it=it+1; end function teta=g(tetai)%Function teta=g(teta) a=8; b=12; c=12; d=16; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); teta=acos((R2*cos(pi/9)+cos(tetai-(pi/9))-R3)/R1); function grafica_ejercicio_barras() a=8; b=12; c=12;

d=16; teta=0:0.1:pi; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); f=(R1*cos(teta)-R2*cos(pi/9)+R3-cos(teta-(pi/9))); plot(teta,f); grid on

Al ejecutar el programa este nos pide el valor inicial, y el nmero de cifras significativas. Introduciendo los valores muestra la siguiente tabla:

Como se observa en la tabla, el programa por el mtodo de punto fijo realizo 14 iteraciones para llegar a una respuesta con cinco cifras significativas aproximadas al punto donde la grfica corta al eje en 0, con un error aproximado de 0.00065%. Ahora se desarrolla el ejercicio por el Mtodo de Newton-Raphson, para desarrollar este ejercicio se iguala la funcin original a cero ( )

Luego para hallar la raz de la funcin se hace la primera derivada, lo que se conoce como una aproximacin por la tangente de la funcin, como se ve en el siguiente cdigo:
%Derivada de la funcion f(teta) function derivada_funcion_barras() syms a b c d teta R1 R2 R3 R1=d/a;

R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); fteta=(R1*cos(teta)-R2*cos(pi/9)+R3-cos(teta-(pi/9))); dfteta=diff(fteta)

Luego al ejecutar el cdigo nos da la expresin de la derivada de la funcin.

Ahora se reemplaza la funcin igualada a cero y la derivada de esta en el cdigo de NewtonRaphson para hallar la raz.
%Universidad Santo Tomas %Facultad de Ingenieria Mecanica %Metodos Numericos %Algoritmo de Newton-Raphson para aproximar la raiz de una funcion %Edinson Guillen %--------------------------------------------------------------------function tetai=newton_barras() grafica_ejercicio_barras() disp('Metodo de Newton-Raphson'); tetao=input('Defina el valor inicial: ');%define teta0 n=input('Define el numero de cifras significativas: ');%define n Es=0.5*10^(2-n);%error estimado it=0;%inicio contador de iteraciones Ea=Es+1;%inicio de error aproximado relativo %Proceso Iterativo tetant=tetao; while (Ea>Es) if it>0 disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ' sprintf('%3.5f',Ea)]); else disp([' it: ' sprintf('%4i',it) ... ' tetai: ' sprintf('%3.5f',tetant) ... ' Ea: ---']); end tetai=tetant-(f(tetant)/df(tetant));%Formula para Newton Raphson Ea=abs((tetai-tetant)/tetai)*100; tetant=tetai;

it=it+1; end function fteta=f(tetai)%funcion de equilibrio f(teta)=0 a=8; b=12; c=12; d=16; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); fteta=(R1*cos(tetai)-R2*cos(pi/9)+R3-cos(tetai-(pi/9))); function dfteta=df(tetai)%derivada de la funcion de equilibrio f'(teta) a=8; d=16; dfteta=(sin(tetai - (pi/9)) - (d*sin(tetai))/a); function grafica_ejercicio_barras() a=8; b=12; c=12; d=16; teta=0:0.1:pi; R1=d/a; R2=d/b; R3=((d^2)+(a^2)+(b^2)-(c^2))/(2*a*b); f=(R1*cos(teta)-R2*cos(pi/9)+R3-cos(teta-(pi/9))); plot(teta,f); grid on

Al ejecutar el cdigo, el programa pide el valor inicial y el nmero de cifras significativas mostrando la siguiente tabla:

Como se observa en la tabla, el programa por el mtodo de Newton-Raphson realizo 3 iteraciones para llegar a una respuesta con cinco cifras significativas aproximadas al punto donde la grfica corta al eje en 0, con un error aproximado de 0.17260%. Luego la raz queda en 1.6392. En conclusin en este ejercicio aunque por el mtodo de newton realiza menos iteraciones, tiene un porcentaje de error mayor que mtodo de punto fijo, luego el mejor mtodo para solucionar este ejercicio es el de punto fijo. TABLAS DE RESULTADOS EJERICIO 1:

Tabla Mtodo Punto fijo Poleas Valor inicial Cifras significativas Iteracin # Resultado Error Aproximado 1,3 5 4 1,3485 0,00817

Tabla Mtodo Newton-Raphson Poleas Valor inicial Cifras significativas Iteracin # Resultado Error Aproximado 1,3 5 4 1,3485 0,04229

Segn las tablas de resultados del ejercicio 1, el mejor mtodo para solucionar el problema es el de Punto fijo, ya que aunque este hace el mismo nmero de iteraciones tiene un error aproximado menor lo cual lo hace mejor. EJERCICIO 2

Tabla Mtodo Punto Fijo Barras Valor inicial Cifras significativas Iteracin # Resultado Error Aproximado 1,5 5 14 1,6392 0,00065

Tabla Mtodo Newton-Raphson Barras Valor inicial Cifras significativas Iteracin # Resultado Error Aproximado 1,5 5 3 1,6392 0,1726

Segn las tablas de resultados del ejercicio 2, el mejor mtodo para solucionar el problema es el de Punto fijo, ya que aunque este hace mayor nmero de iteraciones tiene un error aproximado menor lo cual lo hace mejor.

También podría gustarte