Metodos Numericos
Enviado por switch1 • 5 de Junio de 2015 • 4.309 Palabras (18 Páginas) • 184 Visitas
Métodos Numéricos para el cálculo de raíces de ecuaciones no lineales
Método de Bisección:
Es uno de los métodos más antiguos y elementales de búsqueda de raíces y se basa en el Teorema del Valor Intermedio, partiendo del supuesto de que dada una función f(x) continua en un intervalo [a,b], si f(a) y f(b) es menor a 0, existe al menos un valor x0 Є a,b tal que f(x0)=0.
El método consiste en que una vez identificado los puntos a y b (cumpliendo el teorema) se construye la primera iteración calculando el valor auxiliar (c) donde c = a+b/2. Se requiere conocer si f(c) es menor o mayor a 0 con la finalidad de reemplazar los intervalos [a,b], si f(c) < 0 entonces a = c dejando intacto al extremo b, si f(c)>0 entonces b = c y a sigue siendo el mismo valor. El procedimiento es constante y por lógica se sabe que los intervalos se van “achicando” o haciéndose más pequeño en busca de la raíz (c). La cantidad de iteraciones se determina calculando el error absoluto y evaluando la función en c determinando si es 0. La principal crítica de este método es su lenta convergencia.
Ejemplo 1 : Aplicando el metodo de Biseccion, determinar aplicando el teorema del valor intermedio si existe un x0 tal que f(x0)=0.
Calcular la raíz f(x) para f(x)<=0,001
f(x)= x – e-x
Intervalos [a,b] = [0,1]
Evaluar los intervalos en f(x).
f(0) = 0 – e-0
f(0) = -1
f(1) = 1 – e-1
f(1)= 0.63
Observación:
f(0) x f(1) < 0
Existe x0 perteneciente [0,1]
Obtener los Auxiliares y la 1era iteración
[0,1] c = a+b/2
C = 0 + 1 / 2 = 0.5
f(0.5) = 0.5 – e-0.5
f(0.5) = -0.10
Observación:
f(0.5) < 0.
Reemplazar al extremo a, de 0 a 0.5
|E| = 0.10 (Debe ser <= 0.001)
El intervalo seria [0.5,1]
El Método de bisección continúa con el mismo procedimiento hasta encontrar el valor de la raíz.
Los cálculos se desarrollaran con extrema precisión, es decir tomar en cuenta 4 o más decimales.
La raíz se representa como el ultimo auxiliar mientras que f(aux)= 0 o |E|.
Algoritmo.
import java.io.*;
import java.lang.Math;
import java.math.*;
public class MetodoBise2 {
public static double funcion (double a){
double evaluacion;
evaluacion= a - (Math.exp(-a));
return evaluacion;
}
public static double leerreal(BufferedReader br) {
boolean error;
double real =0;
do{
error = false;
try {
real = Double.parseDouble(br.readLine());
}catch(NumberFormatException e){
System.out.println("Debe introducir un numero valido");
error = true;
}catch(IOException e){
System.out.println("Error del Sistema");
error = true;
}
}while(error);
return real;
}
public static void main (String[] args) {
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
double a;
double b;
System.out.println ("***** Metodo de Biseccion *****");
System.out.println ("f(x)= x - e^(-x)");
System.out.println ("Introducir Invertavalos !!!!");
System.out.println ("Invertalo a ");
a = leerreal(br);
System.out.println ("Intervalo b");
b = leerreal(br);
double verificaciondeA;
double verificaciondeB;
double auxiliar=0;
verificaciondeA= funcion(a); //negativa
verificaciondeB= funcion(b); //positiva
double evaluaciondeAux=0;
int i=0;
if (verificaciondeA*verificaciondeB < 0){
do{i++;
auxiliar = (a+b)/2;
evaluaciondeAux = funcion(auxiliar);
if (evaluaciondeAux<0){
a=auxiliar;
b=b;
auxiliar = (a+b)/2;
evaluaciondeAux = funcion(auxiliar);
}
else{
a=a;
b=auxiliar;
auxiliar= (a+b)/2;
evaluaciondeAux = funcion(auxiliar);
}
System.out.print("Auxiliar: "+auxiliar);
System.out.print (" La iteracion "+i+" es de: "+evaluaciondeAux); System.out.println (" ("+a+" ; "+b+")");
}while (evaluaciondeAux!=0);
}
else{
System.out.println ("No cumple el TEOREMA DE BOLZANO");
}
}
}
Descripción: El algoritmo comprende métodos que integran la ejecución del mismo. El método función utiliza como parámetro una variable tipo double capaz de evaluar y retornar el resultado. El método leerreal se encarga del manejo de excepciones utilizando el BufferedReader, se caracteriza por asegurarse de que el dato introducido sea un real y no un carácter o cualquier otro tipo no valido.
Al realizar la ejecución se tomara en cuenta los extremos del intervalo, ya que al evaluarlo se decidirá si continuar o finalizar el programa (teorema del Valor Intermedio). En las iteraciones se requiere el Do-While como ciclo y al mismo tiempo una serie de condicionales para el intercambio de valores. La ventaja del programa es la capacidad de encontrar el auxiliar que al evaluarlo en la función sea igual a 0, visualiza la cantidad de interaciones y demuestra que el método de bisección es fiable en la búsqueda de raíces.
Método de la Secante
Es un método de tipo abierto, el cual requiere de dos puntos iniciales, los cuales pueden ser arbitrarios. Lo que hace básicamente, es trazar rectas secantes a la curva de la ecuación que se está analizando, y verificar la intersección de dichas rectas con el eje de las X para conocer si es la raíz que se busca.
Es una variación del método de Newton-Raphson donde en vez de calcular la derivada de la función en el punto de estudio, teniendo en mente la definición de derivada, se aproxima la pendiente a la recta que une la función evaluada en el punto de estudio y en el punto de la iteración anterior.
Ecuación Recursiva
Xk+1= xk-1 – yk-1 (xk – xk-1)
(yk – yk-1)
Ejemplo 2: Aplicar el método de la secante y encontrar la raíz de la siguiente función.
f(x) = x – e-x
Intervalo
...