3. INTRODUCCIÓN
La 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 univer-
sitarios 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
4. 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.
6. 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 poste-
rior.
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
7. 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?
Es una técnica o procedimiento a
mediante el cual es posible obtener de manera aproxi-
mada la solución de ciertos problemas realizando operaciones aritméticas elementales,
cálculo de funciones, lógica proposicional, etc.
a
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
Definición:
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 represen-
tan un determinado paso u operación del algoritmo.2
1
Diagrama de flujo. Es una representación gráfica de un algoritmo.
2
Algoritmo. Es un conjunto ordenado y finito de operaciones simples a través del cual podemos hallar la
solución a un problema
UNSCH Pag. 6
8. Simbolo Nombre Función
Terminal 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.
Proceso Representa cálculos o manipulación de datos.
Entrada/Salida Representa entrada o salida de datos e informa-
ción
Decisión Representa una comparación, una pregunta o una
decisión que determina los caminos alternativos
a seguir.
Unión Representa la confluencia de líneas de flujo.
Tabla 1.1: Simbolos usados en el diagrama de flujo
Ejemplos de diagramas de flujo
Condición
Bloque
Verdadero
Verdadero
Estructura para una alternativa
Pseudocódigo:
if condición:
Bloque Verdadero
Condición
Bloque
Falso
Bloque
Verdadero
Falso Verdadero
Estructura para dos alternativas
Pseudocódigo:
if condición:
Bloque Verdadero
else:
Bloque Falso
UNSCH Pag. 7
9. Condición
1
Bloque 1
Falso Verdadero
Bloque 2
Bloque 3Bloque 4
Verdadero
Verdadero
Falso
Falso
Condición
2
Condición
3
Estructura para varias alternativas
Pseudocódigo:
if condición 1:
Bloque 1
elif condición 2:
Bloque 2
elif condición 3:
Bloque 3
else:
Bloque 4
Hacer un diagrama de flujo, pseudocódigo que compare 2 números cualsquiera.
Ejemplo 1
inicio
ingresar
a=b
a es igual a b
V F
end
a>b
F V
2 números
a,b
a es menor que b a es mayorr que b
Diagrama de flujo
Pseudocódigo:
Inicio del proceso
Ingrese dos números: “a y b”
Si se cumple que a = b entonces:
Imprimir: “a es igual a b”
Caso contrario:
Si se cumple que a > b:
Imprimir: “a es mayor que b”
Caso contrario:
Imprimir: “a es menor que b”
Fin del proceso
UNSCH Pag. 8
10. Hacer un diagrama de flujo, pseudocódigo para resolver la siguiente ecuación
cuadrática
ax2
+ bx + c = 0
Ejemplo 2
inicio
ingresar
a,b y c
a=0
x1=-c/b
x2=-c/b
x1=(-b+sqrt(det))/2a
x2=(-b-sqrt(det))/2a
det=b -4ac
2
tiene 2 raices
complejas
y conjugadas
mostrar
x1, x2
V F
end
det<0
F V
Pseudocódigo:
Inicio del proceso
Ingrese “a,b y c”
Si se cumple que a = 0 entonces:
x1 = −c/b
x2 = −c/b
Caso contrario:
Calcule el determinante
det=b2
− 4ac
Si se cumple que det> 0 entonces:
x1 = (−b +
√
b2 − 4ac)/2a
x2 = (−b −
√
b2 − 4ac)/2a
Caso contrario:
Imprimir “Tiene 2 raices com-
plejas y conjugadas”
Imprimir las raices x1 y x2
Fin del proceso
En el lenguaje de programación existen sentencias condicionales y de repetición.
1. Sentencias condicionales
if
elif
else
2. Sentencias de repetición
for
while
Nota
UNSCH Pag. 9
11. Hacer un diagrama de flujo, pseudocódigo para ordenar tres números reales de menor
a mayor.
Ejemplo 3
Solución
Solución
UNSCH Pag. 10
12. 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
13. 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
Cuarto paso
Click
Cuarto paso
Click
Quinto paso
Click
Sexto paso
UNSCH Pag. 12
15. 1.2.2. Abriendo Anaconda Navigator
Mediante el buscador de su PC, abrir Anaconda Navigator; siguiendo los siguientes pasos.
CLICK
Primer paso
CLICK
Segundo paso
Tercer paso
CLICK
Cuarto paso
CLICK
Quinto paso Sexto paso
UNSCH Pag. 14
16. 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 progra-
mació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 enten-
der el procesador. Entonces, a la forma como se realiza esta traducción es lo que los agrupa en Interpretados o
Compilados.
UNSCH Pag. 15
17. ¿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
18. 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(“Ingrese un número:”)
input
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)
a=input(“Ingrese un número:”)
a=int(input(“Ingrese un número:”))
a=float(input(“Ingrese un número:”))
input
print(“La solución es:”)
print
Calcule la suma de dos números enteros
Ejemplo 4
a=int(input(“Ingrese el primer número”))
b=int(input(“Ingrese el segundo número”))
S=a+b
print(“La suma es:”,S)
Solución
Calcule el área de un triángulo
Ejemplo 5
b=float(input(“Ingrese la base”))
h=float(input(“Ingrese la altura”))
Area=(b*h)/2
print(“El área es:”,Area)
Solución
UNSCH Pag. 17
19. Sentencias condicionales
La estructura de control if ... else ... permite que un programa ejecute unas instruc-
ciones 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
if...else...
Hacer un programa para comparar 2
números enteros
Ejemplo 6
a > bFalso Verdadero
Inicio
a es mayor
que b
a es menor
que b
Fin
Ingrese
a y b
a=int(input(“Ingrese el primer número”))
b=int(input(“Ingrese el segundo número”))
if a>b:
print(“a es mayor que b”)
else:
print(“a es menor que b”)
Solución
Hacer un programa para determinar si un
número es par
Ejemplo 7
resto=0Falso Verdadero
Inicio
El número
es par
Fin
Ingrese
a
El número
es impar
resto=a/2
a=int(input(“Ingrese un número”))
resto=a %2
if resto==0:
print(“El número es par”)
else:
print(“El número es impar”)
Solución
Suma, resta, multiplicación y división: a+b, a-b, a*b y a/b
Potenciación y radicación : a**b o pow(a,b) y sqrt(2) o a**(1/2)
Cociente y resto: a//b y a %b
Nota Operaciones básicas en python
UNSCH Pag. 18
20. 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
elif
Hacer un programa para determinar la can-
tidad de dígitos de un número menor que
1000
Ejemplo 8
1 dígito
Falso Verdadero
2 dígitos
Inicio
Ingrese
un número
a< 1000
0<=a<10
Falso Verdadero
10<=a<100
Falso Verdadero
100<=a<1000
3 dígitos4 dígitos
Fin
a=int(input(“Ingrese un número <1000”))
if a >= 0 and a < 10:
print(“El número tiene 1 dígito”)
elif a >= 10 and a < 100:
print(“El número tiene 2 dígitos”)
elif a >= 100 and a < 1000:
print(“El número tiene 3 dígitos”)
else:
print(“El número tiene 4 dígitos”)
Solución
Hacer un programa para determinar los
valores de verdad de la conjunción
Ejemplo 9
Verdadero
Falso Verdadero
Falso
Inicio
Ingrese
los valores
de a y b
a=V y b=V
Falso Verdadero
a=V y b=F
Falso Verdadero
a=F y B=V
FalsoFalso
Fin
a=input(“Ingrese un valor de verdad”)
b=input(“Ingrese un valor de verdad”)
if a==“True” and b==“True”:
print(“True”)
elif a==“True” and b==“False”:
print(“False”)
elif a==“False” and b==“True”:
print(“False”)
else:
print(“False”)
Solución
UNSCH Pag. 19
21. 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
Bucle: Es una estructura de control que repite un bloque de instrucciones.
b
Elemento iterable: Puede ser una lista, cadena, range, etc
for
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
Inicio
Fin
Saluden al
ingresar al
aula.
Por favor
Desde i hasta lista
for i in [1,1,1]:
print(“Saluden al ingresar al aula.
Por favor”)
Resultado:
Saluden al ingresar al aula. Por favor
Saluden al ingresar al aula. Por favor
Saluden al ingresar al aula. Por favor
Explicación:
El cuerpo del bucle se repite de acuerdo al
número de elementos que tiene la lista. En
este caso la lista posee 3 elementos. Y ade-
mas no se está usando la variable i.
Puede utilizarse cualquier otra variable
Solución
Hacer un programa que repita el siguiente
mensaje Saluden al ingresar al aula. Por
favor en el cual la variable recorra una lista
Ejemplo 11 Usando una lista
Inicio
Fin
Saluden al
ingresar al
aula.
Por favor
Desde i hasta lista
for _ in [1,-1,10]:
print(“Saluden al ingresar al aula.
Por favor”)
Resultado:
Saluden al ingresar al aula. Por favor
Saluden al ingresar al aula. Por favor
Saluden al ingresar al aula. Por favor
Explicación:
El cuerpo del bucle se repite de acuerdo al
número de elementos que tiene la lista, sin
importar los valores que contiene. Si no se
usa la variable en el bucle, no es necesario
utilizarla; para ello se utiliza el sub-guión.
Solución
UNSCH Pag. 20
22. Hacer un programa que repita el siguiente
mensaje Software libre en el cual la
variable recorra una cadena
Ejemplo 12 Usando listas
for i in [1,3,5,7,9]:
cuadrados=i**2
print(cuadrados)
Resultado:
1
9
25
49
81
Explicación:
En este caso, la variable i si es consider-
ada dentro del buqle; la cual recorre cada
elemento de lista elevada al cuadrado.
Solución
Hacer un programa que repita el siguiente
mensaje Software libre en el cual la
variable recorra una cadena
Ejemplo 13 Usando cadenas
for i in “unsch”:
print(“Software libre”)
Resultado:
Software libre
Software libre
Software libre
Software libre
Software libre
Explicación:
El cuerpo del bucle se repite de acuerdo a
la longitud de la cadena, es decir de acuer-
do al número de letras que tiene la cadena.
En este caso la cadena posee 5 letras.
Solución
UNSCH Pag. 21
23. 1.2.5. Cargar librerías
Para realizar operaciones o programas más complejas, es necesario cargar las librerias nece-
sarias 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, ma-
trices, etc.
matplotlib.- Este módulo proporciona acceso al trazado de gráficos en 2D, 3D y estadís-
ticos, etc.
Para cargar las librerías de python, se puede cargar de 3 formas.
Primera forma
import math
import numpy
import matplotlib
import Nombre de la librería
Segunda forma
import math as m
import numpy as np
import matplotlib as mpl
import Nombre de la librería as Alias de la librería
Tercera forma
from math import *
from numpy import *
from matplotlib import *
from Nombre de la librería import *
UNSCH Pag. 22
24. Hacer un programa para resolver la siguiente ecuación cuadrática
ax2
+ bx + c = 0
Ejemplo 14
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
25. 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.
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.
Definición:
En la práctica profesional, los errores pueden resultar costosos, y en algunas ocasiones catas-
tróficos. Por ello, los errores se deben:
Identificar
Cuantificar
Minimizar
UNSCH Pag. 24
26. 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 computado-
ras 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 deci-
males.
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
27. Ejemplo:
Sea P = 25.157258457 y P∗
= 26.821343605 el valor exacto y aproxima-
do 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.
|P|
=
1.664080000
|25.15726|
=
1.664110000
25.15726
= 0.066147108 ≈ 0.06615
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:
sin(x) =
x
1!
−
x3
3!
+
x5
5!
−
x7
7!
+
x9
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
28. Ejemplo:
Sea P = 25.157258457 y P∗
= 26.821343605 el valor exacto y aproxima-
do 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.
|P|
=
1.664090000
|25.15725|
=
1.664110000
25.15725
= 0.066147532 ≈ 0.06614
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
Vverdadero
| × 100 %
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
Ejemplo 15
Solución
Sea P = sin
π
4
=
√
2
2
= 0.707106781 ≈ 0.70711 el valor exacto y P∗
el valor aproximado.
Cuando la serie de Taylor presenta 2 términos:P∗
= sin(x) =
x
1!
−
x3
3!
P∗
= sin
π
4
=
π
4
1!
−
π
4
3
3!
= 0.704652651 ≈ 0.70465
E.A. = |P − P∗
| = |0.70711 − 0.70465| = 0.00246
E.R. =
E.A.
|P|
=
0.00246
0,70711
= 0.00348
∴ E.R. % = 0.34800 %
UNSCH Pag. 27
29. Cuando la serie de Taylor presenta 3 términos:sin(x) =
x
1!
−
x3
3!
+
x5
5!
P∗
= sin
π
4
=
π
4
1!
−
π
4
3
3!
+
π
4
5
5!
= 0.707143046 ≈ 0.70714
E.A. = |P − P∗
| = |0.70711 − 0.70714| = 0.00003
E.R. =
E.A.
|P|
=
0.00003
0,70711
= 0.00004
∴ E.R. % = 0.00424 %
Halle el error relativo pocentual por redondeo a 6 cifras decimales de la serie de Taylor
con 4 términos de sin
π
4
Ejemplo 16
Solución
Sea P = sin
π
4
=
√
2
2
= 0.707106781 ≈ 0.707107 el valor exacto y P∗
el valor aproximado.
Serie de Taylor para 4 términos:P∗
=
x
1!
−
x3
3!
+
x5
5!
−
x7
7!
P∗
= sin
π
4
=
π
4
1!
−
π
4
3
3!
+
π
4
5
5!
−
π
4
7
7!
= 0.707106470 ≈ 0.707106
E.A. = |P − P∗
| = |0.707107 − 0.707106| = 0.000001
E.R. =
E.A.
|P|
=
0.000001
0,707107
= 0.000001
∴ E.R. % = 0.000141 %
Los ordenadores trabajan en un rango de 0 a 15 o 16 decimales. Ejemplos en python
pi=3.141592653589793
10
3
= 3.3333333333333335
Nota
UNSCH Pag. 28
30. 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
32. ¿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 -1.5 -1 -0,5 0 0.5 1 1.5
y 5.981689 3.718282 2.148721 1 0.106531 -0.632121 -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
33. 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 sis-
temá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 suficiente-
mente pequeño que contenga la raiz, como muestra la figura adjunta.
Extremos del intervalo
Raíz
Curva de la función f(x)
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
34. 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.
Utilizar el método de la bisección para aproximar la raíz de la siguiente ecuación:
f(x) = e−x
− x = 0
Ejemplo 17
Solución
1) Primera iteración
Busquemos un intervalo que contenga la
raiz: [0, 1]
Sea xi = 0 ∧ xd = 1 =⇒ xr = 0.5
Haciendo los siguientes cálculos:
• f(xi) = f(0) = 1
• f(xd) = f(1) = −0.632121
• f(xr) = f(0.5) = 0.106531
• Evaluando tenemos: f(xd)f(xr) < 0
∴ El nuevo intervalo es: [0.5, 1]
2) Segunda iteración
El nuevo intervalo que contiene la raiz es:
[0.5, 1]
Sea xi = 0.5 ∧ xd = 1 =⇒ xr = 0.75
Haciendo los siguientes cálculos:
• f(xi) = f(0.5) = 0.106531
• f(xd) = f(1) = −0.632121
• f(xr) = f(0.75) = −0.277633
• Evaluando tenemos: f(xi)f(xr) < 0
∴ El nuevo intervalo es: [0.5, 0.75]
3) Tercera iteración
El nuevo intervalo que contiene la raiz es:
[0.5, 0.75]
Sea xi = 0.5 ∧ xd = 0.75
=⇒ xr = 0.625
Haciendo los siguientes cálculos:
• f(xi) = f(0.5) = 0.106531
• f(xd) = f(0.75) = −0.277633
• f(xr) = f(0.625) = −0.089739
• Evaluando tenemos: f(xi)f(xr) < 0
∴ El nuevo intervalo es: [0.5, 0.625]
4) Cuarta iteración
El nuevo intervalo que contiene la raiz es:
[0.5, 0.625]
Sea xi = 0.5 ∧ xd = 0.625
=⇒ xr = 0.5625
Haciendo los siguientes cálculos:
• f(xi) = f(0.5) = 0.106531
• f(xd) = f(0.625) = −0.089739
• 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
37. 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)
Código en python :Método de la bisección
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
38. 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 interva-
lo(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
b
(a,f(a))
(b,f(b))
raiz real
Prim
era
Aproxim
ación
y=f(x)
(c,0)
Extremo
izquierdo
Extremo
derecho
Primera aproximación
a
b
(a,f(a))
(b,f(b))
raiz real
y=f(x)
(c,0)
Primera aproximación
a1
b1
(a1,f(a1))
(b1,f(b1))
raiz real
y=f(x)
(c1,0)
Segunda
Aproxim
ación
Extremo
derecho
Extremo
izquierdo
Segunda aproximación
a1
b1
(a1,f(a1))
(b1,f(b1))
raiz real
y=f(x)
(c1,0)
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)), en-
tonces su pendiente es:
m =
f(b) − f(a)
b − a
Pero como (c, 0) es punto interseccion de la recta con el eje “x”, entonces se tiene
tambien que:
m =
f(b) − 0
b − c
=
f(b)
b − c
UNSCH Pag. 37
39. Ahora igualando ambas pendientes tenemos:
f(b) − f(a)
b − a
=
f(b)
b − c
b − c =
f(b)(b − a)
f(b) − f(a)
c = b −
f(b)(b − a)
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 encuen-
tra la raiz.
◦ Si f(xi)f(xr) < 0, entonces la raiz está al lado izquierdo y el nuevo inter-
valo 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
40. 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
Ejemplo 18
Solución
1) Primera iteración
◦ Busquemos un intervalo que contenga la
raiz: [0, 1]
◦ Sea xi = 0 ∧ xd = 1 =⇒ xr =?
◦ Haciendo los siguientes cálculos:
f(xi) = f(0) = 1
f(xd) = f(1) = −0.632121
Calculando xr
xr = 1 −
(−0.632121)(1 − 0)
−0.632121 − 1
xr = 0.612700
f(xr) = f(0,612700) = −0.070814
∴ El nuevo intervalo es: [0, 0.6127]
2) Segunda iteración
◦ El nuevo intervalo que contiene la raiz es:
[0, 0.6127]
◦ Sea xi = 0 ∧ xd = 0.6127 =⇒ xr =?
◦ Haciendo los siguientes cálculos:
f(xi) = f(0) = 1
f(xd) = f(0.6127) = −0.070814
Calculando xr
xr = 0.6127 −
(−0.070814)(0.612
−0.070814 −
xr = 0.572182
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 −
(−0.007889)(0.572182 − 0)
−0.007889 − 1
xr = 0.567703
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
41. ◦ Haciendo los siguientes cálculos:
f(xi) = f(0) = 1
f(xd) = f(0.567703) = −0.000877
Calculando xr
xr = 0.567703 −
(−0.000877)(0.567703 − 0)
−0.000877 − 1
xr = 0.567206
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 −
(−0.000098)(0.567206 − 0)
−0.000098 − 1
xr = 0.567150
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 −
(−0.000011)(0.567150 − 0)
−0.000011 − 1
xr = 0.567144
f(xr) = f(0.567144) = −0.000001
∴ El nuevo intervalo es: [0, 0.567143]
UNSCH Pag. 40
43. Inicio
Fin
x0, n
gx0=e""(-x0)i
dgx0=-e**(-x0)
| dgx0 |<1
V F
Desde i=1 hasta n
gx0=e**(-x0)
xr=gx0
x0=xr
xr
Diverge
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
44. 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])
Ejemplo 19
Solución
Método de Bisección
N◦
xi xd xr f(xi) f(xd) f(xr) Er %
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.4: Resumen del método de bisección
UNSCH Pag. 43
45. Método de Falsa Posición
N◦
xi xd xr f(xi) f(xd) f(xr) Er %
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.5: Resumen del método de falsa posición
UNSCH Pag. 44
46. 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
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.
Definición: Punto fijo
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
Ejemplo 20
Puntos
fijos
UNSCH Pag. 45
47. La función g(x) = x − e1−x
(x − 1), tiene un punto fijo x = 1.
◦ g(1) = 1 − e0
(1 − 1) = 1
Ejemplo 21
Punto
fijo
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()
Código en python :Gráfica de una función
UNSCH Pag. 46
48. 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)
◦ 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
x =
x + 5
2
=⇒ g(x) =
x + 5
2
x =
5
2x − 1
=⇒ g(x) =
5
2x − 1
◦ De las deducciones o transformaciones obtenidas, algunas de ellas pueden con-
verger o diverger de acuerdo al criterio de convergencia.
Nota
UNSCH Pag. 47
49. Interpretación geométrica del punto fijo: |g (x0)| < 1
x
0
Eje x
Eje y
Raiz
f1(x)=x
y=g(x)
Figura 2.3: Interpretación geométrica del punto fijo
A continuación se presentan los casos de convergencia y divergencia.
x
0
Eje x
Eje y
Raiz
f1(x)=x
y=g(x)
Convergencia Monotónica
x
0 Eje x
Eje y
Raiz
f1(x)=x
y=g(x)
Convergencia Oscilatoria
x
0
Eje x
Eje y
Raiz
f1(x)=x
y=g(x)
Divergencia Monotónica
x
0 Eje x
Eje y
Raiz
f1(x)=x
y=g(x)
Divergencia Oscilatoria
UNSCH Pag. 48
50. 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)
Ejemplo 22
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
x0
| < 1
| −
1
0.57
| < 1
| − 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:
◦ Primera iteración: Para n = 0
x1 = g(x0)
x1 = g(0.57)
x1 = e−0.57
x1 = 0.565525
◦ Segunda iteración: Para n = 1
x2 = g(x1)
x2 = g(0.565525)
x2 = e−0.565525
x2 = 0.568062
UNSCH Pag. 49
52. Inicio
Fin
x0, n
gx0=e""(-x0)i
dgx0=-e**(-x0)
| dgx0 |<1
V F
Desde i=1 hasta n
gx0=e**(-x0)
xr=gx0
x0=xr
xr
Diverge
Diagrama de flujo del método del punto fijo
Código en python :Método del punto fijo
UNSCH Pag. 51
53. 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
Ejemplo 23
Solución
N◦
Itera. x0 xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
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
54. 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
Ejemplo 24
Solución
N◦
Itera. x0 xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
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
55. 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.
x
0 Eje x
Eje y
Raizverdadera
Valor
inicial
y=f(x)
x
0
Eje x
Eje y
x
1
Rectatangente
P
rim
e
ra
a
p
ro
x
im
a
ció
n
0(x , f(x ))0
Raizverdadera
y=f(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.
x
0
Eje x
Eje y
Raiz
y=f(x)
x
1
Rectatangente
x
2
0(x , f(x ))0
1(x , f(x ))1
x
0
Eje x
Eje y
x
1
Rectatangente
x
2
0(x , f(x ))0
1(x , f(x ))1
Raizverdadera
S
e
g
u
n
d
a
a
p
ro
x
im
a
ció
n
y=f(x)
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:
m =
f(x0) − 0
x0 − x1
UNSCH Pag. 54
56. 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) =
f(x0)
x0 − x1
x0 − x1 =
f(x0)
f (x0)
x1 = x0 −
f(x0)
f (x0)
Por lo tanto, la fórmula recursiva de Newton Raphson es:
xn+1 = xn −
f(xn)
f (xn)
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.
Nota
UNSCH Pag. 55
57. 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.
Ejemplo 25
Solución
Para aplicar la fórmula iterativa de Newton Raphson, es necesario calcular la deriva-
da 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:
x1 = x0 −
f(x0)
f (x0)
x1 = 0 −
1
−2
x1 = 0.5
◦ 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:
x2 = x1 −
f(x1)
f (x1)
x2 = 0,5 −
0.106531
−1.606531
x2 = 0.566311
UNSCH Pag. 56
58. ◦ 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 −
0.001305
−1.567616
x3 = 0.567143
◦ 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 −
0.000000
−1.567143
x4 = 0.567143
N◦
Itera. x0 xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
1 0.000000 0.500000 100.000000
2 0.500000 0.566311 11.709290
3 0.566311 0.567143 0.146700
4 0.567143 0.567143 0.000000
5 0.567143 0.567143 0.000000
6 0.567143 0.567143 0.000000
7 0.567143 0.567143 0.000000
8 0.567143 0.567143 0.000000
9 0.567143 0.567143 0.000000
10 0.567143 0.567143 0.000000
Tabla 2.9: Resumen del método de Newton Raphson:x0 = 0
UNSCH Pag. 57
59. Inicio
Fin
x0, n
dfx0=-e**(-x0)-1
dfx0>0 o
dfx0<0
VF
Desde i=1 hasta n
fx0=e**(-x0)-x0
xr=x0-(fx0/dfx0)
x0=xr
xr
Diverge
dfx0=-e**(-x0)-1
Diagrama de flujo del 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”)
Código en python :Método de Newton Raphson
UNSCH Pag. 58
60. 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.
Ejemplo 26
Solución
N◦
Itera. x0 xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
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
61. 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
x
0
x
1
y=f(x)
Eje x
Raiz
verdadera
f(x )0
f(x )1
Primera iteración
Eje y
x
0
x
1
y=f(x)
Eje x
Raiz
verdadera
f(x )0
f(x )1
Raiz
aproximada
x
2
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
x
1
y=f(x)
Eje x
Raiz
verdadera
f(x )2
f(x )1
x
2
Segunda iteración
Eje y
x
1
y=f(x)
Eje x
Raiz
verdadera
f(x )2
f(x )1
Raiz
aproximada
x
2
x
3
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) − f(xi−1)
xi − xi−1
(2.1)
UNSCH Pag. 60
62. Remplazando la fórmula (2.1) en la fórmula recursiva de Newton Raphson, tenemos:
xn+1 = xn −
f(xn)
f (xn)
xn+1 = xn −
f(xn)
f(xn) − f(xn−1)
xn − xn−1
xn+1 = xn −
f(xn)(xn − xn−1)
f(xn) − f(xn−1)
La fórmula recursiva del método de la secante está dada por:
xn+1 = xn −
f(xn)(xn − xn−1)
f(xn) − f(xn−1)
; ∀n ≥ 1
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.
Ejemplo 27
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.
◦ Primera iteración:Para n = 1 =⇒ x2 = x1 −
f(x1)(x1 − x0)
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:
x2 = 1 −
− 0.632121(1 − 0)
−0.632121 − 1
x2 = 0.612700
◦ 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 −
− 0.070814(0.612700 − 1)
−0.070814 − (−0.632121)
x3 = 0.563839
UNSCH Pag. 61
64. N◦
Itera. x0 x1 xn = xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
1 0.000000 1.000000 0.612700 63.212012
2 1.000000 0.612700 0.563839 8.665772
3 0.612700 0.563839 0.567170 0.587302
4 0.563839 0.567170 0.567143 0.004761
5 0.567170 0.567143 0.567143 0.000000
6 0.567143 0.567143 0.567143 0.000000
7 0.567143 0.567143 0.567143 0.000000
8 0.567143 0.567143 0.567143 0.000000
9 0.567143 0.567143 0.567143 0.000000
10 0.567143 0.567143 0.567143 0.000000
Tabla 2.11: Resumen del método de la secante:x0 = 0 y x1 = 1
xr
Inicio
Fin
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
Diagrama de flujo del método de la secante
UNSCH Pag. 63
65. 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)
Código en python :Método de la secante
◦ 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 cer-
cados a la raiz
Nota
UNSCH Pag. 64
66. 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.
Ejemplo 28
Solución
N◦
Itera. x0 x1 xn = xr Er = |
xactual
r − xant
r
xactual
r
| × 100 %.
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