problema 1

7
Problema 1 Crear un archivo enlfx.m (ecuaciones no lineales f(x)) que contendrá la función cuyas raíces se quieren hallar. En particular, tomaremos f(x)=2xCos(2x)-(x+1)2 . Para representar la función en el intervalo [-6, 6], se puede utilizar: » z=linspace(-6,6,50);fz=enlfx(z); » plot(z,fz);grid on; function biseccion(f,a,b,tol) f=inline(f); n=ceil(log((b-a)/tol)/log(2)); fprintf('\n it. a b x f(x)\n') for i=1:n x=(a+b)/2; fprintf('%3.0f%10.10f%10.10f%10.10f%10.10f\n',i,a,b,x,f(x)) if f(a)*f(b)<0 b=x; else a=x; end end fprintf('\n La aproximacion de la raiz es %3.10f\n \n',x)

Upload: unmsm

Post on 22-Feb-2023

2 views

Category:

Documents


0 download

TRANSCRIPT

Problema 1

Crear un archivo enlfx.m (ecuaciones no lineales f(x)) que contendrá la función cuyas raíces se quieren hallar. En particular, tomaremos f(x)=2xCos(2x)-(x+1)2 . Para representar la función en el intervalo [-6, 6], se puede utilizar: » z=linspace(-6,6,50);fz=enlfx(z); » plot(z,fz);grid on;

function biseccion(f,a,b,tol)f=inline(f); n=ceil(log((b-a)/tol)/log(2));fprintf('\n it. a b x f(x)\n')for i=1:n x=(a+b)/2; fprintf('%3.0f%10.10f%10.10f%10.10f%10.10f\n',i,a,b,x,f(x)) if f(a)*f(b)<0 b=x; else a=x; endendfprintf('\n La aproximacion de la raiz es %3.10f\n \n',x)

Problema 2

Use cuatro iteraciones del método del la Bisección para determinar las raíces de 6 02 e x x en el intervalo [0,0.5]. ¿Cuántas iteraciones son necesarias para obtener la aproximación a la raiz redondeada a 5 cifras decimales?

function biseccion(f,a,b,tol)f=inline(f); n=ceil(log((b-a)/tol)/log(2));fprintf('\n it. a b x f(x)\n')for i=1:n x=(a+b)/2; fprintf('%3.0f%10.10f%10.10f%10.10f%10.10f\n',i,a,b,x,f(x)) if f(a)*f(b)<0 b=x; else a=x; endendfprintf('\n La aproximacion de la raiz es %3.10f\n \n',x)

Problema 3

Desarrolle cuatro iteraciones usando el método de Newton Raphsonpara obtener las raíces de 6 0 2 e x x . Use x= 0.4 como valor inicial. Dar un estimado para el error involucrado

cf=input('Ingrese funcion a evaluar: ');syms xf=inline(cf);derivada = diff(cf,x);df=inline(derivada);tol=input('Ingrese tolerancia: ');error = 50;x=input('Ingrese un valor inicial: ');n=0;disp(' n x1 error')while(error>tol)fprintf('\t%i\t%3.5f\t%f\n', n, x, error);n=n+1;x=x-f(x)/df(x);error=abs(f(x));end

Problema 4

Sea la función no lineal 2 ( ) 3cos(2 ) f x x x ¿Es posible encontrar un algoritmo del punto fijo en [0,1] x ? Justifique. Si su respuesta es afirmativa realice 03 iteraciones.

function v=puntofijo(g,x0,maxi,tol) g=inline(g);v=[0 x0 g(x0)];i=1;x1=g(x0);v=[v;i x1 g(x1)];while (i<maxi & abs(x1-x0)>tol)x0=x1;i=i+1;x1=g(x0);v=[v; i x1 g(x1)];endif(i==maxi)fprintf('el metodo fracaso despues de %2.0f iteraciones',i)fprintf('\n')elsefprintf('el metodo tuvo exito despues de %5.0f iteraciones',i)fprintf('\n')fprintf('resultados obtenidos:')fprintf('\n')fprintf(' i x_i g(x_i) ')fprintf('\n')v;end

Problema 5

Programar la función pfijo.m según el algoritmo siguiente, usando como función de iteración 2 3( ) 2 x x g x para encontrar la aproximación con un error menor que 0.001 tomando un valor inicial aleatorio en el intervalo [1,2]. Escribir los resultados en la tabla, indicando el número de iteraciones “n‟.

function v=puntofijo(g,x0,maxi,tol) g=inline(g);v=[0 x0 g(x0)];i=1;x1=g(x0);v=[v;i x1 g(x1)];while (i<maxi & abs(x1-x0)>tol)x0=x1;i=i+1;x1=g(x0);v=[v; i x1 g(x1)];endif(i==maxi)fprintf('el metodo fracaso despues de %2.0f iteraciones',i)fprintf('\n')elsefprintf('el metodo tuvo exito despues de %5.0f iteraciones',i)fprintf('\n')fprintf('resultados obtenidos:')fprintf('\n')fprintf(' i x_i g(x_i) ')fprintf('\n')v;end

Problema 6

Se desea resolver x2-sen(x)=0 usando Newton-Raphson mediante un programa en MATLAB, complete las instrucciones que faltan:

COMPLETANDO EL CODIGO:x=1 % aproximación inicial tol= 0.001 % precisión de 6 cifras decimales exactos err=1 while err>tol ;n= n+1;xn= x – f(x)/ df(x) ;err=abs(xn-x);end

EN EL MATLABPara f(x) = x2 – sen x X0 = 0.5Mediante Newton – Raphson