Subido por jose_18_by

Métodos Numéricos - Python

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