Está en la página 1de 10

Programación y Métodos Numéricos

Julián Moreno Loreto, Tatiana Serna Tavera


(julian.moreno@udea.edu.co, atatiana.serna@udea.edu.co)

Universidad de Antioquia, Facultad de ingeniería, departamento de ingeniería mecánica.


Medellín, Antioquia, Colombia.

Resumen: El siguiente trabajo presenta el desarrollo de la actividad N°1 de programación estructurada y


métodos numéricos del curso de programación y métodos numéricos de la Facultad de Ingeniería de la
Universidad de Antioquia, con el fin de poner en práctica los conocimientos adquiridos durante el
desarrollo de la asignatura. Se presentan los procedimientos del desarrollo de los cuatro ejercicios
propuestos con sus respectivos análisis. Finalmente, se presentan algunas conclusiones.
Palabras clave: Python, métodos numéricos, regresión polinomial, spline cúbico, spline cuadrático.

1. INTRODUCCIÓN
Los métodos numéricos son algoritmos que se utilizan para
resolver operaciones matemáticas complejas. Algunos de los
principales métodos numéricos son método de punto fijo,
método de Newton – Raphson, regresión polinomial,
interpolación, spline cúbico, spline cuadrático, integración
numérica, entre otros.

Un método numérico es un algoritmo que intenta resolver


una operación matemática compleja en un ordenador. Los
motivos por los que se usa un método numérico en vez de
intentar una solución analítica pueden ser varios:

• El problema es muy complejo, y no se puede


encontrar una solución analítica en la práctica.
• El problema no tiene solución analítica conocida, Figura 1. Sistema mecánico de resortes
pero puede resolverse de manera numérica.
• El tamaño de la solución lo hace impracticable para Encuentre el valor de d para los siguientes valores de
resolver a mano.1 parámetros: k1 = 40000 gs-2, k2=40 gs-2m0.5, m = 95 g, g = 9.81
ms-2 y h = 0.43 m.
2. SISTEMA MECÁNICO • Implemente en Python los métodos gráficos para estimar el
Los sistemas mecánicos reales involucran la deflexión de valor de d.
resortes no lineales. En la Figura se ilustra una masa m que se
libera a una distancia h sobre un resorte no lineal. La fuerza de • Determine el número de iteraciones requeridas por cada uno
resistencia F del resorte está dada por la ecuación: de los métodos numéricos para que el error relativo de
3 aproximación alcance 1×10−4.
𝐹 = − (𝑘1 𝑑 + 𝑘2 𝑑 2 )

Ecuación 1. Fuerza de resistencia Primero se remplazan los valores dados en la ecuación 2,


para dejar como única incógnita la variable d, donde se
Es posible usar la conservación de la energía para demostrar obtiene:
que:
5 0=16*d^2.5+20000*d^2-931.95*d-400.7385
2𝑘2 𝑑 2 1
0= + 𝑘1 𝑑 2 − 𝑚𝑔𝑑 − 𝑚𝑔ℎ
5 2 Ecuación 3. Función de la conservación de la energía
Ecuación 2. Conservación de la energía
Por comodidad se utiliza la siguiente igualdad x=d. Hay • Implemente en Python todos los métodos numéricos vistos
dos métodos gráficos para determinar el valor de d: en clase para calcular las raíces de ecuaciones.

En el primer método se desea hallar d usando f (x0) = 0 Para hallar el valor de d se utilizaron tanto métodos
siendo x0 la raíz, por lo que se utiliza la ecuación 3 para hallar numéricos cerrados como abiertos.
los ceros de la función, esta raíz se halla cuando la gráfica de
la función cruza el eje x. Vale la pena aclarar que los métodos cerrados requieren de
dos valores que encierren la raíz, mientras que los métodos
En la figura 2 se observa que la gráfica de la función cruza abiertos se basan únicamente en un valor de inicio.
el eje x en 0, pero 0 no puede ser una raíz de la ecuación ya
Método de la bisección: Primero se debe hacer un análisis
que al tener un término independiente no se cumpliría la
para encontrar un intervalo que contenga la raíz usando f (a)f
conservación de la energía, esto se debe a que este método es
(b) < 0, este se pudo sacar de los métodos gráficos usados
muy impreciso y por eso requerimos de otros métodos para
obtener un valor más adecuado. previamente.
Se seleccionó los valores que encierran la raíz, un límite
inferior de 0 y superior de 2, se restringe el error relativo, se
coloca un tope máximo de iteraciones y se define la función
como lo muestra la figura 4.

