You are on page 1of 5

ESCUELA POLITÉCNICA NACIONAL

Facultad de Ingenierı́a Civil y Ambiental


Métodos Numéricos

DIFERENCIACIÓN POR MÉTODOS NUMÉRICOS


Luis Panamá
15 de Abril de 2018

1. Resumen
En el siguiente informe se pretende desarrollar la implementación de un algoritmo para la resolución
de un problema matemático como lo es la derivada, valiéndose de métodos numéricos, para obtener un
valor muy aproximado al valor real o teórico, el cual se puede obtener con los conocimientos previos de
cálculo diferencial. Para determinar el valor aproximado de la derivada en este caso en particular, se
debe tener claro el concepto de error, imprescindible en los problemas de análisis numérico, ası́ como
también la fuente de estos; por tal motivo es que se debe establecer una tolerancia para determinar el
resultado como aceptable.

Los métodos numéricos al necesitar un número considerable de cálculos , necesitan de procesos iterati-
vos los cuales se realizan en una computadora, aquı́ es donde entra el desarrollo del algoritmo adecuado
para este proceso, en el cual diferentes lenguajes de programación pueden ser de gran utilidad; en este
caso se usará el software MatLab el cual tiene su propio lenguaje de programación, y es el que mejor
se adapta a los problemas de ingenierı́as y ciencias, ayudándonos a llegar el resultado que deseamos
obtener.

2. Introducción
En la aplicación de la ingenierı́a como ciencia, se vale de modelos fı́sicos, a partir de estos y los datos
obtenidos experimentalmente se pueden establecer modelamientos matemáticos, a los que el ingeniero
se enfrenta buscando una solución, dado que en casos existe un cantidad considerable de variables se
debe recurrir a herramientas computacionales y es ahı́ cuando mediante una serie de métodos se desea
obtener resultados lo más aproximados posibles. Es por eso que los Métodos de Análisis Numérico son
de gran importancia en la ingenierı́a y para comprenderlo se debe tener muy claro el concepto básico
en el que se fundamenta éste como es el error.

Según (Chapra,2007): ’En la actualidad, las computadoras y los métodos numéricos ofrecen una al-
ternativa para los cálculos complicados. Al usar la potencia de la computadora se obtienen soluciones
directamente, de esta manera se pueden aproximar los cálculos sin tener que recurrir a consideraciones
de simplificación o a técnicas muy lentas.’ (1)

2.1. Error
Frecuentemente en la ingenierı́a se realizan mediciones y cálculos para determinar ciertas carac-
terı́sticas, en consecuencia está expuesto a cierto de grado de incertidumbre o error, debido a varios
factores, como pueden ser instrumentales, ambientales o humanos. (2)

En cuanto a los métodos numéricos, se obtienen errores que ciertamente no son nulos pero tienen cierta
diferencia con el valor real. Las principales causas de estas pueden ser:(3)
Falta de correspondencia entre el fenómeno fı́sico y el modelo matemático
Errores en los datos iniciales

1
Errores de un método numérico usado para resolver el modelo matemático
Errores de redondeo

2.1.1. Error Absoluto


Para establecer una relación entre el valor aproximado y el valor real se usa el error absoluto. Ası́
obtenemos que tanto se desvı́a de la magnitud real. ’La relación entre el resultado exacto rE y el
resultado aproximado rA está dado por:

rE = rA +  (1)

En donde  es el error, llamado error absoluto’ (Skiba Y,2005)

2.1.2. Error Relativo


 
Si se normaliza el error para su valor exacto rE rel = rE o aproximado rA rel = rA se obtiene el
error relativo, y al multiplicarlo por 100, el error relativo porcentual. (Skiba Y,2005)

2.1.3. Error Relativo Aproximado


Si el error absoluto es dividido, para un resultado aproximado el error se denomina error relativo
aproximado, ya que no compara con el valor real. (2)

