Newton y Biseccion PDF

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

METODO DE BISECCION

#include
<iostream>
#include <cmath>

using namespace std;

float ecuacion(float valor) {


return pow(valor, 3) + 4 * (pow(valor, 2)) - 10;
}

int main() {
int aux = 1;
/*
a = inferior
b = superior
*/
float a = 1;
float b = 2;
float xi_xi = 0;
float ultimo_xi = 0;

printf(
"|-----------------------------------------------------------------------"
"--------------------------------------------\n");
printf(
"| i | a | b | f(a) | f(b) | xi "
" | f(xi) |f(a) * f(xi) | xi-xi_ |\n");
printf(
"|-----------------------------------------------------------------------"
"--------------------------------------------\n");
while (1) {
float fa = ecuacion(a);
float fb = ecuacion(b);
float xi = (a + b) / 2;
float fxi = ecuacion(xi);
float fa_fxi = fa * fxi;
xi_xi = abs(xi - ultimo_xi);
printf(
"|%3d |%12.8f |%12.8f |%12.8f |%12.8f |%12.8f |%12.8f |%12.8f "
"|%12.8f\n",
aux, a, b, fa, fb, xi, fxi, fa_fxi, xi_xi);
auxr++;
if (fa_fxi > 0) {
a = xi;
} else {
b = xi;
}
ultimo_xi = xi;
if (xi_xi == 0) {
break;
}
}
}
METODO DE NEWTON

#include<cmath>

#include <iostream>

using namespace std;

float ecuacion(float valor) {


return pow(valor, 3) + 4 * pow(valor, 2) - 10;
}

float derivada(float valor) {


return pow((2 * valor), 2) + 8 * valor;
}

int main() {
int aux = 0;
float xi = 0.75;
float xi_xi = 0;
float ultimo_xi = 0;
printf("Método de Newton\n");
printf("Problema: x^3 + 4x^2 -10\n");
printf("Derivado: 2x^2 + 8x\n\n\n");
printf("+----+-------------+-------------+-------------+-------------+-------"
"-----+\n");
printf("+ i | xi | f(xi) | f'(xi) | xi + 1 | "
"xi_xi |\n");
printf("+----+-------------+-------------+-------------+-------------+-------"
"-----+\n");
while (1) {
float fxi = ecuacion(xi);
float _fxi = derivada(xi);
float xi_1 = xi - (fxi / _fxi);
printf("|%3d |%12.8f |%12.8f |%12.8f |%12.8f |%12.8f|\n", iterador, xi, fxi,
_fxi, xi_1, xi_xi);
aux++;
ultimo_xi = xi;
xi = xi_1;
xi_xi = abs(xi - ultimo_xi);
if (xi_xi == 0) {
printf("+----+-------------+-------------+-------------+-------------+---"
"---------+\n");
break;
}
}
}

You might also like