Figura 4. Valores iniciales del método numérico de la


Figura 2. Método grafico 1 bisección
Luego, inicializamos los datos y evaluamos la función en
En el segundo método grafico se desea tener dos
el límite inferior y superior, para determinar si la raíz se
ecuaciones equivalentes de la forma f1(x) = f2(x), al ser
encuentra en el intervalo, después comenzamos un ciclo
equivalentes significa que tienen la misma raíz la cual será
mientras donde se calcula una nueva aproximación c = (a + b)
donde las dos graficas se crucen, por lo que se separó la
/2, siendo a y b los limites iniciales y c la nueva aproximación
ecuación 3 en dos ecuaciones equivalentes así:
como se muestra en la figura 5.
f1(x)= 16*x^2.5+20000*x^2-400.7385

f2(x)= 931.95*x

Ecuación 4. Sistema de ecuaciones, para método grafico 2

En la figura 3 se puede observar que al graficar la ecuación


4 hay un cruce el cual indica el valor de d en el problema, este
método tampoco es muy exacto ya que se tiene que estimar el
valor de d que en este caso se estima en 0.17m.

Figura 5. Procedimiento inicial del método numérico de la


bisección
Teniendo la nueva aproximación, se procede a volver a
Figura 3. Método grafico 2 evaluar la función en los nuevos límites, al igual que el error
relativo aproximado aplicando y sus iteraciones como lo Por último, se obtienen los resultados de d el cual es la raíz
muestra la figura 6. de la ecuación y su resultado es de 0,1667m, también se
obtiene el error relativo aproximado y el número de iteraciones
que se muestran en la figura 10.

Figura 10. Resultados del método numérico de Newton-


Raphson

Método de iteración simple de punto fijo: Este método


requiere una manipulación de la ecuación f(x)=0, de tal modo
de que x quede en el lado izquierdo de la ecuación, para así
Figura 6. Procedimiento final del método de la bisección predecir un nuevo x el cual es la raíz de la ecuación, la
ecuación queda así:
Por último, se calcula el valor de d, que es la raíz de la
ecuación y que en este caso fue de 0.1667m, también se x=(16*x^2.5+20000*x^2-400.7385) /931.95
obtiene el error relativo aproximado y el número de iteraciones
los cuales son indicados en la figura 7. Ecuación 5. Iteración simple de punto fijo

Primero se ingresa el valor semilla xi y también se digitan


e inicializan el error relativo aproximado y el número de
iteraciones y se define la ecuación 5 de forma iterativa de la
Figura 7. Resultados del método numérico de la bisección siguiente forma xi+1 = g(xi)., como lo muestra la figura 11.
Método de Newton-Raphson: Este método solo necesita un
valor inicial o semilla que por medio del truncamiento de la
serie de Taylor después de la primera derivada xi+1=xi−f
(xi)/f’(xi), se obtiene una aproximación de la raíz.
Primero se definió la ecuación 3, al igual que su derivada
y se coloca un valor semilla de 1, además se digitan e
inicializan el error máximo permitido, el máximo de
iteraciones como se muestra en la figura 8.
Figura 11. Valores iniciales del método de iteración simple
de punto fijo

Luego en un ciclo mientras se calculan cada una de las


incógnitas presentadas como muestra la figura 12.

Figura 8. Valores iniciales del método numérico de Newton -


Raphson
Luego se comienza un ciclo mientras donde se formula la
ecuación de Newton Raphson xi+1=xi−f (xi)/f’(xi), se formula
el error relativo aproximado, el número de iteraciones y el
valor de la raíz, como se muestra en la figura 9.

Figura 12. Procedimiento del método numérico de iteración


de punto fijo

Finalmente se extraen los resultados expuestos en la Figura