3. Desarrollo
Como primer paso, se debe tener claro los conceptos previos a aplicarse para resolver el problema,
en este caso será la definición de la derivada y la teorı́a de errores. Es ası́ que para implementarlo en
una computadora partimos de la definición de la derivada, la cual es la siguiente:

f (x + h) − f (x)
f 0 (x) = lı́m (2)
h→0 h
Como se sabe la máquina no podrá procesar el algoritmo en el que se da una división para cero,
por lo que se hace un truncamiento de la misma, es decir se omite el lı́mite y h tomará valores muy
cercanos a cero, para esto debemos tener en cuenta el error que esto implica, ya que un valor de h no
tan pequeño se alejará mucho del valor verdadero que deseamos obtener.

f (x + h) − f (x)
f 0 (x) ≈ (3)
h
El siguiente paso es determinar los datos de entrada que necesitamos que el algoritmo lea y alma-
cene, los cuales serán:

La función a derivar
El valor en el que se evaluará la derivada
El valor inicial de las variaciones

Dentro del código fuente estará escrita la tolerancia admisible, en este caso para un resultado bas-
tante aceptable se optó por tomar el valor de 0.00005.

Ası́ mediante un comando While realizaremos los procesos iterativos con una condición especı́fica, la
cual es que el Error Relativo Aproximado, siempre y cuando este error sea mayor a la tolerancia antes

2
mencionada el proceso se repetirá, e irá comparando entre el primer valor de la derivada obtenida, la
cual se asumirá como ”verdadera”para el cálculo del Error Aproximado, y el valor de la derivada en el
que la variación h será cada vez más pequeño, hasta que la condición deje de satisfacerse y obtengamos
una respuesta aceptable cuando el Error Relativo Aproximado sea menor que la tolerancia.

Una vez que se ha obtenido un resultado aceptable, lo más aproximado posible a como si se lo hubiese
desarrollado manualmente con los conocimientos de cálculo diferencial, se deberá mostrar en pantalla
el resultado y el el valor del error con el que fue obtenido.

A continuación se muestra el código implementado en Matlab, con las descripciones realizada.

Código en MatLab:

1 % Escuela P o l i t e c n i c a Nacional
2 % L u i s Panama
3 % 14/04/2018
4 % Deber 1 de Metodos Numericos
5 % Programa que implementa l a d i f e r e n c i a c i o n numerica
6
7 formato s h o r t % Se u s a r a c i f r a s con 4 d e c i m a l e s
8 c l e a r a l l ; c l c ; % Limpiar v a r i a b l e s
9
10 % D i f e r e n c i a c i o n numerica
11
12 syms x % Declarar l a v a r i a b l e simbolica
13 f=input ( ’ I n g r e s e f u n c i o n a s e r d e r i v a d a f= ’ ) ; % I n g r e s a r f u n c i o n de e n t r a d a
14 a=input ( ’ Determinar l a d e r i v a d a e v a l u a d a en x= ’ ) ; % Valor a e v a l u a r s e
15 h=input ( ’ I n g r e s e e l v a l o r de h= ’ ) ; % Valor i n i c i a l para l a s v a r i a c i o n e s
16 t o l =0.00005; % Tolerancia admisible
17 Ea=1; % I n i c i a l i z a n d o e l v a l o r de Ea
18 f u n= i n l i n e ( f ) ; % C o n v e r t i r en f u n c i o n i n l i n e para s e r e v a l u a d a
19
20 while Ea>t o l % I n i c i o de p r o c e s o i t e r a t i v o para l a c o n d i c i o n dada
21 f 1= f e v a l ( fun , a+h ) ; % E v a l u a r l a f u n c i o n en x+h
22 f 2= f e v a l ( fun , a ) ; % E v a l u a r l a f u n c i o n en x
23 f p r i m a 1 =( f 1 −f 2 ) /h ; % Derivada aproximada con e l t r u n c a m i e n t o de l a d e f i n i c i o n
24 h=h / 2 ; % I r r e d u c i e n d o h para l a s i g u i e n t e d e r i v a d a
25 f 3= f e v a l ( fun , a+h ) ; % E v a l u a r l a f u n c i o n en x+h con e l nuevo v a l o r de h
26 f 4= f e v a l ( fun , a ) ; % E v a l u a r l a f u n c i o n en x
27 f p r i m a 2 =( f 3 −f 4 ) /h ; % Derivada aproximada con e l o t r o v a l o r de h
28 Et=fprima1 −f p r i m a 2 ; % Calcular e l error verdadero
29 Ea= abs ( Et ) / f p r i m a 1 ; % C a l c u l a r e l e r r o r aproximado , y v e r i f i c a r c o n d i c i o n
30 end
31
32 t e x =[ ’ La d e r i v a d a de f e v a l u a d a en ’ , num2str ( a ) , ’ e s : ’ , num2str ( f p r i m a 2 ) , ’ con un
E r r o r Aproximado= ’ , num2str ( Ea ) ] ; % Concatenar t e x t o
33 disp ( t e x ) % S a l i d a en p a n t a l l a de l a R e s p u e s t a
34 % aproximada y d e l Error Aproximado O b t e n i d o

