NOMBRE:
José de Jesús Gaytán Ramírez
MAESTRO(A):
Ing. Ma Concepción Sandoval Solís
MATERIA:
Métodos Numéricos
SEMESTRE:
4to
CARRERA:
Sistemas Computacionales
HORA:
10:30-12:10 lunes y miércoles
AULA:
C-D4
Programa
Método de Newton Raphson
Problema a resolver
f(x) = x3 - 2x – 2
Código fuente
Clase
package Metodos;
import javax.swing.JOptionPane;
public class NewtonRaphson {
double x0, tol;
int No_ite;
public void Resuelve(double x1, double tolerancia, int iteraciones){
x0 = x1;
tol = tolerancia;
No_ite = iteraciones;
}
//El método funcion evalua la funcion original
public double funcion(double x){
//Función a evaluar: f(x) = x^3 - 2x – 2
double y = (x*x*x) - 2*x - 2;
return y;
}
//El método derivada es la derivada de la funcion original
public double derivada(double x){
double z = (3*x*x) - (2*x);
return z;
}
//El método calculaRaiz obtiene el valor de la raíz en cada iteración
public void calculaRaiz(){
double x = x0;
double anterior = 0;
int n = 0;
while(((Math.abs(x-anterior))/x)*100>tol){
n = n+1;
anterior = x;
if(n > No_ite)
break;
double y = funcion(x);
double fdx= derivada(x);
x = anterior - (y/fdx);
}
JOptionPane.showMessageDialog(null, "La raiz es = "+x+" "
+ "\nEl resultado fue en: "+ n+" iteraciones"
+ "\nPorcentaje de error = "+tol+"%");
}
}
Main
package Metodos;
import javax.swing.JOptionPane;
public class PruebaNewtonRaphson {
public static void main(String[] args) {
double Xin, tolerancia;
int Ite;
NewtonRaphson NR = new NewtonRaphson();
Xin = Double.parseDouble(JOptionPane.showInputDialog("Ingresa el valor de X"));
tolerancia = Double.parseDouble(JOptionPane.showInputDialog("Ingresa la
tolerancia"));
Ite = Integer.parseInt(JOptionPane.showInputDialog("Ingresa el No. de iteraciones"));
NR.funcion(Xin);
NR.derivada(Xin);
NR.Resuelve(Xin, tolerancia, Ite);
NR.calculaRaiz();
}
}
Corrida del programa
Captura de datos necesarios
Impresión del resultado
Comprobación del ejercicio