13.
Figura 9. Procedimiento del método numérico de Newton-
Raphson
Figura 16. Iteraciones vs error relativo, método de iteración
simple de punto fijo.
• Analice los resultados.
Todos los métodos numéricos arrojaron un valor de d muy
parecido con un valor aproximado a d=0.1667m.
• Grafique simultáneamente la variación del error relativo con El método de Newton-Raphson es el más rápido ya que
las iteraciones de los métodos empleados. realiza menos iteraciones que el resto de los métodos para
llegar a la raíz, como se observa en las figuras 14, 15, 16.
Se hace una gráfica de numero de iteraciones vs error
relativo, para comparar y analizar cada método, que están Aunque en la figura 3 se muestra que el método geométrico
representadas en las figuras 14, 15, 16. 2 contiene una raíz, para obtener su valor se debe hacer una
estimación la cual no es muy precisa, por lo tanto, se puede
concluir que los métodos geométricos son muy imprecisos.
Al no obtener resultados de los métodos iterativos de punto
fijo, se observa en la figura 16 un comportamiento erróneo del
error relativo aproximado y las iteraciones.

3. ECUACIONES NO LINEALES

Determine las raíces de las siguientes ecuaciones no


lineales simultaneas implementando un método numérico en
Python:

(𝑥 − 4)2 + (𝑦 − 4)2 = 5
Figura 14. Iteraciones vs error relativo, método de la
𝑥 2 + 𝑦 2 = 16
bisección
Ecuación 6. Sistema de ecuaciones no lineales

Con el fin de determinar las raíces del sistema de


ecuaciones no lineales presentado en la ecuación 6, se utilizó
el método numérico de Newton – Raphson. Para lo cual, se
ingresó el sistema de ecuaciones 2x2 y se procedió a calcular
sus derivadas parciales respecto a x e y.

En la figura 17 se presentan las funciones u (x, y) y v (x, y)


con sus respectivas derivadas parciales.

Figura 15. Iteraciones vs error relativo, método de Newton-


Raphson

Figura 17. Derivadas parciales calculadas

Luego, se calculó el jacobiano de la ecuación de recurrencia


del método numérico de Newton – Raphson y una
aproximación a la solución (xi+1, yi+1) tal como se vio en las
clases de métodos numéricos.

En la figura 18 se presentan los resultados obtenidos al


ejecutar el método iterativo con los valores semilla xi = 1.5 y
yi = 4.5.
T 0 5 10 20 30 40
μ 1.787 1.519 1.307 1.002 0.7975 0.6529
Tabla 1. Datos de temperatura vs. Viscosidad

• Grafique los datos.

Figura 18. Resultado del método iterativo de Newton – En la figura 22 se presenta una gráfica de dispersión a partir
Raphson para valores semilla xi = 1.5 y yi = 4.5 de los datos presentados en la tabla 1. Se decidió graficar los
datos de esta manera ya que brinda la posibilidad de estimar la
A partir de la figura 18 y 19 es posible observar que, para tendencia de los diferentes datos sin establecer a priori la
determinar las raíces del sistema de ecuaciones no lineales relación que tendrán los datos, evitando posibles errores por el
propuesto, fueron necesarias 5 iteraciones. Y las raíces ordenamiento de los datos y facilitando la interpretación de los
obtenidas fueron x = 1.80583 y y = 3.56917. mismos.

Figura 19. Resultados obtenidos con el método iterativo


Newton – Raphson para los valores semilla xi = 1.5 y yi = 4.5

Se procedió a calcular de nuevo las raíces del sistema con el


método de Newton – Raphson utilizando otros nuevos valores
semilla xi = 20 y yi = -3.5. En la figura 20 se presentan las
iteraciones calculadas para determinar las raíces del sistema.
Figura 22. Dispersión de los datos

• Implemente en Python un método de regresión polinomial


para encontrar el orden del polinomio que mejor se ajusta a los
datos.

Con el fin de encontrar el orden del polinomio que mejor se


ajustara a los datos, se implementó una función de ajuste
polinomial utilizando la función polyfit, la cual nos permite
obtener los coeficientes del polinomio. En la figura 23 se
puede observar la respuesta obtenida para un polinomio de
Figura 20. Resultado del método iterativo de Newton –
grado 2.
Raphson para valores semilla xi = 20 y yi = -3.5

A partir de la figura 21 es posible observar que las raíces


calculadas son las mismas que se obtuvieron para los primeros
valores semilla, sin embargo, en este caso fueron necesarias 8
iteraciones.

Figura 21. Resultados obtenidos con el método Newton –