4. Resultados
Para verificar el código mostrado se realizará una prueba de escritorio, y posteriormente analizar
los resultados.

Se ingresará la función
f (x) = 7e0,5x (4)
Se quiere evaluar la derivada en X=2

3
Se ingresará un h inicial de variaciones h=0.3

El valor que se espera obtener, deberá ser aproximado a 9,514 el cual se obtiene derivando manual-
mente con los conocimientos de cálculo diferencial.

El algoritmo implementado en el software MatLab cumple con el objetivo para el que fue diseñado,
se realizó una prueba de escritorio tanto manualmente con diferentes variaciones de h y comparándolos
con el resultado real o verdadero, y haciendo correr el programa con el código fuente antes visualizado
en este informe, obteniendo resultado muy aproximados.

5. Conclusiones
Se puede observar que se pierdan considerables cifras significativas, por consecuencia de usar el
comando format short el cual nos devuelve valores con 4 decimales, ası́ como también debido al
truncamiento de la definición de derivada.
Los resultados que se obtuvieron con el código escrito en Matlab son muy aproximados al valor
real, por lo que se garantiza su utilidad en la resolución de este tipo de problemas de cálculo en
especı́fico.
Se comprendió el concepto de error y su importancia en los métodos numéricos, ya que mediante
éste se puede determinar si un resultado se toma o no como aceptable.
El proceso iterativo usado es el que mejor ayuda proporcionó, ya que realizar los cálculos de
errores manualmente tomarı́a bastante tiempo hasta tomar una respuesta como aceptable.
Las herramientas computacionales son de vital importancia para la resolución de problemas en
ingenierı́as, al aplicar teoremas y formulas aprendidas teóricamente y constatando su veracidad
en problemas experimentales y resueltos con métodos numéricos.

6. Recomendaciones
Usar más cifras significativas para un resultado más aproximado, si se desea un resultado con un
error mucho menor reducir la tolerancia admisible en el código fuente.

4
Comprobar los resultados obtenidos con el código fuente con una prueba de escritorio manual-
mente, para constatar que no existan errores de tipo tipográfico en el código.
Usar diferentes comandos que nos proporcionen la capacidad de realizar procesos iterativos, para
tener un contexto más amplio para la resolución de problemas mediante métodos numéricos.

7. Bibliografı́a
Referencias
[1] S. C. Chapra and R. P. Canale, Métodos numéricos para ingenieros. McGraw-Hill,, 2007.
[2] A. Nieves Hurtado and F. C. Domı́nguez Sánchez, Métodos numéricos: aplicados a la ingenierı́a.
Grupo Editorial Patria, 2002.

[3] Y. Skiba, Métodos y esquemas numéricos: un análisis computacional. UNAM, 2005.

You might also like