This document was uploaded by user and they confirmed that they have the permission to share
it. If you are author or own the copyright of this book, please report to us by using this DMCA
report form. Report DMCA
INSTITUTO TECNOLÓGICO DE TOLUCA PROGRAMACIONES DE METODOS NUMERICOS CALIF. : ______ CARRERA: ING. MECATRÓNICA MATERIA: METODOS NUEMERICOS GRUPO: 187701 PROFESOR: OSORIO DE JESUS NAYELY ALUMNO: ALMARAZ MEDINA JOSE HILARIO
TOLUCA, MÉX. A 27 DE FEBRERO DE 2019
PUNTO FIJO #include <stdio.h> #include <math.h> #define e 2.718281828
scanf("%lf", &TOL);
}
printf("Numero maximo de iteraciones: ");
else{
scanf("%d", &N);
//paso 5
//paso 1
double fun (double);
i++;
i = 1; main (){
y el resultado se da en la 6ta. iteracion*/
P0 = P;
//paso 2
/*Para resolver la funcion siguiente x = 2 e^x + x^2/3 con N = 10 o mas iteraciones TOL = 0.001 P0 =0
//paso 6
OK = 1;
int i, N, OK;
P = fun (P0);
b = fabs(P - P0);
printf ("Metodo Punto Fijo\n");
printf("Numero de iteraciones N = %d\n", i);
printf("Tolerancia TOL:
printf("\n\nEl metodo fallo con un numero de iteraciones N = %d\n\n", N);
//paso 4
printf("Solucion aproximada P = %12.8f\n", P);
");
if(OK == 1)
//paso 3
if(b < TOL){
scanf ("%lf", &P0);
//paso 7
1){
printf("Antes de continuar, cambia la funcion para un nuevo prblema\n");
printf("Aproximacion inicial P0: ");
}
while(i <= N && OK ==
printf("%d\t%12.8f\n", i, P); double P0,TOL,P,b;
}
printf("\n\nI\t\tP\n");
return 0; }//cambia la funcion para un nuevo problema double fun(double x){ double a; a = (2 - pow (e, x) + x*x)/3; return a; }
printf("Tolerancia TOL = %5.11f\n\n", TOL); OK = 0;
PUNTO FIJO
NEWTON-RAPHSON
RAICES MULTIPLES
SECANTE
NEWTON-RAPHSON #include #include // setprecision
cout << setprecision(PRECISION); // Se establece la precisión
#include
cout << "\nCalculo de las raices de una funcion aplicando el metodo de Newton - Raphson\n";
// La diferencia entre dos aproximaciones sucesivas es también conocida como error. // La condición de terminación consiste en que que el error debe ser <= que la tolerancia dada
do {
if (iteracion > MAX_ITERACIONES) {
// Si se cumple la condición de terminación, se ha encontrado la raiz aproximada buscada.
converge = false; // Se sobrepasó la máxima cantidad de iteraciones permitidas
if (error <= tolerancia) { // Condición de terminación
break;
converge = true; break;
} else { x1 = x0 - f(x0) / f_derivada(x0); // Cálculo de la siguiente aproximación
// Si no se cumple el criterio de terminación, se pasa a la siguiente iteración
error = fabs(x1 - x0); // El error es la diferencia entre dos aproximaciones sucesivas
} else { x0 = x1; iteracion++;
// Se imprimen los valores de la siguiente aproximación x1, f(x1), f_derivada(x1), error
} }
cout << "\nIteracion #" << iteracion << endl;
} while (1);
} // Respuesta final if (converge) { cout << "\n\nPara una tolerancia de " << tolerancia << " la raiz de f es: " << x1 << endl;