Raphson para los valores semilla xi = 20 y yi = -3.5
Figura 23. Regresión polinomial con polyfit
4. VISCOSIDAD VS. TEMPERATURA
A partir de la figura 25 es posible observar que un
La viscosidad dinámica del agua μ (10-3 Nsm-2) se polinomio de grado 2 se ajusta muy bien a los datos,
relaciona con la temperatura T (◦C), de la siguiente manera: obteniendo un coeficiente de determinación de 0.9982 y un
coeficiente de correlación r de casi 1, lo que significa el
polinomio obtenido explica casi el 100% de la variabilidad de
los datos.

Figura 24. Resultados de la regresión polinomial con polyfit

Figura 27. Ajuste por función de potencias

En la figura 28 se puede observar los resultados obtenidos


con el método iterativo de Gauss – Newton para ajustar una
función de potencias a los datos.

Figura 25. Ajuste por segundo método de regresión


polinomial

A partir de la figura 26 podemos observar que utilizando el


segundo método de regresión polinomial se obtiene un
coeficiente de determinación de 0.9999 y un coeficiente de Figura 28. Resultados del ajuste por función de potencias
correlación r casi 1, lo que significa que el polinomio obtenido
explica casi el 100% de la variabilidad de los datos. En la figura 29 se presentan los valores de los parámetros
Obteniendo una mejora despreciable respecto al ajuste a0 y a1 de ajuste de la función de potencia obtenidos. Además,
obtenido utilizando la función polyfit. podemos observar que el número de iteraciones necesarias
para obtener los parámetros a0 y a1 fueron 6.

Figura 26. Resultados obtenidos por el segundo método de


regresión polinomial Figura 29. Resultados del ajuste por función de potencias

• Implemente en Python un método para ajustar una función Como los resultados obtenidos no fueron los esperados, lo
de potencias de la forma μ = aTb a los datos. cual se debió al valor de 0 en el primer dato, con el fin de
analizar el comportamiento de este método, se procedió a
En la figura 27 se presenta la respuesta obtenida para ajustar eliminar este primer dato. En la figura 30 podemos observar la
una función de potencias de la forma a los datos. nueva aproximación obtenida.
• Compare gráficamente todas las funciones obtenidas.

En la figura 33 se presenta la comparación entre la función


obtenida mediante regresión polinomial y el ajuste por función
de potencias.

Figura 30. Nuevo ajuste por función de potencias

En la figura 31 se puede observar los resultados obtenidos


con el método iterativo de Gauss – Newton para ajustar una
función de potencias a los datos.

Figura 33. Comparación de funciones obtenidas

En la figura 34 se presenta la comparación entre la función


obtenida mediante regresión polinomial y el nuevo ajuste por
función de potencias.

Figura 31. Resultados del nuevo ajuste por función de


potencias

En la figura 32 se presentan los valores de los parámetros a0 y


a1 de ajuste de la función de potencia obtenidos. Además,
podemos observar que el número de iteraciones necesarias
para obtener los parámetros a0 y a1 fueron 9 iteraciones.

Figura 32. Resultados del nuevo ajuste por función de


potencias Figura 34. Comparación de funciones obtenidas

• Calcule para cada uno de los ajustes el coeficiente de • Analice los resultados.
determinación.
A partir de los resultados presentados en la figura 33 y 34
A partir de la ecuación presentada en la ecuación 7 se es posible observar que la función que mejor se ajusta a los
calcularon los coeficientes de determinación para los 3 datos se obtuvo mediante el segundo método de regresión
métodos utilizados. polinomial, lo cual se puede corroborar con los coeficientes de
𝑆𝑡 − 𝑆𝑟 determinación obtenidos y presentados anteriormente.
𝑅2 =
𝑆𝑡
Ecuación 7. Coeficiente de determinación 5. BORDES DE UNA IMAGEN

El coeficiente de determinación utilizando la función de Algunos softwares de procesamiento de imágenes detectan


