Accede a apuntes, guías, libros y más de tu carrera 1-metodos-numricos-agri 66 pag. Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Manual subsubsection Aritmétical@subsubsection subsubsection[3]@@subsubsection12 MÉTODOS NUMÉRICOS CON PYTHON MS.c José Carlos Juárez Pulache Ing. Agrícola - Semestre 2020 I Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Índice general Capítulo 1. Introducción al curso Página 4 1.1. Introducción a los métodos numéricos . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Instalación de python con Anaconda . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.1. Instalación de Anaconda Distribution . . . . . . . . . . . . . . . . . . 11 1.2.2. Abriendo Anaconda Navigator . . . . . . . . . . . . . . . . . . . . . . 14 1.2.3. Entorno de Python mediante Jupyter . . . . . . . . . . . . . . . . . . . 15 1.2.4. Programación en python . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2.5. Cargar librerías . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 1.3. Teoría de errores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.3.1. Formas de calcular el error . . . . . . . . . . . . . . . . . . . . . . . . 25 Capítulo 2. Ecuaciones no lineales Página 30 2.1. Métodos de solución de una ecuación no lineal . . . . . . . . . . . . . . . . . 32 2.1.1. Método de la bisección . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1.2. Método de la falsa posición . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.3. Método del punto fijo . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.1.4. Método de Newton Raphson . . . . . . . . . . . . . . . . . . . . . . . 54 2.1.5. Método de la secante . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 UNSCH Pag. 1 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com INTRODUCCIÓN L a matemática es una de las ciencias que ha preocupado y sorprendido al hombre por su exactitud y complejidad; por ello este manual de trabajo está dirigido a los estudiantes de “Ingeniería Agrícola”- UNSCH, con el propósito de encaminar su comprensión de la misma en cuanto a la programación de algoritmos que permitan la simulación de un problema real mediante un modelo matematico, haciendo uso del computador. Todos los fenónemos naturales o artificiales estan representados por una ecuación matemática llamado modelo matemático, que en algunos casos no es posible resolverlo analíticamente por ello es necesario el uso de los ´´Métodos Numéricos” Es en esta etapa de su carrera es donde el estudiante le encuentra sentido a la matemática mediante la simulación matemática de los fenómenos reales que puede observar en el medio donde vive y descubrir el propósito de la existencia de la misma y su estudio. En el Capítulo I, se expone el fundamento teórico y práctico de la teoría de errores y los métodos de solución de una ecuación algebraica no lineal, en el Capítulo II, se expone la explicación de la interpolación y ajuste de curvas, en el Capítulo III, se expone, la Solución de las ecuaciones diferenciales y en el Capítulo IV, se expone, la Resolución y métodos para solución de sistema de ecuaciones lineales En este manual hemos elegido Python V. 3.7.3 por tres razones. En primer lugar, Python es fácil de aprender. Hoy en día Python es el lenguaje preferido para introducir a los estudiantes universitarios en la programación. Si tienes experiencia en programación, pero no tienes experiencia con Python, comprenderás Python muy rápidamente. Por otro lado, Python es un lenguaje de programación que se usa en muchos casos en el mundo, el cual se identifica como un lenguaje de programación de alto nivel, razón por la que es más sencillo de aprender y con la ventaja de ser de código abierto. En segundo lugar, Python ofrece muchas prestaciones. Python es lenguaje de programación muy general,y sobresale en la manipulación de datos, programación de red y bases de datos. Por último, Python contiene un gran conjunto de librerías para ciencia de los datos que puedes utilizar. MS.c José Carlos Juárez Pulache Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com OBJE TIVOS Objetivos Generales: • Realizar una simulación numérica que nos permita resolver un modelo matemático basado en ecuaciones no lineales, ecuaciones diferenciales o sistemas de ecuaciones lineales, utilizando un software libre. Objetivos Específicos: Los objetivos al finalizar el curso son: • Resolver numericamente una ecuación algebraíca no lineal. • Encntrar un polinomio interpolante que se ajuste a un conjunto de datos. • Aprender a usar y programar en “Python”, un sotfware libre para todos. Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Capítulo 1 MÉTODOS NUMÉRICOS PARA LA INVESTIGACIÓN I NTRODUCCIÓN AL CURSO Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.1 Introducción a los métodos numéricos Todos los fenómenos naturales o artificiales se relacionan con la matemática; la cual permite un conocimiento más profundo del fenómeno, así como de su evolución futura. La ciencia y la tecnología describen los fenómenos naturales o artificiales mediante modelos matemáticos. La matemática aplicada es la rama de las matemáticas que se dedica a buscar y aplicar las herramientas más adecuadas a los problemas basados en estos modelos. Desafortunadamente, no siempre es posible aplicar métodos analíticos clásicos por diferentes razones: No se adecúan al modelo concreto. Su aplicación resulta excesivamente compleja. La solución formal es tan complicada que hace imposible cualquier interpretación posterior. Simplemente no existen métodos analíticos capaces de proporcionar soluciones al problema. En estos casos son útiles las técnicas numéricas, que mediante una labor de cálculo más o menos intensa, conducen a soluciones aproximadas que son siempre numérica. UNSCH Pag. 5 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Por ello en la actualidad los métodos numéricos han sido desarrollados con el objetivo de resolver problemas matemáticos cuya solución es difícil o imposible de obtener por medio de los procedimientos tradicionales Para desarrollar el problema matemático(modelo matemático); es necesario la utilidad de un ordenador(computadora) con el software de programación adecuado. Sin ordenador Con ordenador ¿Qué es un método numérico? Definición: Es una técnica o procedimiento a mediante el cual es posible obtener de manera aproximada la solución de ciertos problemas realizando operaciones aritméticas elementales, cálculo de funciones, lógica proposicional, etc. El procedimiento consiste en una lista finita de instrucciones precisas que especifican una secuencia de operaciones algebraicas y lógicas conocida como algoritmo, que producen o bien una aproximación de la solución del problema o bien un mensaje a Para hallar la solución numérica de un modelo matemático es necesario utilizar diagramas de flujo 1 los cuales nos facilitarán el proceso de la programación. Los diagramas de flujo emplean figuras geométricas y flechas, cada una de las cuales representan un determinado paso u operación del algoritmo.2 1 Diagrama de flujo. Es una representación gráfica de un algoritmo. Algoritmo. Es un conjunto ordenado y finito de operaciones simples a través del cual podemos hallar la solución a un problema 2 UNSCH Pag. 6 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Simbolo Nombre Terminal Función Representa el inicio o el final de un programa. Lineas de flujo Representan el flujo de la lógica. Los arcos en la flecha horizontal indican que ésta pasa sobre las líneas de flujo verticales y no se conecta con ellas. Representa cálculos o manipulación de datos. Proceso Entrada/Salida Representa entrada o salida de datos e información Decisión Representa una comparación, una pregunta o una decisión que determina los caminos alternativos a seguir. Representa la confluencia de líneas de flujo. Unión Tabla 1.1: Simbolos usados en el diagrama de flujo Ejemplos de diagramas de flujo Condición Verdadero Bloque Verdadero Pseudocódigo: if condición: Bloque Verdadero Estructura para una alternativa Pseudocódigo: Falso Bloque Falso Condición Verdadero Bloque Verdadero if condición: Bloque Verdadero else: Bloque Falso Estructura para dos alternativas UNSCH Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Pag. 7 Falso Falso Falso Condición 3 Condición 2 Verdadero Bloque 4 Condición 1 Verdadero Pseudocódigo: Verdadero Bloque 1 Bloque 2 Bloque 3 if condición 1: Bloque 1 elif condición 2: Bloque 2 elif condición 3: Bloque 3 else: Bloque 4 Estructura para varias alternativas Ejemplo 1 Hacer un diagrama de flujo, pseudocódigo que compare 2 números cualsquiera. inicio ingresar 2 números a, b V F a=b F a es igual a b a es menor que b a>b V a es mayorr que b end Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 2 Hacer un diagrama de flujo, pseudocódigo para resolver la siguiente ecuación cuadrática ax2 + bx + c = 0 inicio ingresar a,b y c V F a=0 x1=-c/b 2 det=b -4ac x2=-c/b F x1=(-b+sqrt(det))/2a x2=(-b-sqrt(det))/2a det<0 V tiene 2 raices complejas y conjugadas mostrar x1, x2 end Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 3 Hacer un diagrama de flujo, pseudocódigo para ordenar tres números reales de menor a mayor. Solución Solución UNSCH Pag. 10 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.2 Instalación de python con Anaconda ¿Qué es Anaconda? Anaconda es una distribución de Python que contiene los paquetes más usados en temas de ciencia, matemáticas o ingeniería como: NumPy, SciPy o Matplotlib, etc. Se distribuye bajo licencia BSD de tres cláusulas así que se considera un software libre. 1.2.1. Instalación de Anaconda Distribution Para instalar Anaconda Distribution, de una manera sencilla, debemos tener en cuenta los pasos siguientes: Primer paso: Descargar Anaconda Segundo paso: Elige la versión de python 2.7 o 3.7 (Recomendamos 3.7) Tercer paso: Elegir instalador grafico de 64 bits o 32 bits(de acuerdo a su computador) Primer paso Primer paso Segundo paso Tercer paso UNSCH Pag. 11 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Una vez descargado Anaconda, siga los siguientes pasos: Cuarto paso: Dar click en ejecutar. Quinto paso: Aceptar la licencia de fabricación. Sexto paso: Instalar el producto para usted (Just Me (recommended)). Séptimo paso: Elegir la ruta de instalación Octavo paso: Agregar Anaconda a mi variable de entorno PATH Noveno paso: Configurando la instalación. Click Click Cuarto paso Cuarto paso Click Quinto paso Click Sexto paso UNSCH Pag. 12 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Click Séptimo paso Octavo paso Click Octavo paso Noveno paso Click Noveno paso Click Noveno paso UNSCH Pag. 13 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.2.2. Abriendo Anaconda Navigator Mediante el buscador de su PC, abrir Anaconda Navigator; siguiendo los siguientes pasos. CLICK CLICK Primer paso Segundo paso CLICK Tercer paso Cuarto paso CLICK Quinto paso Sexto paso UNSCH Pag. 14 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.2.3. Entorno de Python mediante Jupyter ¿Qué es python? Python es un lenguaje de programación interpretado 3 de tipado dinámico cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Características Interpretado: Se ejecuta sin necesidad de ser procesado por el compilador y se detectan los errores en tiempo de ejecución. Tipado dinámico: Las variables se comprueban en tiempo de ejecución. Multiplataforma: disponible para plataformas de Windows, Linux o MAC. Multiparadigma: Soporta programación funcional, programación imperativa y programación orientada a objetos. Python, es el tercer lenguaje de programación más popular del mundo, y ha tenido un rápido crecimiento durante los últimos años. ¿Porqué utilizar python? Porque permite resolver problemas en menos tiempo y con menos código. Esta es precisamente una de las razones por las que empresas como Google, Dropbox o Facebook lo utilizan. Es un lenguaje multipropósito utilizado para resolver todo tipo de tareas como: Análisis de datos Inteligencia Artificial Aprendizaje automático Deep Learning Machine Learning Desartollo Web 3 Normalmente los lenguajes de programación se pueden agrupar en Interpretados y Compilados según la forma en la que son traducidos. Imaginate que nuestro computador trabaja en código binario y sería muy difícil programar todo en unos y ceros, además de que nos tardaríamos mucho. Por eso cuando nosotros escribimos un código en realidad lo que estamos haciendo es hablar un lenguaje más fácil de comprender para nosotros y que luego será traducido a lenguaje de máquina que es lo que puede entender el procesador. Entonces, a la forma como se realiza esta traducción es lo que los agrupa en Interpretados o Compilados. UNSCH Pag. 15 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ¿Como funciona python? Para trabajar en el entorno de python, debe abrir un cuaderno de python y guardarlo con el nombre que el usuario desea. Lo puede guardar de 2 maneras, tal como se muestra en las gráficas siguientes. Primero: Dando click en file y seleccionando Guardar como Segundo: Dando doble click en Untitled y escribiendo el nombre que Ud. desea Primero Segundo Operaciones Aritméticas En el cuaderno de python para ejecutar las operaciones; se hace presionando las teclas Shift + Enter simultáneamente o dando click en Run. Y se usa el simbolo (#) para hacer comentrios en cada fila del cuaderno. CHIFT + ENTER Cuaderno de python UNSCH Pag. 16 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.2.4. Programación en python En la programación con python, existen 2 comandos muy importantes que permiten ingresar datos por teclado y mostrar datos en pantalla. input print input input(“Ingrese un número:”) Para realizar posteriores operaciones con los datos ingresados, es necesario guardarlos en una variable. Además tambien es necesario declarar el tipo de variable, ya sea de tipo entero (int) o real (float) input a=input(“Ingrese un número:”) a=int(input(“Ingrese un número:”)) a=float(input(“Ingrese un número:”)) print print(“La solución es:”) Ejemplo 4 Ejemplo 5 Calcule la suma de dos números enteros Calcule el área de un triángulo Solución Solución a=int(input(“Ingrese el primer número”)) b=int(input(“Ingrese el segundo número”)) S=a+b print(“La suma es:”,S) b=float(input(“Ingrese la base”)) h=float(input(“Ingrese la altura”)) Area=(b*h)/2 print(“El área es:”,Area) UNSCH Pag. 17 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Sentencias condicionales if...else... La estructura de control if ... else ... permite que un programa ejecute unas instrucciones cuando se cumple una condición y otras instrucciones cuando no se cumple esa condición. La sintaxis es: if condición: instrucción 1 else: instrucción 2 Ejemplo 6 Hacer un programa para comparar 2 números enteros es impar es par El número Falso El número resto=0 Inicio Verdadero resto=a/2 a Ingrese Inicio Ingrese número es par Hacer un programa para determinar si un Ejemplo 7 Falso ayb a>b Verdadero a es mayor a es menor que b que b Fin Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com elif La sintaxis de la sentencia condicional elif es: if condición 1: instrucción 1 elif condición 2: instrucción 2 elif condición 3: instrucción 3 else: instrucción 4 Ejemplo 8 Hacer un programa para determinar la cantidad de dígitos de un número menor que 1000 Inicio Ingrese un número a< 1000 Falso Falso Falso 10<=a<100 100<=a<1000 Verdadero 0<=a<10 Verdadero Verdadero 1 dígito 2 dígitos a=int(input(“Ingres Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com H for for es un bucle a que repite el bloque de instrucciones un número prederminado de veces. El bloque de instrucciones que se repite se suele llamar cuerpo del bucle y cada repetición se suele llamar iteración. La sintaxis de la sentencia de repetición for es: for variable in elemento iterable b Cuerpo del bucle a b Bucle: Es una estructura de control que repite un11 bloque de instrucciones. Ejemplo Usando una lista Elemento iterable: Puede ser una lista, cadena, range, etc Hacer un programa que repita el siguiente mensaje Saluden al ingresar al aula. Por favor en el cual la variable recorra una lista Ejemplo 10 Usando una lista Hacer un programa que repita el siguiente mensaje Saluden al ingresar al aula. Por favor en el cual la variable recorra una lista Inicio Desde i hasta lista Saluden al ingresar al aula. Por favor Solución Inicio Fin Desde i hasta lista Saluden al ingresar al aula. Por favor Solución Fin Pag. 20 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 12 Usando listas Hacer un programa que repita el siguiente mensaje Software libre en el cual la variable recorra una cadena Ejemplo 13 Usando cadenas Hacer un programa que repita el siguiente mensaje Software libre en el cual la variable recorra una cadena Solución Solución for i in “unsch”: print(“Software libre”) for i in [1,3,5,7,9]: cuadrados=i**2 print(cuadrados) Resultado: Software libre Software libre Software libre Software libre Software libre Resultado: 1 9 25 49 81 Explicación: En este caso, la variable i si es considerada dentro del buqle; la cual recorre cada elemento de lista elevada al cuadrado. Explicación: El cuerpo del bucle se repite de acuerdo a la longitud de la cadena, es decir de acuerdo al número de letras que tiene la cadena. En este caso la cadena posee 5 letras. UNSCH Pag. 21 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.2.5. Cargar librerías Para realizar operaciones o programas más complejas, es necesario cargar las librerias necesarias al cuaderno de python. Entre las más de 45 000 librerías de python tenemos: math.- Este módulo proporciona acceso a las funciones matemáticas. numpy.- Este módulo proporciona acceso a operaciones con listas, arrays, vectores, matrices, etc. matplotlib.- Este módulo proporciona acceso al trazado de gráficos en 2D, 3D y estadísticos, etc. Para cargar las librerías de python, se puede cargar de 3 formas. Primera forma import Nombre de la librería import math import numpy import matplotlib Segunda forma import Nombre de la librería as Alias de la librería import math as m import numpy as np import matplotlib as mpl Tercera forma from Nombre de la librería import * from math import * from numpy import * from matplotlib import * UNSCH Pag. 22 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 14 Hacer un programa para resolver la siguiente ecuación cuadrática ax2 + bx + c = 0 Solución import math print(“=========================================================”) print(“Solución de una ecuación cuadrática: ax2 + bx + c = 0 ”) print(“=========================================================”) a=float(input(“ingrese el valor de a:”)) b=float(input(“ingrese el valor de b:”)) c=float(input(“ingrese el valor de c:”)) if a==0: x1 = −c/b x2 = −c/b print(“Las raices son:”, x1 , x2 ) else: d=b∗b−4∗a∗c if d > 0: x1 = (−b + math.sqrt(d))/2 ∗ a x2 = (−b − math.sqrt(d))/2 ∗ a print(“La ecuación tiene 2 soluciones reales y diferentes:”) print(“x1 := ”, x1 ) print(“x2 := ”, x2 ) elif d == 0: x1 = (−b)/2 ∗ a x2 = (−b)/2 ∗ a print(“La ecuación tiene 2 soluciones reales e iguales:”) print(“ x1 := ”, x1 ) print(“ x2 := ”, x2 ) else: r=-b/float(2*a) i=(math.sqrt(-(b**2-4*a*c)))/(2*a) x=complex(r,i) print(“La ecuación cuadrática tiene 2 soluciones complejas y conjugadas”) print(“x1 = ” +str(x.real)+ “+” +str(x.imag)+“j”) print(“x2 = ” +str(x.real)+ “-” +str(x.imag)+“j”) Las soluciones que ofrecen los métodos numéricos son aproximaciones de los valores reales y, por tanto se tendrá un cierto grado de error que será conveniente determinar. UNSCH Pag. 23 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.3 Teoría de errores “El único hombre que no se equivoca es el que nunca hace nada.”-Goothe ¿Qué es un error? La discrepancia entre una solución verdadera y una aproximada representa un error. Entonces un error es algo equivocado o desacertado. Puede ser una acción que no se realizó de manera correcta. Definición: Un concepto de error en la matemática y en la física, es la diferencia que surge entre una medición y la realidad. En la práctica profesional, los errores pueden resultar costosos, y en algunas ocasiones catastróficos. Por ello, los errores se deben: Identificar Cuantificar Minimizar UNSCH Pag. 24 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 1.3.1. Formas de calcular el error La diferencia entre la realidad(valor verdadero) y el valor medido(es decir valor aproximado), matematicamente se representa de la siguiente manera. Error = Vverdadero − Vaproximado Como el error siempre debe ser positivo, entonces se expresa en valor absoluto. Error = |Vverdadero − Vaproximado | Error Absoluto(E.A) Es la diferencia entre el valor verdadero y el valor aproximado, y se calcula de la siguiente manera. E.A = |Vverdadero − Vaproximado | Error Relativo(E.R) Es el cociente entre el error absoluto y el valor verdadero E.R = | Error Absoluto | Vverdadero Error por Redondeo: Un error de redondeo es la diferencia entre la aproximación calculada de un número y su valor matemático exacto debida al redondeo. 4 Estos errores se introducen en los procesos de computación por el hecho de que las computadoras trabajan con un número finito de dígitos después del punto decimal y tienen que redondear. Para hallar el error por redondeo, se aplican reglas de redondeo. Ejemplo: Aplicando las reglas de redondeo, aproximar los siguientes números a 4 cifras decimales. 1. 3.12344567 ≈ 3.1234 2. 32.1278888 ≈ 32.1279 3. −3.8888888 ≈ −3.8889 4. 9.35364567 ≈ ............ 5. 2.99999999 ≈ ............ 6. 3.45676567 ≈ ............ 4 El redondeo es el proceso de descartar cifras en la expresión decimal (o más generalmente, posicional) de un número. Se utiliza con el fin de facilitar los cálculos. UNSCH Pag. 25 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo: Sea P = 25.157258457 y P ∗ = 26.821343605 el valor exacto y aproximado respectivamente. Encontrar E.A. y E.R. por redondeo con 5 cifras decimales. Solución Expresando por redondeo a 5 cifras decimales el valor exacto P y el valor aproximado P ∗ P = 25.157258457 ≈ 25.15726 P ∗ = 26.821343605 ≈ 26.82134 Calculando el error absoluto: E.A. = |P − P ∗ | = |25.15726 − 26.82134| = | − 1.664080000| ≈ 1.66408 Calculando el error relativo: E.R. = E.A. 1.664080000 1.664110000 = = = 0.066147108 ≈ 0.06615 |P | |25.15726| 25.15726 Error por Truncamiento: Un error por truncaminto es la diferencia entre una formulación matemática exacta de un problema y la aproximación dada por un método numérico. 5 Este tipo de error es debido a la omisión de términos en una serie que tiene un número infinito de términos. Por ejemplo podemos utilizar la serie infinita de Taylor para calcular el seno de cualquier ángulo x, expresado en radianes: x x3 x5 x7 x9 sin(x) = − + − + + ... 1! 3! 5! 7! 9! Por supuesto que no podemos usar todos los términos de la serie en un cálculo, porque la serie es infinita; entonces, los términos omitidos introducen un error, llamado error por truncamiento. Ejemplo: Mediante truncamiento aproximar los siguientes números a 4 cifras decimales. 1. 3.12344567 ≈ 3.1234 2. 32.1278888 ≈ 32.1278 3. −3.8888888 ≈ −3.8888 4. 9.35364567 ≈ ............ 5. 2.99999999 ≈ ............ 6. 3.45676567 ≈ ............ 5 En matemáticas, truncamiento es el término usado para referirse a reducir el número de dígitos a la derecha del separador decimal. UNSCH Pag. 26 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo: Sea P = 25.157258457 y P ∗ = 26.821343605 el valor exacto y aproximado respectivamente. Encontrar E.A. y E.R. por truncamiento con 5 cifras decimales. Solución Expresando por redondeo a 5 cifras decimales el valor exacto P y el valor aproximado P ∗ P = 25.157258457 ≈ 25.15725 P ∗ = 26.821343605 ≈ 26.82134 Calculando el error absoluto: E.A. = |P − P ∗ | = |25.15725 − 26.82134| = | − 1.664090000| ≈ 1.66409 Calculando el error relativo: E.R. = E.A. 1.664090000 1.664110000 = = = 0.066147532 ≈ 0.06614 |P | |25.15725| 25.15725 En este manual utiizaremos el error por redondeo y para cálculos más prácticos utilizaremos el error relativo porcentual es decir: E.R = | Error Absoluto | × 100 % Vverdadero Ejemplo 15 Halle el error relativo pocentual ! por redondeo a 5 cifras decimales de la serie de Taylor π con 2 y 3 términos de sin 4 Sea P = sin π 4 ! = Solución √ 2 = 0.707106781 ≈ 0.70711 el valor exacto y P ∗ el valor aproximado. 2 Cuando la serie de Taylor presenta 2 términos:P ∗ = sin(x) = P ∗ = sin π 4 ! π = 4− 1! π 4 !3 3! x x3 − 1! 3! = 0.704652651 ≈ 0.70465 E.A. = |P − P ∗ | = |0.70711 − 0.70465| = 0.00246 E.A. 0.00246 E.R. = = = 0.00348 |P | 0,70711 ∴ E.R. % = 0.34800 % UNSCH Pag. 27 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Cuando la serie de Taylor presenta 3 términos:sin(x) = P ∗ = sin π 4 ! π 4 π = 4− 1! !3 3! π 4 + !5 5! x x3 x5 − + 1! 3! 5! = 0.707143046 ≈ 0.70714 E.A. = |P − P ∗ | = |0.70711 − 0.70714| = 0.00003 E.A. 0.00003 = = 0.00004 E.R. = |P | 0,70711 ∴ E.R. % = 0.00424 % Ejemplo 16 Halle el error relativo pocentual por redondeo a 6 cifras decimales de la serie de Taylor ! π con 4 términos de sin 4 Sea P = sin π 4 ! = Solución √ 2 = 0.707106781 ≈ 0.707107 el valor exacto y P ∗ el valor aproximado. 2 Serie de Taylor para 4 términos:P ∗ = P ∗ = sin π 4 ! π = 4− 1! π 4 !3 3! + π 4 x x3 x5 x7 − + − 1! 3! 5! 7! !5 5! − π 4 !7 7! = 0.707106470 ≈ 0.707106 E.A. = |P − P ∗ | = |0.707107 − 0.707106| = 0.000001 E.A. 0.000001 E.R. = = = 0.000001 |P | 0,707107 ∴ E.R. % = 0.000141 % Nota Los ordenadores trabajan en un rango de 0 a 15 o 16 decimales. Ejemplos en python pi=3.141592653589793 10 = 3.3333333333333335 3 UNSCH Pag. 28 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Conceptos Básicos Precisión:La precisión se refiere a que tan cerca estan las mediciones entre ellas, obtenidas en un ensayo.(repetición) Exactitud: La exactitud se referie a que tan cerca está el valor medido del valor exacto. Cifras Significativas Número de dígitos que se pueden usar con confianza. Incluyen enteros y decimales. Reglas: 1. Son cifras significativas todos los dígitos distintos de cero. Ejemplo: 324: Tiene.........cifras significativas. 3,24: Tiene.........cifras significativas. 2. Los ceros situados entre dos cifras significativas son significativos. Ejemplo: 30004: Tiene.........cifras significativas. 304: Tiene.........cifras significativas. 3. Los ceros a la izquierda de la primera cifra significativa no lo son. Ejemplo: 004: Tiene.........cifras significativas. 0,00034: Tiene.........cifras significativas. UNSCH Pag. 29 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Capítulo 2 MÉTODOS NUMÉRICOS PARA LA INVESTIGACIÓN E CUACIONES NO LINEALES Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ¿Qué es una ecuación no lineal? Uno de los problemas más frecuentes en ingeniería es encontrar las raíces de ecuaciones de la forma f (x) = 0, donde f (x) es una función real de una variable “x”, como por ejemplo un polinomio en “x” x3 + 3x2 + 2x − 2 = 0 o una ecuación trascendente 1 e−x − x = 0 ex sin x + ln3x + x3 = 0 Aquella ecuación que cumple con dichas caracteristicas se le llama ecuación no lineal y para su solución existen distintos algoritmos para encontrar las raíces o ceros de f (x) = 0. Uno de los métodos clásicos para encontrar una raiz es el método gráfico; el cual consiste en tabular y trazar su grafico en el plano cartesiano. Ejemplo: Trazar la gráfica de la función: y = f (x) = e−x − x Solución x y -1.5 5.981689 -1 3.718282 -0,5 2.148721 0 1 0.5 0.106531 1 -0.632121 1.5 -1.276870 Tabla 2.1: Tabla de valores de f (x) = e−x − x Figura 2.1: Método gráfico 1 Las ecuaciones trascendentes contienen términos trigonométricos, exponenciales o logarítmicos de la variable independiente. UNSCH Pag. 31 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 2.1 Métodos de solución de una ecuación no lineal Para la solución de una ecuación no lineal, tenemos métodos cerrados y métodos abiertos Métodos Cerrados Son métodos que necesitan dos valores iniciales que encierren la raíz, para así reducir sistemáticamente el tamaño del intervalo y que converga a una respuesta aproximada. Entre ellos tenemos: Método de bisección o de búsqueda binaria. Método de falsa posición. 2.1.1. Método de la bisección El método de bisección, es un método de búsqueda de raices, el cual consiste en ir acortando sistematicamente los extremos del intervalo, hasta obtener un intervalo de anchura suficientemente pequeño que contenga la raiz, como muestra la figura adjunta. Curva de la función f(x) Extremos del intervalo Raíz Figura 2.2: Representación geométrica del método de bisección Procedimiento del método de bisección: 1. Buscar el intervalo [xi , xd ] que encierran la raíz.(Esto se determina verificando f (xi )f (xd ) < 0 o mediante el método gráfico) 2. Una aproximación hacia la raíz se determina mediante: xr = xi + xd 2 3. Realizar las siguientes cálculos para determinar en que subintervalo se encuentra la raiz. UNSCH Pag. 32 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Si f (xi )f (xr ) < 0, entonces la raiz está al lado izquierdo y el nuevo intervalo a comprobar es [xi , xr ] y vuelva al paso 2. Si f (xr )f (xd ) < 0, entonces la raiz está al lado derecho y el nuevo intervalo a comprobar es [xr , xd ] y vuelva al paso 2. Si f (xr )f (xi ) = 0 o f (xr )f (xd ) = 0, entonces la raiz es xi o xd y termina el proceso. Ejemplo 17 Utilizar el método de la bisección para aproximar la raíz de la siguiente ecuación: f (x) = e−x − x = 0 Solución 2) Segunda iteración 1) Primera iteración Busquemos un intervalo que contenga la raiz: [0, 1] El nuevo intervalo que contiene la raiz es: [0.5, 1] Sea xi = 0 ∧ xd = 1 =⇒ xr = 0.5 Sea xi = 0.5 ∧ xd = 1 =⇒ xr = 0.75 Haciendo los siguientes cálculos: Haciendo los siguientes cálculos: • f (xi ) = f (0) = 1 • f (xi ) = f (0.5) = 0.106531 • f (xd ) = f (1) = −0.632121 • f (xd ) = f (1) = −0.632121 • Evaluando tenemos: f (xd )f (xr ) < 0 • Evaluando tenemos: f (xi )f (xr ) < 0 • f (xr ) = f (0.5) = 0.106531 ∴ El nuevo intervalo es: [0.5, 1] 3) Tercera iteración • f (xr ) = f (0.75) = −0.277633 ∴ El nuevo intervalo es: [0.5, 0.75] 4) Cuarta iteración El nuevo intervalo que contiene la raiz es: [0.5, 0.75] El nuevo intervalo que contiene la raiz es: [0.5, 0.625] Sea xi = 0.5 ∧ xd = 0.75 =⇒ xr = 0.625 Sea xi = 0.5 ∧ xd = 0.625 =⇒ xr = 0.5625 Haciendo los siguientes cálculos: Haciendo los siguientes cálculos: • f (xi ) = f (0.5) = 0.106531 • f (xi ) = f (0.5) = 0.106531 • f (xd ) = f (0.75) = −0.277633 • f (xd ) = f (0.625) = −0.089739 • f (xr ) = f (0.625) = −0.089739 • Evaluando tenemos: f (xi )f (xr ) < 0 ∴ El nuevo intervalo es: [0.5, 0.625] • f (xr ) = f (0.5625) = 0.007283 • Evaluando tenemos: f (xd )f (xr ) < 0 ∴ El nuevo intervalo es: [0.5625, 0.625] UNSCH Pag. 33 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 6) Sexta iteración 5) Quinta iteración El nuevo intervalo que contiene la raiz es: [0.5625, 0.625] El nuevo intervalo que contiene la raiz es: [0.5625, 0.59375] Sea xi = 0.5625 ∧ xd = 0.625 =⇒ xr = 0.59375 Sea xi = 0.5625 ∧ xd = 0.625 =⇒ xr = 0.59375 Haciendo los siguientes cálculos: Haciendo los siguientes cálculos: • f (xi ) = f (0.5625) = 0.007283 • f (xi ) = f (0.5625) = 0.007283 • f (xd ) = f (0.625) = −0.089739 • f (xd ) = f (0.59375) = −0.041498 • Evaluando tenemos: f (xi )f (xr ) < 0 • Evaluando tenemos: f (xi )f (xr ) < 0 • f (xr ) = f (0.59375) = −0.041498 ∴ El nuevo intervalo es: • f (xr ) = f (0.578125) = −0.017176 ∴ El nuevo intervalo es: [0.5625, 0.59375] N◦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xi 0.000000 60.500000 0.500000 0.500000 0.562500 0.562500 0.562500 0.562500 0.566406 0.566406 0.566406 0.566894 0.567138 0.567138 0.567138 0.567138 0.567138 0.567138 0.567142 0.567142 0.567143 0.567144 0.567144 0.567144 xd 1.000000 1.000000 0.750000 0.625000 0.625000 0.593750 0.578125 0.570312 0.570312 0.568359 0.567382 0.567382 0.567382 0.567260 0.567199 0.567168 0.567153 0.567146 0.567146 0.567144 0.567144 0.567144 0.567144 0.567144 xr 0.500000 0.750000 0.625000 0.562500 0.593750 0.578125 0.570312 0.566406 0.568359 0.567382 0.566894 0.567138 0.567260 0.567199 0.567168 0.567153 0.567146 0.567142 0.567144 0.567143 0.567144 0.567144 0.567144 0.567144 [0.5625, 0.578125] f (xi ) 1.000000 0.106531 0.106531 0.106531 0.007283 0.007283 0.007283 0.007283 0.001156 0.001156 0.001156 0.000391 0.000008 0.000008 0.000008 0.000008 0.000008 0.000008 0.000002 0.000002 0.000000 -0.000001 -0.000001 -0.000001 f (xd ) -0.632121 -0.632121 -0.277633 -0.089739 -0.089739 -0.041498 -0.017176 -0.004963 -0.004963 -0.001905 -0.000374 -0.000374 -0.000374 -0.000183 -0.000087 -0.000039 -0.000015 -0.000004 -0.000004 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 f (xr ) 0.106531 -0.277633 -0.089739 0.007283 -0.041498 -0.017176 -0.004963 0.001156 -0.001905 -0.000374 0.000391 0.000008 -0.000183 -0.000087 -0.000039 -0.000015 -0.000004 0.000002 -0.000001 0.000000 -0.000001 -0.000001 -0.000001 -0.000001 Er %. 100.000000 33.333333 20.000000 11.111111 5.263158 2.702703 1.369952 0.689611 0.343621 0.172194 0.086083 0.043023 0.021507 0.010755 0.005466 0.002645 0.001234 0.000705 0.000353 0.000176 0.000000 0.000000 0.000000 0.000000 Tabla 2.2: Resumen del método de bisección, para n=25 UNSCH Pag. 34 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Inicio xi, xd, n fxi=e""(-xi)-xi fxd=e""(-xd)-xd V fxi*fxd>0 F Desde i=1 hasta n No contiene la raiz xr=(xi+xd)/2 fxi=e**(-xi)-xi fxd=e**(-xd)-xd fxr=e**(-xr)-xr F fxi*fxr<0 V xi=xr xd=xr xr Fin Diagrama de flujo del método de bisección UNSCH Pag. 35 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Código en python :Método de la bisección from math import * import numpy as np print(“MÉTODO DE LA BISECCIÓN”) xi=float(input(“Ingrese el extremo izquierdo del intervalo:”)) xd=float(input(“Ingrese el extremo derecho del intervalo:”)) n=int(input(“Ingrese el numero de iteraciones:”)) fxi=round((e**-xi)-xi,6) fxd=round((e**-xd)-xd,6) if fxi*fxd>0: print(“El intervalo ingresado no contiene la raiz”) else: print(“{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10} ”.format( “Iter.”,“xi”,“xd”,“xr”,“fxi”,“fxd”,“fxr”,“ER %”)) for i in range(1,n): xr=round((xi+xd)/2,6) fxi=round(e**(-xi)-xi,6) fxd=round(e**(-xd)-xd,6) fxr=round(e**(-xr)-xr,6) error=round(abs(((xr-xi)/xr)*100),6) print(“{:∧ 10}{:∧ 10.5f }{:∧ 10.5f }{:∧ 10.5f }{:∧ 10.5f }{:∧ 10.5f }{:∧ 10.5f } {:∧ 10.5f } .format( i+1,xi,xd,xr,fxi,fxd,fxr,error)) if fxi*fxr<0: xd=xr else: xi=xr print(“La raiz aproximada con”,i,“iteraciones es:”,xr) La sintáxis para redondear un número es: round(número,cantidad de decimales) • Si se desea redondear el valor de π a 6 decimales tenemos: Código en python UNSCH Pag. 36 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 2.1.2. Método de la falsa posición El método de falsa posición es otra alternativa usado para la busqueda de raices y encontrar una aproximación de la solución de una ecuación no lineal. El método de la falsa posición consiste en unir los puntos extremos del intervalo(intervalo donde se encuentra la raiz), mediante una linea recta; y la intersección de la recta con el eje “x” nos da una aproximación a la raiz de la ecuación no lineal, tal como se muestra en la figura adjunta. (a,f(a)) (a,f(a)) Extremo Pr Ap ime ro ra xi m ac ió n izquierdo y=f(x) y=f(x) b b a raiz real a (c,0) raiz real (c,0) Extremo derecho (b,f(b)) (b,f(b)) Primera aproximación Primera aproximación (a1,f(a1)) Extremo (a1,f(a1)) Se Ap gun ro da xi m ac ió n izquierdo y=f(x) y=f(x) b1 a1 raiz real (c1,0) Extremo derecho b1 a1 raiz real (c1,0) (b1,f(b1)) Segunda aproximación (b1,f(b1)) Segunda aproximación Procedimiento para calcular la raiz aproximada: El procedimiento para encontar la raiz xr mediante el método de la falsa posición es: Sea f (a).f (b) < 0 y consideremos la recta con extremos (a, f (a)) y (b, f (b)), entonces su pendiente es: f (b) − f (a) m= b−a Pero como (c, 0) es punto interseccion de la recta con el eje “x”, entonces se tiene tambien que: f (b) − 0 f (b) m= = b−c b−c UNSCH Pag. 37 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ahora igualando ambas pendientes tenemos: f (b) f (b) − f (a) = b−a b−c f (b)(b − a) b−c= f (b) − f (a) f (b)(b − a) c=b− f (b) − f (a) Haciendo c = xr , a = xi , b = xd tenemos que la raiz aproximada es: xr = xd − f (xd )(xd − xi ) f (xd ) − f (xi ) Luego para encontrar el nuevo intervalo, se toma en cuenta el mismo procedimiento que el método de bisección. Procedimiento del método de falsa posición: 1. Buscar el intervalo [xi , xd ] que encierran la raíz.(Esto se determina verificando f (xi )f (xd ) < 0 o mediante el método gráfico) 2. Una aproximación hacia la raíz se determina mediante: xr = xd − f (xd )(xd − xi ) f (xd ) − f (xi ) 3. Realizar las siguientes cálculos para determinar en que subintervalo se encuentra la raiz. ◦ Si f (xi )f (xr ) < 0, entonces la raiz está al lado izquierdo y el nuevo intervalo a comprobar es [xi , xr ] y vuelva al paso 2. ◦ Si f (xr )f (xd ) < 0, entonces la raiz está al lado derecho y el nuevo intervalo a comprobar es [xr , xd ] y vuelva al paso 2. ◦ Si f (xr )f (xi ) = 0 o f (xr )f (xd ) = 0, entonces la raiz es xi o xd y termina el proceso. UNSCH Pag. 38 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 18 Utilizar el método de la falsa posición para aproximar la raíz de la siguiente ecuación: f (x) = e−x − x = 0 Solución 1) Primera iteración 2) Segunda iteración ◦ Busquemos un intervalo que contenga la raiz: [0, 1] ◦ El nuevo intervalo que contiene la raiz es: [0, 0.6127] ◦ Sea xi = 0 ∧ xd = 1 =⇒ xr =? ◦ Sea xi = 0 ∧ xd = 0.6127 =⇒ xr =? ◦ Haciendo los siguientes cálculos: ◦ Haciendo los siguientes cálculos: ⋄ f (xi ) = f (0) = 1 ⋄ f (xi ) = f (0) = 1 ⋄ f (xd ) = f (1) = −0.632121 ⋄ f (xd ) = f (0.6127) = −0.070814 ⋄ Calculando xr ⋄ Calculando xr (−0.632121)(1 − 0) −0.632121 − 1 xr = 0.612700 xr = 1 − xr = 0.6127 − xr = 0.572182 ⋄ f (xr ) = f (0,612700) = −0.070814 ∴ El nuevo intervalo es: [0, 0.6127] (−0.070814)(0.612 −0.070814 − ⋄ f (xd ) = f (0.572182) = −0.007889 ∴ El nuevo intervalo es: [0, 0.572182] 3) Tercera iteración ◦ El nuevo intervalo que contiene la raiz: [0, 0.572182] ◦ Sea xi = 0 ∧ xd = 0.572182 =⇒ xr =? ◦ Haciendo los siguientes cálculos: ⋄ f (xi ) = f (0) = 1 ⋄ f (xd ) = f (0.572182) = −0.007889 ⋄ Calculando xr xr = 0.572182 − xr = 0.567703 (−0.007889)(0.572182 − 0) −0.007889 − 1 ⋄ f (xr ) = f (0.567703) = −0.000877 ∴ El nuevo intervalo es: [0, 0.567703] 4) Cuarta iteración ◦ El nuevo intervalo intervalo que contiene la raiz: [0, 0.567703] ◦ Sea xi = 0 ∧ xd = 0.567703 =⇒ xr =? UNSCH Pag. 39 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ◦ Haciendo los siguientes cálculos: ⋄ f (xi ) = f (0) = 1 ⋄ f (xd ) = f (0.567703) = −0.000877 ⋄ Calculando xr xr = 0.567703 − xr = 0.567206 (−0.000877)(0.567703 − 0) −0.000877 − 1 ⋄ f (xr ) = f (0.567206) = −0.000098 ∴ El nuevo intervalo es: [0, 0.567206] 5) Quinta iteración ◦ El nuevo intervalo intervalo que contiene la raiz: [0, 0.567206] ◦ Sea xi = 0 ∧ xd = 0.567206 =⇒ xr =? ◦ Haciendo los siguientes cálculos: ⋄ f (xi ) = f (0) = 1 ⋄ f (xd ) = f (0.567206) = −0.000098 ⋄ Calculando xr xr = 0.567206 − xr = 0.567150 (−0.000098)(0.567206 − 0) −0.000098 − 1 ⋄ f (xr ) = f (0.567150) = −0.000011 ∴ El nuevo intervalo es: [0, 0.567150] 6) Sexta iteración ◦ El nuevo intervalo intervalo que contiene la raiz: [0, 0.567150] ◦ Sea xi = 0 ∧ xd = 0.567150 =⇒ xr =? ◦ Haciendo los siguientes cálculos: ⋄ f (xi ) = f (0) = 1 ⋄ f (xd ) = f (0.567150) = −0.000011 ⋄ Calculando xr xr = 0.567150 − xr = 0.567144 (−0.000011)(0.567150 − 0) −0.000011 − 1 ⋄ f (xr ) = f (0.567144) = −0.000001 ∴ El nuevo intervalo es: [0, 0.567143] UNSCH Pag. 40 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com N◦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xi 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 xd 1.000000 0.612700 0.572182 0.567703 0.567206 0.567150 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 0.567144 xr 0.612700 0.572182 0.567703 0.567206 0.567150 0.567144 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 f (xi ) 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 f (xd ) -0.632121 -0.070814 -0.007889 -0.000877 -0.000098 -0.000011 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 -0.000001 f (xr ) -0.070814 -0.007889 -0.000877 -0.000098 -0.000011 -0.000001 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Er %. 63.212012 7.081313 0.788969 0.087622 0.009874 0.001058 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 0.000176 Tabla 2.3: Resumen del método de la falsa posición, para n=25 UNSCH Pag. 41 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Inicio x0, n gx0=e""(-x0)i dgx0=-e**(-x0) V | dgx0 |<1 F Desde i=1 hasta n Diverge gx0=e**(-x0) xr=gx0 x0=xr xr Fin Diagrama de flujo del método de la falsa posición Código en python :Método de la falsa posición UNSCH Pag. 42 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 19 Utilizar el método de bisección y de la falsa posición para aproximar la raíz de la siguiente ecuación: f (x) = x10 − 1 = 0 Aproximar a 6 cifras decimales.(Sugerencia: Realizar 25 iteraciones y buscar la raiz en [0, 1.3]) Solución Método de Bisección N◦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xi xd xr f (xi ) f (xd ) f (xr ) Er % Tabla 2.4: Resumen del método de bisección UNSCH Pag. 43 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Método de Falsa Posición N◦ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 xi xd xr f (xi ) f (xd ) f (xr ) Er % Tabla 2.5: Resumen del método de falsa posición UNSCH Pag. 44 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Métodos Abiertos En los métodos cerrados, la raíz se encuentra entre un límite inferior y otro superior. Son métodos convergentes, ya que se acercan progresivamente a la raíz a medida que crece el número de iteraciones. Al contrario, los métodos abiertos se basan en fórmulas que requieren de un solo valor de “x”, o de un par de ellos que no necesariamente encierran la raíz. A veces divergen o se alejan de la raíz a medida que aumentan las iteraciones. Pero cuando convergen en general lo hacen mucho más rápido que los métodos cerrados. Entre dichos métodos abiertos, tenemos: ◦ Iteración de Punto Fijo ◦ Método de Newton-Raphson ◦ Método de la Secante 2.1.3. Método del punto fijo Definición: Punto fijo Un punto fijo de una función g(x) es un número real P tal que g(P ) = P . Geométricamente significa que los puntos fijos de una función g(x) son los puntos intersección de la curva de g(x) con la recta y = x. Ejemplo 20 La función g(x) = x2 − 2, pues tiene dos puntos fijos; x = −1 y x = 2 ◦ g(−1) = (−1)2 − 2 = −1 y g(2) = (2)2 − 2 = 2 Puntos fijos UNSCH Pag. 45 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 21 La función g(x) = x − e1−x (x − 1), tiene un punto fijo x = 1. ◦ g(1) = 1 − e0 (1 − 1) = 1 Punto fijo Código en python :Gráfica de una función import numpy as np import matplotlib.pyplot as mpl x=np.arange(-4,4,0.01) y=x**2-2 y1=x mpl.plot(x,y, color=“purple”, label=“y = x2 − 2”) mpl.plot(x,y1, color=“red”, label=“y = x”) mpl.xlabel(“Eje x”) mpl.ylabel(“Eje y”) mpl.title(“Gráfica de la función: y = x2 − 2 ∧ y = x”) mpl.axhline(0, color=“black”) mpl.axvline(0, color=“black”) mpl.savefig(“grafica de e.png” ,dpi=100.0, bbox_inches=“tight”, pad_inches=0.5) mpl.grid() mpl.legend() mpl.show() UNSCH Pag. 46 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Procedimiento para aplicar el método del punto fijo Para hallar la raiz de la ecuación f (x) = 0, se debe tener en cuenta los siguientes pasos: 1) Transformar algebraicamente f (x) = 0 a la forma: x = g(x) En el cual g(x) puede obtenerse de dos maneras: ◦ Sumar “x” a ambos lados de la ecuación f (x) = 0. ◦ Despejar “x” del término de primer grado de la ecuación. 2) Evaluar el criterio de la convergencia en el punto inicial: (El criterio de convergencia consiste en que el valor absoluto de la pendiente de g(x) es menor a la pendiente de la recta h(x) = x). Es decir: ′ |g (x0 )| < 1 donde x0 es el punto fijo 3) Las aproximaciones de la raiz se obtienen evaluando en la siguiente fórmula general: xn+1 = g(xn ) Nota ◦ Una ecuacón lineal puede tener varias transformaciones (x = g(x)). Por ejemplo: De f (x) = e−x − x = 0 podemos extraer las siguientes deducciones. ⋄ x = e−x =⇒ g(x) = e−x ⋄ x = −ln(x) =⇒ g(x) = −ln(x) De f (x) = 2x2 − x − 5 = 0 podemos extraer las siguientes deducciones. ⋄ x = 2x2 − 5 =⇒ g(x) = 2x2 − 5 r r x+5 x+5 ⋄ x= =⇒ g(x) = 2 2 5 5 =⇒ g(x) = ⋄ x= 2x − 1 2x − 1 ◦ De las deducciones o transformaciones obtenidas, algunas de ellas pueden converger o diverger de acuerdo al criterio de convergencia. UNSCH Pag. 47 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Interpretación geométrica del punto fijo: |g (x0 )| < 1 ′ f1( x)= x Eje y y=g(x) Raiz Eje x x 0 Figura 2.3: Interpretación geométrica del punto fijo A continuación se presentan los casos de convergencia y divergencia. f1( x )= x Eje y )= x y=g(x) f1( x Eje y iz Ra y=g(x) Raiz Eje x x Convergencia Monotónica Eje x Eje y )= x f1( x f1( x y=g(x) 0 Convergencia Oscilatoria )= x Eje y x 0 iz Ra iz Ra y=g(x) Eje x x x 0 Divergencia Monotónica Eje x 0 Divergencia Oscilatoria UNSCH Pag. 48 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 22 Aproxime la raiz de la siguiente ecuación: f (x) = e−x − x = 0 Aplicando el método del punto fijo.(El punto fijo es x0 = 0.57) Solución De las deducciones obtenidas x = g(x), tenemos: ◦ Primera deducción: x = e−x =⇒ g(x) = e−x Evaluando el criterio de convergencia en el punto fijo x0 = 0.75 ′ |g (x0 )| < 1 | − e−x0 | < 1 | − e−0.57 | < 1 | − 0.57| < 1 0.57 < 1...Si cumple Si la deducción obtenida cumple el criterio de convergencia entonces se acepta, caso contrario se descarta. ◦ Segunda deducción: x = −ln(x) =⇒ g(x) = −ln(x) Evaluando el criterio de convergencia en el punto fijo x0 = 0.75 ′ |g (x0 )| < 1 1 |− |<1 x0 1 |− |<1 0.57 | − 1.754386| < 1 1.754386 ≮ 1...No cumple; por lo tanto se descarta Realizando las iteraciones en la deducción que cumple el criterio de convergencia, tenemos: ◦ Segunda iteración: Para n = 1 ◦ Primera iteración: Para n = 0 x1 x1 x1 x1 = = = = g(x0 ) g(0.57) e−0.57 0.565525 UNSCH x2 x2 x2 x2 = = = = g(x1 ) g(0.565525) e−0.565525 0.568062 Pag. 49 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ◦ Tercera iteración: Para n = 2 ◦ Cuarta iteración: Para n = 3 x3 = g(x2 ) x3 = g(0.568062) x3 = e−0.568062 x3 = 0.566622 ◦ Quinta iteración: Para n = 4 x4 = g(x3 ) x4 = g(0.566622) x4 = e−0.566622 x4 = 0.567439 ◦ Sexta iteración: Para n = 5 x5 x5 x5 x5 N◦ Itera. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 x0 0.570000 0.565525 0.568062 0.566622 0.567439 0.566976 0.567238 0.567090 0.567174 0.567126 0.567153 0.567138 0.567146 0.567142 0.567144 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 = = = = g(x4 ) g(0.567439) e−0.567439 0.566976 x6 x6 x6 x6 xr 0.565525 0.568062 0.566622 0.567439 0.566976 0.567238 0.567090 0.567174 0.567126 0.567153 0.567138 0.567146 0.567142 0.567144 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 = = = = g(x5 ) g(0.566976) e−0.566976 0.567238 xactual − xant r r | × 100 %. xactual r 0.791300 0.446606 0.254138 0.143980 0.081661 0.046189 0.026098 0.014810 0.008464 0.004761 0.002645 0.001411 0.000705 0.000353 0.000176 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Er = | Tabla 2.6: Resumen del método del punto fijo:x0 = 0.57 UNSCH Pag. 50 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Inicio x0, n gx0=e""(-x0)i dgx0=-e**(-x0) V | dgx0 |<1 F Desde i=1 hasta n Diverge gx0=e**(-x0) xr=gx0 x0=xr xr Fin Diagrama de flujo del método del punto fijo Código en python :Método del punto fijo UNSCH Pag. 51 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 23 Aplique el método del punto fijo para aproximar la raiz de la siguiente ecuación: f (x) = 2x2 − x − 5 = 0; x0 = 2.16 Solución N◦ Itera. x0 xr Er = | xactual − xant r r | × 100 %. xactual r 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Tabla 2.7: Resumen del método del punto fijo: x0 = 2.16 UNSCH Pag. 52 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 24 Aplique el método del punto fijo para aproximar la raiz de la siguiente ecuación: f (x) = 2x2 − x − 5 = 0; x0 = −1.16 Solución N◦ Itera. x0 xr Er = | xactual − xant r r | × 100 %. xactual r 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 Tabla 2.8: Resumen del método del punto fijo: x0 = −1.16 UNSCH Pag. 53 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 2.1.4. Método de Newton Raphson Es un método de búsqueda de raices y es el más utilizado, debido a su rápida convergencia. La métodología del método de Newton Raphson o solamente Newton consiste en: Dado el valor inicial de la raiz x0 , se puede trazar una recta tangente a la curva y = f (x) desde el punto (x0 , f (x0 )), tal que al cortar al eje “x”, el punto x1 representa una aproximación mejorada de la raiz. tan ge nte Eje y Eje y y=f(x) Re cta y=f(x) (x0 , Valor inicial f(x0)) P a rim p ro e x ra im a ci Ra ve iz rd ad er a Ra ve iz rd ad er a ó n x 0 x 0 x 1 Eje x Eje x Luego a partir del punto (x1 , f (x1 )), se vuelve a trazar una nueva recta tangente, tal que al cortar al eje “x”, se obtiene el punto x2 que representa una aproximación mejorada de la raiz; y así sucesivamente hasta obtener una raiz muy próxima a la raiz verdadera, tal como se muestra en la gráfica adjunta. Eje y y=f(x) (x0 , Re cta Re cta ta y=f(x) S a eg p u ro n x d im a a ci f(x0 )) (x0 , ó n (x1 Rai Eje x x 2 x 1 x f(x0 )) , f(x1 )) Ra ve iz rd ad er a f(x1 )) z (x1 , 0 tan ge nte nge nte Eje y Eje x x 2 x 1 x 0 Ecuación iterativa de Newton Raphson Ahora relacionemos la raiz inicial x0 con la nueva aproximación mejorada x1 ; para el cual la pendiente de la recta tangente que pasa por los puntos (x0 , f (x0 )) y (x1 , 0)) está dada como: f (x0 ) − 0 m= x0 − x1 UNSCH Pag. 54 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Y la pendiente de la curva y = f (x) en el punto (x0 , f (x0 )) tambien está dada como: ′ m = f (x0 ) Por lo tanto igualando ambas pendientes, tenemos: ′ f (x0 ) x0 − x1 f (x0 ) = f ′ (x0 ) f (x0 ) = x0 − ′ f (x0 ) f (x0 ) = x0 − x1 x1 Por lo tanto, la fórmula recursiva de Newton Raphson es: xn+1 = xn − f (xn ) f ′ (xn ) Nota Sabemos que el método de Newton Raphson es el más utilizado en la mayoría de las soluciones de ecuaciones no lineales debido a su rápida convergencia; pero tambien resulta ineficiente en algunos casos; pues para que funcione correctamente debemos buscar que el punto inicial x0 sea un punto fijo de la función o que se encuentre cerca de la solución verdadera. Una de las desventajas que presenta el método de Newton Raphson es que en cada iteración se debe calcular f (x0 ) y f ′ (x0 ); aunque no es inconveniente cuando f (x) es una función polinómica y sencillas; pero en el caso para funciones complejas; se propone un método alternativo que atenué está desventaja. UNSCH Pag. 55 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 25 Aproxime la raiz de la siguiente función: f (x) = e−x − x Aplicando el método de Newton Raphson, con punto inicial x0 = 0. Solución Para aplicar la fórmula iterativa de Newton Raphson, es necesario calcular la derivada de la función f (x) = e−x − x. ′ f (x) = e−x − x =⇒ f (x) = −e−x − 1 ◦ Primera iteración:Para n = 0 =⇒ x1 = x0 − f (x0 ) =? f ′ (x0 ) x0 = 0 =⇒ f (x0 ) = f (0) = e−0 − 0 = 1 ′ ′ f (x0 ) = −e−x0 − 1 =⇒ f (0) = −e−0 − 1 = −2 Remplazando en la fórmula recursiva tenemos: f (x0 ) f ′ (x0 ) 1 = 0− −2 = 0.5 x1 = x0 − x1 x1 ◦ Segunda iteración:Para n = 1 =⇒ x2 = x1 − f (x1 ) =? f ′ (x1 ) x1 = 0.5 =⇒ f (x1 ) = f (0.5) = e−0.5 − 0.5 = 0.106531 ′ ′ f (x1 ) = −e−x1 − 1 =⇒ f (0.5) = −e−0.5 − 1 = −1.606531 Remplazando en la fórmula recursiva tenemos: f (x1 ) f ′ (x1 ) 0.106531 = 0,5 − −1.606531 = 0.566311 x2 = x1 − x2 x2 UNSCH Pag. 56 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ◦ Tercera iteración:Para n = 2 =⇒ x3 = x2 − f (x2 ) =? f ′ (x2 ) x2 = 0.566311 =⇒ f (x2 ) = f (0.566311) = e−0.566311 − 0.566311 = 0.001305 ′ f (x2 ) = −e−x2 − 1 =⇒ f (0.566311) = −e−0.566311 − 1 = −1.567616 ′ Remplazando en la fórmula recursiva tenemos: x3 = x2 − f (x2 ) f ′ (x2 ) x3 = 0,566311 − x3 = 0.567143 0.001305 −1.567616 ◦ Cuarta iteración:Para n = 3 =⇒ x4 = x3 − f (x3 ) =? f ′ (x3 ) x3 = 0.567143 =⇒ f (x3 ) = f (0.567143) = e−0.567143 − 0.567143 = 0.000000 ′ f (x3 ) = −e−x3 − 1 =⇒ f (0.567143) = −e−0.567143 − 1 = −1.567143 ′ Remplazando en la fórmula recursiva tenemos: x4 = x3 − f (x3 ) f ′ (x3 ) x4 = 0,567143 − x4 = 0.567143 N◦ Itera. 1 2 3 4 5 6 7 8 9 10 x0 0.000000 0.500000 0.566311 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 xr 0.500000 0.566311 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.000000 −1.567143 xactual − xant r r | × 100 %. actual xr 100.000000 11.709290 0.146700 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Er = | Tabla 2.9: Resumen del método de Newton Raphson:x0 = 0 UNSCH Pag. 57 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Inicio x0, n dfx0=-e**(-x0)-1 F dfx0>0 o dfx0<0 V Desde i=1 hasta n Diverge fx0=e**(-x0)-x0 dfx0=-e**(-x0)-1 xr=x0-(fx0/dfx0) x0=xr xr Fin Diagrama de flujo del método de Newton Raphson Código en python :Método de Newton Raphson from math import * import numpy as np print(“MÈTODO DEL NEWTON RAPHSON”) x0=float(input(“Ingrese el punto inicial:”)) n=int(input(“Ingrese el nùmero de interaciones:”)) dfx0=round((-e**(-x0)-1),6) if dfx0>0 or dfx0<0 : print(“{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}”.format(“Iter.”,“xi”,“xr”,“ER %”)) for i in range (n): fx0=e**(-x0)-(x0) dfx0=-e**(-x0)-1 xr=round((x0-(fx0/dfx0)),6) error=(abs((xr-x0)/(xr))*100) print(“{:∧ 10}{:∧ 10.6f }{:∧ 10.6f }{:∧ 10.6f }”.format(i+1,x0,xr,error)) x0=xr else : print(“El método diverge; ingrese otro punto inicial”) UNSCH Pag. 58 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 26 Aproxime la raiz de la siguiente función: f (x) = x10 − 1 Aplicando el método de Newton Raphson, con punto inicial x0 = 0,5. Solución N◦ Itera. x0 xr Er = | xactual − xant r r | × 100 %. actual xr 1 2 3 4 5 6 7 8 9 10 Tabla 2.10: Resumen del método de Newton Raphson:x0 = 0.5 UNSCH Pag. 59 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com 2.1.5. Método de la secante El método de la secante, es el método alternativo del método de Newton Raphson; en el cual la derivada de la fórmula de Newton Raphson se aproxima mediante diferencias divididas. Interpetración Geométrica del método de la secante Para realizar el proceso iterativo del método de la secante, es necesario conocer dos puntos iniciales x0 y x1 (puntos cercanos a la raíz, no necesariamente que encierren a la raiz). Primer paso:Trazar una recta secante por los puntos (x0 , f (x0 )) y (x1 , f (x1 )); y el punto de intersección de la recta secante con el eje “x”, es la raíz aproximada. Eje y Eje y y=f(x) f(x1) y=f(x) f(x1) Raiz aproximada x x Eje x 0 Raiz verdadera f(x 0) Eje x 0 x 1 x 2 x 1 Raiz verdadera f(x 0) Primera iteración Primera iteración Segundo paso:Trazar nuevamente una recta secante por los puntos (x1 , f (x1 )) y (x2 , f (x2 )); y el punto de intersección de la recta secante con el eje “x”, es la raíz aproximada. Eje y Eje y y=f(x) f(x1) y=f(x) f(x1) Raiz aproximada x 3 Eje x x 2 f(x 2) Raiz verdadera x 2 x 1 Eje x Raiz verdadera x 1 f(x 2) Segunda iteración Segunda iteración Y este proceso continua hasta encontrar una buena aproximación de la raíz. Del proceso iterativo dado, se obtiene que la fórmula de diferencias divididas esta dada por: f (xi ) − f (xi−1 ) ′ f (xi ) ≈ (2.1) xi − xi−1 UNSCH Pag. 60 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Remplazando la fórmula (2.1) en la fórmula recursiva de Newton Raphson, tenemos: f (xn ) f ′ (xn ) f (xn ) = xn − f (xn ) − f (xn−1 ) xn − xn−1 f (xn )(xn − xn−1 ) = xn − f (xn ) − f (xn−1 ) xn+1 = xn − xn+1 xn+1 La fórmula recursiva del método de la secante está dada por: xn+1 = xn − f (xn )(xn − xn−1 ) ; ∀n ≥ 1 f (xn ) − f (xn−1 ) Ejemplo 27 Aproxime la raiz de la siguiente función: f (x) = e−x − x Aplicando el método de la secante, con puntos iniciales x0 = 0 y x1 = 1. Solución Para aplicar el método de la secante es necesario tener 2 puntos iniciales x0 y x1 , luego remplazar en su fórmula recursiva. f (x1 )(x1 − x0 ) =? ◦ Primera iteración:Para n = 1 =⇒ x2 = x1 − f (x1 ) − f (x0 ) x0 = 0 =⇒ f (x0 ) = f (0) = e−0 − 0 = 1 x1 = 1 =⇒ f (x1 ) = f (1) = e−1 − 1 = −0.632121 Remplazando en la fórmula recursiva tenemos: − 0.632121(1 − 0) −0.632121 − 1 = 0.612700 x2 = 1 − x2 ◦ Segunda iteración:Para n = 2 =⇒ x3 = x2 − f (x2 )(x2 − x1 ) =? f (x2 ) − f (x1 ) x1 = 1 =⇒ f (x1 ) = f (1) = e−1 − 1 = −0.632121 x2 = 0.612700 =⇒ f (x2 ) = f (0.612700) = e−0.612700 − 0.612700 = −0.070814 Remplazando en la fórmula recursiva tenemos: x3 = 0.612700 − x3 = 0.563839 − 0.070814(0.612700 − 1) −0.070814 − (−0.632121) UNSCH Pag. 61 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com ◦ Tercera iteración:Para n = 3 =⇒ x4 = x3 − f (x3 )(x3 − x2 ) =? f (x3 ) − f (x2 ) x2 = 0.612700 =⇒ f (x2 ) = f (0.612700) = e−0.612700 − 0.612700 = −0.070814 x3 = 0.563839 =⇒ f (x3 ) = f (0.563839) = e−0.563839 − 0.563839 = 0.005181 Remplazando en la fórmula recursiva tenemos: x4 = 0.563839 − x4 = 0.567170 0.005181(0.563839 − 0.612700) 0.005181 − (−0.070814) ◦ Cuarta iteración:Para n = 4 =⇒ x5 = x4 − f (x4 )(x4 − x3 ) =? f (x4 ) − f (x3 ) x3 = 0.563839 =⇒ f (x3 ) = f (0.563839) = e−0.563839 − 0.563839 = 0.005181 x4 = 0.567170 =⇒ f (x4 ) = f (0.567170) = e−0.567170 − 0.567170 = −0.000042 Remplazando en la fórmula recursiva tenemos: x5 = 0.567170 − x5 = 0.567143 − 0.000042(0.567170 − 0.563839) −0.000042 − 0.005181 ◦ Quinta iteración:Para n = 5 =⇒ x6 = x5 − f (x5 )(x5 − x4 ) =? f (x5 ) − f (x4 ) x4 = 0.567170 =⇒ f (x4 ) = f (0.567170) = e−0.567170 − 0.567170 = −0.000042 x5 = 0.567143 =⇒ f (x5 ) = f (0.567143) = e−0.567143 − 0.567143 = 0.000000 Remplazando en la fórmula recursiva tenemos: x5 = 0.567143 − 0 x5 = 0.567143 UNSCH Pag. 62 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com N◦ Itera. 1 2 3 4 5 6 7 8 9 10 x0 0.000000 1.000000 0.612700 0.563839 0.567170 0.567143 0.567143 0.567143 0.567143 0.567143 x1 1.000000 0.612700 0.563839 0.567170 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 xn = xr 0.612700 0.563839 0.567170 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 0.567143 xactual − xant r r | × 100 %. xactual r 63.212012 8.665772 0.587302 0.004761 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 Er = | Tabla 2.11: Resumen del método de la secante:x0 = 0 y x1 = 1 Inicio x0, x1, n Desde i=1 hasta n fx0=e**(-x0)-x0 fx1=e**(-x1)-x1 xr=x1-(fx1(x1-x0)/(fx1-fx0)) x0=x1 x1=xr xr Fin Diagrama de flujo del método de la secante UNSCH Pag. 63 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Código en python :Método de la secante from math import * from math import * import numpy as np print(“MÈTODO DE LA SECANTE”) x0=float(input(“Ingrese el primer punto inicial:”)) x1=float(input(“Ingrese el segundo punto inicial:”)) n=int(input(“Ingrese el nùmero de interaciones:”)) print(“{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}{:∧ 10}”.format(“Iter.”,“x0”,“x1”,“xr”,“ER %”)) for i in range (n): fx0=round(e**(-x0)-(x0),6) fx1=round(e**(-x1)-(x1),6) xr=round((x1-((fx1*(x1-x0))/((fx1-fx0)))),6) error=round((abs((xr-x1)/(xr))*100),6) print(“{:∧ 10}{:∧ 10.6f }{:∧ 10.6f }{:∧ 10.6f }{:∧ 10.6f }”.format(i+1,x0,x1, xr,error)) x0=x1 x1=xr print(“La raiz aproximada es:”,xr) Nota ◦ El método de la secante es un mtodo alternativo del método de Newton Raphson. ◦ Los métodos abiertos son más utilizados que los método cerrados. ◦ Para que los métodos convergan es necesario que los puntos iniciales esten cercados a la raiz UNSCH Pag. 64 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com Ejemplo 28 Aproxime la raiz de la siguiente función: f (x) = x10 − 1 Aplicando el método de la secante, con punto inicial x0 = 0.5 y x1 = 0.8. Solución N Itera. ◦ x0 x1 xn = xr xactual − xant r r | × 100 %. Er = | actual xr 1 2 3 4 5 6 7 8 9 10 Tabla 2.12: Resumen del método de la secante:x0 = 0.5 y x1 = 0.8 UNSCH Pag. 65 Descargado por Jota snow ([email protected]) Encuentra más documentos en www.udocz.com