ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

PROGRAMARIO: BISECCIÓN, REGLA FALSA, NEWTON-RAPHSON, FACTORES CUADRÁTICOS


Enviado por   •  21 de Febrero de 2020  •  Práctica o problema  •  3.157 Palabras (13 Páginas)  •  137 Visitas

Página 1 de 13

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO

FACULTAD DE INGENIERÍA

PROGRAMARIO: BISECCIÓN, REGLA FALSA, NEWTON-RAPHSON, FACTORES CUADRÁTICOS

ANÁLISIS NUMÉRICO

Método de bisección

Obtenga la raíz positiva de la función , empleando el método de bisección. Con una tolerancia menor o igual a 0.001.

Intervalo (1,2)

a=1

b=2

→ converge

Primera iteración

Evaluando f(x₀)

Como f(x₀)<0 entonces se cambia por b

Nuevo intervalo [1,0.2525]

Evaluando f(x₁)

Como f(x₁)>0 cambia a

Nuevo intervalo

[1.2254,0.373]

Evaluando f(x₂)

=1.007

Como f(x₁)>0 cambia a

Nuevo intervalo

[1.007,0.373]

Iterando n veces

[1.41, 0]

Error absoluto 0.0001

ALGORITMO DE LA BISECCION

Cálculo de una solución aproximada de la ecuación f(x)= 0, siendo f continua en [a, b] y f(a)f(b)<0.

ENTRADA: a, b, f; N (número máximo de iteraciones)

SALIDA:Solución aproximada s

1.Tomar i =1

2. Mientras que i <= N hacer

2.1.s=(ab)/2

2.2. Si f(s) =0 entonces s= solución exacta.

2.3. Si f(a)f(s)<0 entonces b=s Si f(a)f(s)> 0 entonces a=s

2.4. i = i+1

3. Salida s: "solución aproximada"

4.FIN

Codigo

public double metodo_biseccion(funcion func,double interv_me,double interv_ma,double tolerancia,Error tipo_tolerancia){

double f_x;

n_tol=1000;

x_i = 0;

x_i1 = 0;

//verifica que haya solo una raiz en el intervalo para continuar con el metodo

if(func.f(interv_ma)*func.f(interv_me) > 0){

System.out.println("puede haber mas de una raiz, declare otro intervalo");

return -1;

}

//en caso de ser un intervalo decreciente (f(a) > 0 y f(b) < 0 ) se cambia el orden del intervalo ([b,a])

if(func.f(interv_ma) < 0 && func.f(interv_me) > 0){

f_x = interv_ma;

interv_ma = interv_me;

interv_me = f_x;

}

System.out.println("\n----Metodo de biseccion----\n=====================================");

//inicia la formula recirrente

for(int i=1; n_tol > tolerancia;i++){ //ciclo el cual temina cuando la tolerancia < a la proporcionada

x_i = x_i1;//actualizo el valor aproximado

x_i1 = (interv_ma + interv_me)/2;//calculo el nuevo valor real

f_x = func.f(x_i1);//obtengo f(x_i+1)

if (f_x < 0){ //si f(x_i+1) es menor a cero

interv_me = x_i1;//el valor de a(extremo inferior del intervalo) cambia al de x_i+1; [a,x_i+1]

}else{;//si f(x_i+1) es mayor a cero

interv_ma = x_i1;//el valor de b(extremo superior del intervalo) cambia al de x_i+1: [a,x_i+1]

}

if(i > 1){ //si estamos en una iteracion diferente de la primera

n_tol = tipo_tolerancia.calcula_error(x_i1,x_i);//calculamos el error (absoluto o relativo)

}

System.out.println("\n****Iteracion " + i + "****\nx_i: " + x_i + "\nx_i+1: " + x_i1 + "\nTolerancia: " + n_tol + "\nIntervalo: [" + interv_me + "," + interv_ma + "]");

}

System.out.println("\n=====================================\n===>La raiz es: " + x_i1);

return x_i1;

}

Método de la regla falsa

Cálculos

Obtenga la raíz positiva de la función , empleando el método de Regla Falsa. Con una tolerancia menor o igual a 0.001.

Intervalo (1,2)

a=1

b=2

→ converge

Primera iteración : i=0

Segunda iteración i=1

.44903

Eabs= |- |=0.16205>Tol

Tercera iteración i=2

a=

b=

Eabs= |- |=0.04225>Tol

Cuarta iteración i=3

a=

b=

Eabs= |- |=0.00278

Quinta iteración i=4

a=

b=

Eabs= |- |=0.00025< Tol ; → raiz

ALGORITMO

1. Ingresar función→ f(x)

2. Ingresar tolerancia→ Tol

3. Ingresar intervalo inicial (a,b)

4. Evaluar a y b en la función f(x)

5. Multiplicar f(a)*f(b)

5.1 Si f(a)*f(b)<0 continuar al paso 6

5.2 Si f(a)*f(b)>0 regresar al paso 3

6. Calcular la aproximación

...

Descargar como (para miembros actualizados) txt (13 Kb) pdf (70 Kb) docx (561 Kb)
Leer 12 páginas más »
Disponible sólo en Clubensayos.com