0 evaluări0% au considerat acest document util (0 voturi)
348 vizualizări1 pagină
Este documento presenta un algoritmo de bisección para encontrar raíces numéricas de funciones implementado en el lenguaje Scilab. El algoritmo itera reduciendo el intervalo de búsqueda entre los límites A y B hasta que el error absoluto sea menor a una tolerancia dada o se alcance el número máximo de iteraciones permitidas, devolviendo la raíz aproximada y el número de iteraciones empleadas.
Descriere originală:
Metodos numericos - Bisección
Titlu original
Algoritmo de Bisección de Cálculo Numérico en Scilab. · GitHub
Este documento presenta un algoritmo de bisección para encontrar raíces numéricas de funciones implementado en el lenguaje Scilab. El algoritmo itera reduciendo el intervalo de búsqueda entre los límites A y B hasta que el error absoluto sea menor a una tolerancia dada o se alcance el número máximo de iteraciones permitidas, devolviendo la raíz aproximada y el número de iteraciones empleadas.
Este documento presenta un algoritmo de bisección para encontrar raíces numéricas de funciones implementado en el lenguaje Scilab. El algoritmo itera reduciendo el intervalo de búsqueda entre los límites A y B hasta que el error absoluto sea menor a una tolerancia dada o se alcance el número máximo de iteraciones permitidas, devolviendo la raíz aproximada y el número de iteraciones empleadas.
6/3/2018 Algoritmo de Bisección de Cálculo Numérico en Scilab.
· GitHub
Instantly share code, notes, and snippets. Create a gist now
Reflej0 / biseccion.sce Created 10 months ago
Algoritmo de Bisección de Cálculo Numérico en Scilab.
biseccion.sce
1 function [raizaproximada, iteraciones] = biseccion(funcion, A, B, Tolerancia, Iteracionesmaximas)
2 raizaproximada = A; // Esto es para que en la primera iteracion no de error. 3 iteraciones = 0; 4 while 1 5 raizaproximadaanterior = raizaproximada; 6 raizaproximada = (A+B)/2; 7 errorabsoluto = abs((raizaproximada-raizaproximadaanterior)/raizaproximada)*100; 8 r = funcion(raizaproximada); 9 a = funcion(A); // Evaluo A en la funcion, y lo guardo en a. 10 b = funcion(B); // Evaluo B en la funcion y lo guardo en b. 11 if( a*r < 0 ) then 12 B = raizaproximada; 13 else 14 A = raizaproximada; 15 end 16 iteraciones = iteraciones + 1; 17 if(errorabsoluto < Tolerancia | iteraciones == Iteracionesmaximas ) then 18 break 19 end 20 end 21 endfunction 22 23 //Datos 24 25 function y = primera(x) 26 y = %e^x + 2^-x + 2*cos(x) - 6; 27 endfunction 28 29 30 A = 1; 31 B = 2; 32 Tolerancia = 0.00001; 33 Iteracionesmaximas = 100; 34 [raizaproximada, iteraciones] = biseccion(primera, A, B, Tolerancia, Iteracionesmaximas)