Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all; clc;
- %declarando de forma anonima la funcion
- f=@(x)x^3-3*(x.^2)*(2.^-x)+3*x*4.^-x-8+x;
- %graficando la funcion
- fplot(f,[-8,100]);
- %colocar cuadricula
- grid on
- %podemos pausar para ingresar de forma manual el valor de a y b e incluso
- %la tolarancia.
- a=2;
- b=4;
- %definimos la tolerancia
- tol=0.001;
- %numero de pasos a realizar
- %entero mayor ceil
- %definimos el formato largo
- format long
- r=(a+b)/2;
- e=(b-a)/2;
- %para ir obteniendo cada intervalo,
- %se ira verificando que la tolerancia sea menor
- %que el error, de esta manera podemos ir dividiendo la grafica.
- while abs(e)>tol
- %si la funcion evaluada en la raiz da cero, significa que ya no puede
- %dividirse mas por lo que el error es cero, pero esto depende de la
- %presicion elegida (h)
- if f(r)==0
- e=0;
- %en caso contrario se procede a dividir el intervalo en dos.
- else
- %en esta parte decidimos la redifinicion de los limites, si este es
- %menor que cero, se asignara r al superior (b), de lo contrario al
- %limite inferior.
- if f(0)*f(r)<0
- b=r;
- else
- a=r;
- end
- %en esta parte la raiz sera la suma del intervalo entre dos, en
- %caso de existir otra iteracion se realizara el proceso nuevamente.
- r=(a+b)/2;
- e=(b-a)/2;
- end
- end
- fprintf('La raiz es %5.5f con un error de %1.5f\n', r, e);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement