Advertisement
franciscominajas

Untitled

Jul 6th, 2020
1,391
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.38 KB | None | 0 0
  1. clear all; clc;
  2. %declarando de forma anonima la funcion
  3. f=@(x)x^3-3*(x.^2)*(2.^-x)+3*x*4.^-x-8+x;
  4. %graficando la funcion
  5. fplot(f,[-8,100]);
  6. %colocar cuadricula
  7. grid on
  8. %podemos pausar para ingresar de forma manual el valor de a y b e incluso
  9. %la tolarancia.
  10. a=2;
  11. b=4;
  12. %definimos la tolerancia
  13. tol=0.001;
  14. %numero de pasos a realizar
  15. %entero mayor ceil
  16. %definimos el formato largo
  17. format long
  18. r=(a+b)/2;
  19. e=(b-a)/2;
  20. %para ir obteniendo cada intervalo,
  21. %se ira verificando que la tolerancia sea menor
  22. %que el error, de esta manera podemos ir dividiendo la grafica.
  23. while abs(e)>tol
  24.     %si la funcion evaluada en la raiz da cero, significa que ya no puede
  25.     %dividirse mas por lo que el error es cero, pero esto depende de la
  26.     %presicion elegida (h)
  27.     if f(r)==0
  28.         e=0;
  29.     %en caso contrario se procede a dividir el intervalo en dos.
  30.     else
  31.         %en esta parte decidimos la redifinicion de los limites, si este es
  32.         %menor que cero, se asignara r al superior (b), de lo contrario al
  33.         %limite inferior.
  34.         if f(0)*f(r)<0
  35.             b=r;
  36.         else
  37.             a=r;
  38.         end
  39.         %en esta parte la raiz sera la suma del intervalo entre dos, en
  40.         %caso de existir otra iteracion se realizara el proceso nuevamente.
  41.         r=(a+b)/2;
  42.         e=(b-a)/2;
  43.     end
  44. end
  45. 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