Reporte Nombre: Francisco Javier Castillo Montes Matrícula: 2764254 Nombre del curso: Nombre del profesor: Métodos numé
Views 98 Downloads 44 File size 1MB
Reporte
Nombre: Francisco Javier Castillo Montes Matrícula: 2764254 Nombre del curso: Nombre del profesor: Métodos numérico Módulo:
Santiago Banda Muñoz Actividad:
Módulo 2 Fecha: 19 de septiembre de 2016
Actividad 7
Bibliografía TecMilenio. (19 de Septiembre de 2016). BlackBoard. Obtenido de https://miscursos.tecmilenio.mx/bbcswebdav/institution/UTM/semestre/profesio nal/ti/ti13201/bb/tema7.htm
Objetivo: Conocer las diferencias entre los distintos métodos para encontrar raíces. Procedimiento: 1. Leer el tema 2. Leer la actividad 3. Realizar ejemplos 4. Realizar ejemplos de actividad 5. Realizar reporte Resultados: Método de bisección
class Program { static void Main(string[] args) { double x_nueva, x_vieja, y_nueva, y_vieja, punto_medio, y_media, paso, variable_criterio; variable_criterio = 0.0000001; punto_medio = 0; x_vieja = 0; //Este es el punto de inicio x_nueva = -4; //Este es el tamaño de paso paso = 1;
Reporte //Se evalúa la función antes de entrar al ciclo y_nueva = 2 * x_nueva * x_nueva - 5 * x_nueva +1; y_vieja = y_nueva; //Mientras la y_nueva y la y_vieja tengan el mismo signo //sigue en el ciclo buscando while (y_nueva*y_vieja >0 ) { x_vieja = x_nueva; x_nueva = x_vieja + paso;
}
y_vieja = y_nueva; //Esta es la función a evaluar y_nueva = 2 * x_nueva * x_nueva - 5 * x_nueva +1;
if (y_nueva == 0) { Console.WriteLine("Ya se encontró la raiz en " + x_nueva); } while ((Math.Abs(y_nueva) > variable_criterio) & (Math.Abs(y_vieja) > variable_criterio)) { punto_medio = (x_vieja + x_nueva) / 2; y_media = 2 * punto_medio * punto_medio - 5 * punto_medio + 2; if (y_media * y_nueva > 0) { x_nueva = punto_medio; y_nueva= y_media; } else { x_vieja = punto_medio; y_vieja = y_media; } } Console.WriteLine("El intervalo en el que está la raíz está entre " + x_vieja + " y " + x_nueva); Console.WriteLine("El punto medio es: " + punto_medio); Console.ReadLine(); } }
}
Reporte
Método de secante
class Program { static void Main(string[] args) { double x_nueva, x_vieja, y_nueva, y_vieja, punto_medio, y_media, paso, variable_criterio; variable_criterio = 0.0000001; punto_medio = 0; x_vieja = 0; //Este es el punto de inicio x_nueva = -4; //Este es el tamaño de paso paso = 1; //Se evalúa la función antes de entrar al ciclo y_nueva = 2 * x_nueva * x_nueva - 5 * x_nueva + 1; y_vieja = y_nueva; //Mientras la y_nueva y la y_vieja tengan el mismo signo //sigue en el ciclo buscando while (y_nueva * y_vieja > 0) { x_vieja = x_nueva; x_nueva = x_vieja + paso; y_vieja = y_nueva; //Esta es la función a evaluar y_nueva = 2 * x_nueva * x_nueva - 5 * x_nueva + 1;
Reporte } if (y_nueva == 0) { Console.WriteLine("Ya se encontró la raiz en " + x_nueva); } while ((Math.Abs(y_nueva) > variable_criterio) & (Math.Abs(y_vieja) > variable_criterio)) { punto_medio = x_vieja + (y_nueva * (x_vieja - x_nueva) / (y_vieja - y_nueva)); y_media = 2 * punto_medio * punto_medio - 5 * punto_medio + 1; if (y_media { x_nueva y_nueva } else { x_vieja y_vieja }
* y_nueva > 0) = punto_medio; = y_media;
= punto_medio; = y_media;
} Console.WriteLine("El intervalo en el que está la raíz está entre " + x_vieja + " y " + x_nueva); Console.WriteLine("El punto medio es: " + punto_medio); } }
Console.ReadLine();
}
Método de Newton-Raphson
Reporte
static void Main(string[] args) { double x, y, dy, variable_criterio; variable_criterio = 0.001; x = -4; y = 2 * x * x - 5 * x + 1;
while (Math.Abs(y) > variable_criterio) { y = 2 * x * x - 5 * x + 1; dy = 4 * x - 5; x = x - (y / dy); } Console.WriteLine("La x final es: " + x); Console.WriteLine("La y final es: " + y); Console.ReadLine(); }
1.
Realiza un programa que haga lo siguiente: a. Encuentre la raíz de la ecuación
Por el método de bisección. b.
El programa debe de contar cuántos ciclos se utilizaron para llegar al criterio de convergencia.
Reporte static void Main(string[] args) { double x_nueva, x_vieja, y_nueva, y_vieja, punto_medio, y_media, paso, variable_criterio; variable_criterio = 0.0000001; punto_medio = 0; x_vieja = 0; //Este es el punto de inicio x_nueva = -4; //Este es el tamaño de paso paso = 1; //Se evalúa la función antes de entrar al ciclo y_nueva = 1 * x_nueva * x_nueva * x_nueva - 1 * x_nueva * x_nueva + 4 *x_nueva - 2; y_vieja = y_nueva; //Mientras la y_nueva y la y_vieja tengan el mismo signo //sigue en el ciclo buscando while (y_nueva * y_vieja > 0) { x_vieja = x_nueva; x_nueva = x_vieja + paso; y_vieja = y_nueva; //Esta es la función a evaluar y_nueva = 1 * x_nueva * x_nueva * x_nueva - 1 * x_nueva * x_nueva + 4 * x_nueva - 2; } if (y_nueva == 0) { Console.WriteLine("Ya se encontró la raiz en " + x_nueva); } while ((Math.Abs(y_nueva) > variable_criterio) & (Math.Abs(y_vieja) > variable_criterio)) { punto_medio = (x_vieja + x_nueva) / 2; y_media = 1 * punto_medio * punto_medio * punto_medio - 1 * punto_medio * punto_medio + 4 * punto_medio - 2; if (y_media { x_nueva y_nueva } else { x_vieja y_vieja }
"
* y_nueva > 0) = punto_medio; = y_media;
= punto_medio; = y_media;
} Console.WriteLine("El intervalo en el que está la raíz está entre + x_vieja + " y " + x_nueva); Console.WriteLine("El punto medio es: " + punto_medio); Console.ReadLine();
Reporte }
}
}
2.
Haz un programa que haga lo siguiente: a. Encuentre la raíz de la ecuación
Por el método de la secante. b.
El programa debe de contar cuantos ciclos se utilizaron para llegar al criterio de convergencia.
class Program { static void Main(string[] args) { double x_nueva, x_vieja, y_nueva, y_vieja, punto_medio, y_media, paso, variable_criterio; variable_criterio = 0.0000001; punto_medio = 0; x_vieja = 0; //Este es el punto de inicio x_nueva = -4; //Este es el tamaño de paso paso = 1; //Se evalúa la función antes de entrar al ciclo y_nueva = 1 * x_nueva * x_nueva * x_nueva - 1 * x_nueva * x_nueva + 4 * x_nueva - 2; y_vieja = y_nueva; //Mientras la y_nueva y la y_vieja tengan el mismo signo
Reporte //sigue en el ciclo buscando while (y_nueva * y_vieja > 0) { x_vieja = x_nueva; x_nueva = x_vieja + paso; y_vieja = y_nueva; //Esta es la función a evaluar y_nueva = 1 * x_nueva * x_nueva * x_nueva - 1 * x_nueva * x_nueva + 4 * x_nueva - 2; } if (y_nueva == 0) { Console.WriteLine("Ya se encontró la raiz en " + x_nueva); } while ((Math.Abs(y_nueva) > variable_criterio) & (Math.Abs(y_vieja) > variable_criterio)) { punto_medio = x_vieja + (y_nueva * (x_vieja - x_nueva) / (y_vieja - y_nueva)); y_media = 1 * punto_medio * punto_medio * punto_medio - 1 * punto_medio * punto_medio + 4 * punto_medio - 2;
}
if (y_media { x_nueva y_nueva } else { x_vieja y_vieja }
* y_nueva > 0) = punto_medio; = y_media;
= punto_medio; = y_media;
Console.WriteLine("El intervalo en el que está la raíz está entre "
+ x_vieja + " y " + x_nueva); Console.WriteLine("El punto medio es: " + punto_medio); } }
}
Console.ReadLine();
Reporte
2.
Haz un programa que haga lo siguiente: a. Encuentre la raíz de la ecuación
dY= 3x2 – 2x + 4 Por el método de Newton-Raphson. b.
El programa debe de contar cuantos ciclos se utilizaron para llegar al criterio de convergencia.
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { double x, y, dy, variable_criterio;
Reporte variable_criterio = 0.001; x = -4; y = 1 * x * x * x - 1 * x * x + 4 *x - 2 ; while (Math.Abs(y) > variable_criterio) { y = 1 * x * x * x - 1 * x * x + 4 * x - 2; dy = 3 * x * x - 2 *x + 4; x = x - (y / dy); } Console.WriteLine("La x final es: " + x); Console.WriteLine("La y final es: " + y); }
Console.ReadLine(); } }
Conclusión: En esta actividad vimos lo diferentes ejemplos por los cuales por los cuales resolvemos de diferentes maneras para resolver las raíz de la ecuación. Y por lo tanto dependerá de la ecuación que se esté manejando será el método que se tomara en cuenta para resolver la ecuación.