regresión polinomial polyfit fue de 0.9983 y para el segundo automáticamente los bordes de una imagen y los grafican
método de regresión polinomial fue de 0.9999. Utilizando el utilizando splines. De la figura presentada a continuación se
método de Gauss – Newton el coeficiente de determinación sustrajeron las posiciones de los pixeles para las líneas inferior
obtenido fue de -0.14, lo cual se puede deber a un mal ajuste y superior.
del modelo, por lo que se asume un R2 igual a 0.
Inferior Superior
899 355 899 355
885 392 885 357
859 427 867 359
826 461 833 366
798 484 804 368
764 500 772 367
727 510 741 362
687 518 700 349
649 522 665 335 Figura 35. Conjunto de datos inferiores
555 531 634 323
La grafica del conjunto de datos superiores se presenta en
479 530 598 306
la figura 36.
397 527 571 293
340 520 543 276
301 510 512 258
268 504 484 241
237 492 462 223
205 474 433 203
185 458 403 179
167 440 370 155
145 408 333 136
129 378 301 117
115 347 274 103
Figura 36. Conjunto de datos superiores
100 314 239 87
88 277 213 78 En la figura 37, se podrá observar todos los datos unidos
77 231 180 69 siendo la curva roja el conjunto de datos inferiores y la azul el
conjunto de datos superiores.
69 200 154 63
63 164 138 60
61 132 117 63
100 68
86 78
75 93
68 112
61 132
Tabla 2. Posiciones de las curvas

• Grafique cada uno de los conjuntos de datos

La grafica del conjunto de datos inferiores se presenta en Figura 37. Grafica completa
la figura 35.
• Ajuste un spline cuadrático a cada conjunto de datos

En la figura 38 se muestra un spline cuadrático para el


conjunto de datos inferiores, que esta señalado con una línea
azul
Figura 38. Ajuste cuadrático en el conjunto de datos Figura 41. Ajuste cubico en el conjunto de datos superiores
inferiores
• Compare las diferencias entre los resultados anteriores
En la figura 39 se muestra un spline cuadrático para el
conjunto de datos inferiores, que está señalado con una línea
roja.

Figura 42. Comparativa en el conjunto de datos inferiores

Figura 39. Ajuste cuadrático en el conjunto de datos


superiores

• Ajuste un spline cúbico a cada conjunto de datos

En la figura 40 se muestra un spline cubico para el conjunto


de datos inferiores, que está señalado con una línea punteada
verde.

Figura 43. Comparativa en el conjunto de datos superiores

• Analice los resultados.

Como se puede observar en las figuras 41 y 42 en los


conjuntos de datos, tanto inferiores como superiores la
diferencia entre la interpolación cuadrática y cubica es casi
nula, esto se debe a que los datos están muy juntos y por lo
tanto no presentan una variación considerable en las curvas.
Figura 40. Ajuste cubico en el conjunto de datos inferiores
CONCLUSIONES
En la figura 41 se muestra un spline cubico para el conjunto
de datos superiores, que está señalado con una línea punteada Los métodos gráficos son muy útiles como guía, pero a la
verde. hora de obtener un resultado más aproximados la mejor opción
son los métodos numéricos.
A partir de los resultados obtenidos al realizar un ajuste por
regresión polinomial y ajuste por función de potencias,
podemos concluir que la regresión polinomial presenta un
mejor comportamiento, ya que el polinomio obtenido explica
mejor la variabilidad de los datos.

Podemos observar que un valor negativo del coeficiente de


determinación equivale a que se obtuvo un muy mal ajuste de
los datos. Por lo cual, se tomaría este coeficiente como 0.

Un coeficiente de correlación r de 1 significa que el


polinomio obtenido explica el 100% de la variabilidad de los
datos.

REFERENCIAS
[1] MateWiki. (2020). Métodos numéricos. Recuperado de
https://mat.caminos.upm.es/wiki/M%C3%A9todos_num
%C3%A9ricos
[2] Obando, F. (2020). Trabajo N°1. Programación
estructurada y métodos numéricos
[3] Obando, F. (2020). Métodos numéricos para ingeniería.
Raíces de ecuaciones
[4] Obando, F. (2020). Métodos numéricos para ingeniería.
Ajuste de Curvas: Interpolación.
[5] Obando, F. (2020). Métodos numéricos para ingeniería.
Ajuste de Curvas: Regresión por mínimos cuadrados.
[6] Chapra, S y Canalé R. (2015). Métodos numéricos para
ingenieros. Séptima edición. Recuperado de
https://drive.google.com/file/d/16RLRWdE8qR0h9IntPc
Xh3-oBuWZK4FkX/view

También podría gustarte