Вы находитесь на странице: 1из 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

DERIVACIN NUMRICA
ASPECTOS GENERALES
En el clculo ingenieril es muy comn la necesidad de obtener el valor de la derivada de funciones, la gran
mayora de las veces es la derivada primera, pero en otros casos tambin es necesario calcular derivadas de
orden superior.
El anlisis matemtico ensea cmo obtener las derivadas de cualquier funcin, haciendo uso de las reglas de
derivacin; sin embargo, en los casos reales, si bien muchas veces se tiene la expresin matemtica de la
funcin, en tanto otros se disponen de tablas donde las relaciones funcionales estn tabuladas, y en otros casos,
en lugar de funciones, se tienen algoritmos de clculo, que incluyen mltiples funciones. De esta manera, la
determinacin analtica de una derivada no siempre es posible, por lo que se estudiar a continuacin diversos
1
mtodos numricos para poder calcular las derivadas, sin importar la forma en la que se expresen las relaciones
funcionales, ya sea como funciones, como algoritmos o tablas.
Se hacen dos aclaraciones importantes:
-

Los mtodos numricos dan resultados aproximados, por lo que siempre hay un error, el cual debe ser
estimado, ya que existe la posibilidad de que el error sea lo suficientemente grande como para invalidar
el resultado obtenido.
El anlisis del error cometido se lo ver desde un punto de vista prctico, ya que el estudio matemtico
riguroso del mismo escapa al alcance del presente curso.

EL PSILON DEL MICROPROCESADOR


Cuando se estudi el Modo Consola de Scilab, se hizo una breve discusin de la precisin numrica de la
computadora. Cuando se comienzan a estudiar mtodos numricos, es necesario hacer un estudio ms detallado
del problema.
Nunca se debe olvidar que las computadoras, de acuerdo al microprocesador que tengan, no tienen precisin
infinita en la representacin de los nmeros, por lo que en general, la enorme mayora de los valores numricos,
con parte decimal distinta de cero, incluyen un error de truncamiento.
Para poder conocer el lmite con el cual los nmeros son almacenados con precisin, se debe determinar el
llamado psilon del microprocesador, que no es otra cosa que el menor valor numrico que sumado ms uno, da
como resultado un valor distinto de uno.
Existen algoritmos para calcular dicho valor, sin embargo Scilab tiene una constante predefinida denominada
2
%eps que almacena justamente este dato . Para conocer este valor se escribe la siguiente instruccin en el Modo
Consola:
-->%eps
%eps =
2.220D-16
Para poder trabajar con este valor numrico, se aumentar la cantidad de decimales que Scilab muestra en los
resultados, de manera tal para que se representen 18 decimales; en formato de punto fijo, se escribir la
siguiente instruccin:
-->format('v',21)
1

La diferencia entre una derivada analtica y una numrica, es que en el primer caso se obtiene la funcin derivada, mientras que en el
segundo caso se obtiene el valor de la derivada en un nico punto, adems de incluir un error de clculo, inherente al mtodo numrico
utilizado.
2
Se debe recordar que este valor depende del microprocesador, por lo que se pueden obtener resultados distintos en distintas computadoras.

Ing. Juan E. Nez Mc Leod

Pgina 1 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Como se vio cuando se trat el tema del Modo Consola, a la cantidad de decimales se le tena que agregar una
posicin por el punto decimal, otra por el valor de la parte entera (se trabajar con valores menores a 10) y una
ltima posicin para el signo.
Una vez realizado el cambio de formato se har el siguiente clculo:
-->1+%eps
ans =
1.000000000000000222
Como se observa, el resultado es exacto, en los primeros 18 decimales. A continuacin se realizar un clculo
similar, pero utilizando la mitad del valor de psilon.
-->1+%eps/2
ans =
1.
Con esto se verifica que el segundo sumando tiene un valor numrico que es menor a la precisin del
microprocesador, por lo que se pierde la informacin.
EL LMITE DEL COCIENTE INCREMENTAL
La definicin matemtica de la derivada se expresa mediante el siguiente lmite:
= lim

Haciendo uso de esta definicin, se puede evaluar una derivada en forma numrica, y la precisin de este clculo
ser mejor tanto ms pequeo sea el valor del incremento h. Sin embargo, este incremento no puede ser
reducido en forma indefinida, ya que si se utiliza un valor por debajo de la precisin de la computadora, se
llegara a un clculo en el cual
+ =
, por este motivo el mnimo valor de h debe ser estimado, y va a
depender de cada caso en particular.
3

Para estudiar estos aspectos, se usar la funcin =


, siendo su funcin derivada primera
=
.
Como se mencion, cualquier mtodo numrico devuelve como resultado una solucin particular; es decir, un
valor numrico, por lo tanto si se desea calcular la derivada de la funcin senoidal en x=1, se escribir la
siguiente instruccin:
-->cos(1)
ans =
0.540302305868139765
Este ser el valor que se usar como valor verdadero de la derivada, para poder comparar los resultados
obtenidos con los distintos valores de h.
Para calcular el cociente incremental se debe asignar un valor a h, quizs el valor que brinde la mayor precisin
sea el valor de psilon, por lo que el primer clculo que se har ser el siguiente:
-->(sin(1+%eps)-sin(1))/%eps
ans =
0.5

Se asume que el lector sabe la diferencia conceptual entre derivada en un punto y funcin derivada.

Ing. Juan E. Nez Mc Leod

Pgina 2 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Sorprendentemente, el error de clculo es muy elevado, lo cual se debe a que se est trabajando en el lmite de
precisin de la computadora, y es evidente que la prdida de informacin (cifras significativas) es importante.
Para poder calcular rpidamente varios valores de derivada para distintos incrementos, se utilizar la siguiente
funcin:
// Funcin para calcular la derivada de y=sen(x) con diferentes h
// Variables de entrada
// x: valor en el cual se calcula la derivada
// h: valor inicial del incremento de la variable
// n: cantidad de derivadas que se calcularn reduciendo en incremento
// Variables de salida
// La funcin escribir en la consola una tabla con los valores calculados
function derivSeno(x, h, n)
dExac=cos(x)
printf("Clculo de la derivada de y=sen(x)\n\n")
printf("Valor exacto: %21.18f\n\n",dExac)
printf("\t
h\t\t
derivada\t\t
error\n")
for i=1:n
dNum=(sin(x+h)-sin(x))/h
er=dExac-dNum
printf("%2d\t%10.2e\t%21.18f\t%21.18f\n",i,h,dNum,er)
h=h/10
end
endfunction
La instruccin printf utilizada en la funcin, permite escribir mensajes y valores en la consola directamente. Se
debe especificar el formato a utilizar mediante los siguientes cdigos:

Formato

Descripcin

\t

Representa un tabulador, por lo que ubica la posicin de escritura en la siguiente posicin de


tabulacin. Su uso permite armar fcilmente tablas.

\n

Representa una nueva lnea. Se ubica al final de cada lnea, para indicar a Scilab que la
prxima impresin se har en la lnea siguiente.

%xd

Simboliza la escritura de un nmero entero, donde x es el espacio que se utilizar para su


representacin en la consola; as por ejemplo, %4d, indica que sern cuatro los espacios
utilizados, sin importar la cantidad real de cifras del nmero. De esta manera se logran armar
columnas bien formateadas.

%x.yf

Este indicador de formato es similar al anterior, pero utilizado para valores en punto fijo. La x
representa el espacio total para representar el nmero e y la cantidad de lugares destinados
para los decimales. Ej: %8.2f indica que se utilizarn ocho lugares para representar los
nmeros, de los cuales dos posiciones sern para los decimales.

%x.ye

Idntico al anterior, pero se lo utiliza para representar valores numricos en punto flotante.

Los cdigos de formato mencionados no constituyen una lista exhaustiva, sino simplemente representan los
casos ms ampliamente utilizados.
Para analizar los resultados obtenidos con distintos valores de incremente, se ver como ejemplo el clculo de la
derivada en x=1, con un incremento inicial de h=0.1 y 20 clculos de derivadas, en cada uno de los cuales se
dividir por diez el incremento, segn se observa en el cdigo. De esta manera, los resultados devueltos por
Scilab son los siguientes:

Ing. Juan E. Nez Mc Leod

Pgina 3 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

-->derivSeno(1,0.1,20)
Clculo de la derivada de y=sen(x)
Valor exacto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

0.540302305868139770

h
1.00e-01
1.00e-02
1.00e-03
1.00e-04
1.00e-05
1.00e-06
1.00e-07
1.00e-08
1.00e-09
1.00e-10
1.00e-11
1.00e-12
1.00e-13
1.00e-14
1.00e-15
1.00e-16
1.00e-17
1.00e-18
1.00e-19
1.00e-20

derivada
0.497363752535388000
0.536085981011868990
0.539881480360326900
0.540260231418621120
0.540298098505864740
0.540301885121330260
0.540302262930225540
0.540302302898254430
0.540302358409405660
0.540302247387103200
0.540301137164078570
0.540345546085063580
0.539568389967825970
0.544009282066326590
0.555111512312578270
0.000000000000000000
0.000000000000000000
0.000000000000000000
0.000000000000000000
0.000000000000000000

error
0.042938553332751761
0.004216324856270770
0.000420825507812861
0.000042074449518648
0.000004207362275022
0.000000420746809504
0.000000042937914224
0.000000002969885338
-0.000000052541265894
0.000000058481036569
0.000001168704061194
-0.000043240216923812
0.000733915900313797
-0.003706976198186829
-0.014809206444438505
0.540302305868139770
0.540302305868139770
0.540302305868139770
0.540302305868139770
0.540302305868139770

Un breve anlisis de los resultados demuestran como la precisin del clculo aumenta, a medida que se reduce
-8
el incremento, hasta llegar en la octava fila a un mnimo en h=10 , y de all en adelante, a pesar de reducirse el
incremento, el error aumenta en valor absoluto. Por otro lado, para incrementos muy pequeos, la diferencia
entre la funcin incrementada y la funcin sin incrementar se hace nula, porque se excede la precisin numrica
-16
de la computadora; por este motivo, a partir de incrementos de h=10 las derivadas valen cero, dando la falsa
informacin de tener el caso de una funcin constante.
NMERO DE ORDEN Y EXACTITUD
Cualquier resultado proveniente de un mtodo numrico constituye una aproximacin del resultado analtico
exacto. Esta aproximacin depende del mtodo numrico utilizado, y con el objeto de tener una idea del grado de
aproximacin se habla del orden de precisin del mtodo.
As por ejemplo, se puede decir que un mtodo es de orden 1, mientras que otro es de orden 2. Esto significa, en
trminos generales, que si se reduce el valor del incremento a la mitad (valor de h), el error se reduce a la mitad
si el orden es 1 y a la cuarta parte si el orden es 2.
Esto se debe fundamentalmente a que la expresin de estimacin del error es funcin del incremento elevado al
orden de precisin, lo que se simboliza como
para un mtodo de orden uno u
para un mtodo de
orden dos, etc.
En trminos generales se puede decir que mientras mayor sea el orden de un mtodo numrico, tanto ms
preciso ser el resultado mientras las condiciones de clculo no cambien.
FRMULAS DE DIFERENCIAS CENTRADAS
Para mejorar la precisin, en lugar de utilizarse la expresin de definicin de la derivada, se utilizan expresiones
4
similares, pero que utilizar valores de la funcin por derecha e izquierda , de manera tal que el valor en que se
desea estimar la derivada queda en el centro del intervalo, tal como se observa a continuacin:

La demostracin matemtica de la exactitud de estas expresiones excede el alcance de este apunte.

Ing. Juan E. Nez Mc Leod

Pgina 4 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Orden

Expresin de clculo
+

2
4

+ 2 + 8

+ 8
12

Al utilizar la definicin matemtica de derivada, como se vio en el punto anterior, se lograba una aproximacin de
orden uno, mientras que con las expresiones centradas, se logran aproximaciones de orden dos y cuatro. Es
importante mencionar que mientras mayor es el orden de la aproximacin tanto ms preciso es el resultado.
Para analizar el comportamiento de la expresin de orden dos, se modificar el programa de clculo de la
derivada de la funcin senoidal, reemplazando la siguiente lnea:

Instruccin actual

Nueva instruccin

dNum=(sin(x+h)-sin(x))/h

dNum=(sin(x+h)-sin(x-h))/(2*h)

Al ejecutar la nueva funcin, los resultados son los siguientes:


-->derivSeno(1,0.1,20)
Clculo de la derivada de y=sen(x)
Valor exacto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

0.540302305868139770

h
1.00e-01
1.00e-02
1.00e-03
1.00e-04
1.00e-05
1.00e-06
1.00e-07
1.00e-08
1.00e-09
1.00e-10
1.00e-11
1.00e-12
1.00e-13
1.00e-14
1.00e-15
1.00e-16
1.00e-17
1.00e-18
1.00e-19
1.00e-20

derivada
0.539402252169759460
0.540293300874739040
0.540302215817689560
0.540302304968265370
0.540302305856998900
0.540302305840345440
0.540302305673811990
0.540302308449369550
0.540302302898254430
0.540302247387103200
0.540301137164078570
0.540345546085063580
0.540123501480138550
0.544009282066326590
0.555111512312578270
0.555111512312578160
0.000000000000000000
0.000000000000000000
0.000000000000000000
0.000000000000000000

error
0.000900053698380310
0.000009004993400730
0.000000090050450208
0.000000000899874397
0.000000000011140866
0.000000000027794322
0.000000000194327776
-0.000000002581229785
0.000000002969885338
0.000000058481036569
0.000001168704061194
-0.000043240216923812
0.000178804388001219
-0.003706976198186829
-0.014809206444438505
-0.014809206444438394
0.540302305868139770
0.540302305868139770
0.540302305868139770
0.540302305868139770

Al analizar los resultados se observa que la mxima precisin se obtiene en la quinta lnea, con un incremento de
-5
h=10 , el cual es menor que el hallado en el caso visto previamente. Incluso el error cometido es menor; es decir,
el valor de la derivada numrica tiene mayor precisin. Esto se aprecia mejor en la siguiente tabla:

Ing. Juan E. Nez Mc Leod

Pgina 5 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Mtodo

Derivada numrica

Error

Cociente incremental

0.540302302898254430

0.000000002969885338

Diferencia centrada orden 2

0.540302305856998900

0.000000000011140866

Valor verdadero

0.540302305868139770

A continuacin se har el anlisis del comportamiento de la frmula centrada de cuarto orden, para lo cual se
reemplazar la expresin de clculo, segn lo que se expresa en la siguiente tabla:

Instruccin actual
dNum=(sin(x+h)-sin(x-h))/(2*h)

Nueva instruccin
dNum=(-sin(x+2*h)+8*sin(x+h)-8*sin(x-h)+sin(x2*h))/(12*h)

Los resultados obtenidos se observan a continuacin:


-->derivSeno(1,0.1,20)
Clculo de la derivada de y=sen(x)
Valor exacto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

0.540302305868139770

h
1.00e-01
1.00e-02
1.00e-03
1.00e-04
1.00e-05
1.00e-06
1.00e-07
1.00e-08
1.00e-09
1.00e-10
1.00e-11
1.00e-12
1.00e-13
1.00e-14
1.00e-15
1.00e-16
1.00e-17
1.00e-18
1.00e-19
1.00e-20

derivada
0.540300507003259270
0.540302305688049820
0.540302305868064160
0.540302305869303830
0.540302305869026280
0.540302305803338050
0.540302305581293330
0.540302308449369550
0.540302321401971430
0.540302247387103090
0.540302062349932390
0.540391805377756330
0.539660908553211470
0.544009282066326590
0.555111512312578270
0.462592926927148480
-1.850371707708594200
-18.503717077085941000
-185.037170770859400000
-1850.371707708594200000

error
0.000001798864880498
0.000000000180089943
0.000000000000075606
-0.000000000001164069
-0.000000000000886513
0.000000000064801720
0.000000000286846435
-0.000000002581229785
-0.000000015533831665
0.000000058481036680
0.000000243518207377
-0.000089499509616564
0.000641397314928294
-0.003706976198186829
-0.014809206444438505
0.077709378940991281
2.390674013576734100
19.044019382954080000
185.577473076727560000
1850.912010014462300000

Se observa claramente como se obtiene el resultado ms preciso en la tercera lnea, para un incremento de
-3
h=10 , y con un error bastante menor que en los casos anteriormente analizados. En la siguiente tabla se
transcriben todos los resultados para realizar una mejor comparacin.

Mtodo

Derivada numrica

Error

Cociente incremental

0.540302302898254430

0.000000002969885338

Diferencia centrada orden 2

0.540302305856998900

0.000000000011140866

Diferencia centrada orden 4

0.540302305868064160

0.000000000000075606

Valor verdadero

0.540302305868139770

Ing. Juan E. Nez Mc Leod

Pgina 6 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Sin embargo, a diferencia de los casos anteriores, para valores muy pequeos el incremento, el error se
incrementa de manera desproporcionada. Es importante recordar este resultado: un mtodo numrico devuelve
un resultado, pero a continuacin el ingeniero debe analizarlo para determinar si ese resultado tiene correlato con
la realidad o no.
DERIVADAS DE ORDEN SUPERIOR
Hasta este momento se discuti el clculo numrico de la derivada primera de una funcin. En la siguiente tabla
se transcriben las expresiones de clculo de derivadas de orden superior, mediante diferencias centradas de
orden dos.
Derivada

Expresin de clculo

Segunda

+ 2

Tercera

Cuarta

+ 2 2

+ 2 4

+ +2
2

+ +6

En la siguiente tabla se transcriben las expresiones de clculo de derivadas de orden superior, mediante
diferencias centradas de orden cuatro.
Expresin de clculo

Derivada

Segunda

Tercera

Cuarta

+ 2 + 16

+ 3 + 8

+ 3 + 12

+ 30
12

+ 2 13

+ 2 39

+ 16

+ + 13
8

+ + 56

39

2 +

+ 12

FUNCIN DERIVATIVE DE SCILAB


Scilab incluye dentro de su biblioteca de funciones una denominada derivative5, la cual permite obtener la
derivada primera y segunda de cualquier funcin definida por el usuario.
A los efectos de poder comparar con los clculos hechos anteriormente, se definir una funcin denominada
6
seno , la cual calcular el seno de un ngulo dado en radianes, segn se puede observar a continuacin.
function [y]=seno(x)
y=sin(x)
endfunction
5
6

No se debe confundir con la funcin derivat que permite obtener la derivada de polinomios.
Esta declaracin es necesaria, ya que derivative no calcula derivadas de funciones propias de Scilab, como lo es la funcin sin.

Ing. Juan E. Nez Mc Leod

Pgina 7 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Para calcular las derivadas primera y segunda de la funcin seno para x=1, mediante una aproximacin de orden
uno, similar al utilizar la definicin matemtica de derivada, se utilizara la siguiente instruccin:

-->[dy1,dy2]=derivative(seno,1,order=1)
dy2 =
- 0.841475033883073653
dy1 =
0.540302298963069916
La funcin derivative tiene como primer argumento el nombre de la funcin que se desea derivar, a
continuacin el valor de la variable independiente, donde se quiere obtener la derivada, y finalmente el orden de
la aproximacin del clculo numrico (1, 2 4).
El clculo de la derivada primera y segunda de la funcin seno, en x=1, con una aproximacin de orden dos y
cuatro, ser logra mediante las siguientes instrucciones:
-->[dy1,dy2]=derivative(seno,1,order=2)
dy2 =
- 0.841470981016755104
dy1 =
0.540302305863103238
-->[dy1,dy2]=derivative(seno,1,order=4)
dy2 =
- 0.841470984802402344
dy1 =
0.540302305868332611
Es importante aclarar que al aumentar el orden de precisin en el clculo, se incrementa la cantidad de veces
que se evala la funcin, por lo que es importante determinar si la precisin requerida justifica la cantidad de
clculos exigidos a Scilab.
CASO PRCTICO DE USO DE DERIVADAS NUMRICAS
Una de las incumbencias ms importantes del ingeniero qumico es la de disear equipos en los cuales se
realizan todo tipo de transformaciones fsicas, qumicas o fisicoqumicas. El diseo de los mismos se realiza en
estado estacionario, lo que implica que elegido un punto cualquiera del equipo, las variables involucradas
(presiones, temperaturas, concentraciones, etc.) se mantienen constantes a lo largo del tiempo.
Despus de diseados los equipos son analizados y probados a escala piloto, si su complejidad as lo requiere,
para finalmente ser construido a escala real. El equipo fue diseado para funcionar en determinadas condiciones
de estado estacionario; sin embargo, sera utpico pensar que esas condiciones se van a mantener inalteradas a
los largo del tiempo. De hecho, continuamente se estn produciendo perturbaciones que tienden a alterar el
normal funcionamiento de los equipos.
Para contrarrestar la accin perjudicial de las mencionadas perturbaciones, el ingeniero qumico tambin disea
lazos de control automtico, los cuales estn preparados para compensarlas mediante acciones correctivas, las
cuales se realizan sin intervencin del hombre.
En todas las plantas de procesos qumicos, los diversos equipos tienen lazos de control automtico, los cuales
tienen la tarea de mantener las distintas variables del proceso dentro de rangos adecuados de funcionamiento, ya
sea por ejemplo temperatura, nivel, caudal, presin, etc.

Ing. Juan E. Nez Mc Leod

Pgina 8 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

En la figura 1 se observa un equipo que contiene un fluido de


proceso (color azul) que debe ser mantenido a una determinada
temperatura, para lo cual se inyecta vapor de agua (color verde)
en una camisa de calefaccin.
La relacin entre el vapor inyectado en la camisa y la
temperatura del fluido, es manejada por un lazo de control
automtico; el cual mide la temperatura del fluido mediante un
sensor de temperatura (TT) y transmite la informacin a un
controlador de temperatura (TC), el cual decide qu hacer con la
vlvula de control que maneja el caudal de vapor (mantenerla
en posicin, abrirla o cerrarla).
De esta manera la temperatura del fluido se mantiene en un
valor preestablecido denominado set point o punto de consigna.
El ejemplo dado es uno de los cientos de lazos de control que
se pueden encontrar en una planta qumica. Para poder
gestionar adecuadamente el funcionamiento de los mismos, se
enva toda la informacin a una computadora central.

Fig. 1. Lazo de control automtico de temperatura.

Dicha computadora contiene un programa de gestin de informacin denominado SCADA, que en sus siglas en
ingls significa Control Supervisor y Adquisicin de Datos.
En la figura 2 se puede ver
un grfico que constituye un
ejemplo de lo que se puede
observar en la pantalla de
una computadora que est
ejecutando
un
sistema
SCADA.
El mismo contiene una
representacin grfica de
todos los equipos de la
planta, y los valores de las
variables principales de
cada uno de ellos (presin,
temperatura,
etc.).
En
muchos casos, los colores
indican tambin el estado
de los equipos, as por
ejemplo, el color azul o
verde
significa
vlvula
abierta
o
bomba
en
funcionamiento. A diferencia del color rojo que
significa vlvula cerrada o
bomba apagada.

Fig. 2. Ejemplo de la pantalla de un sistema SCADA.

De esta manera el sistema SCADA permite inspeccionar el estado actual de la planta qumica; pero tambin,
permite cambiar dicho estado, as por ejemplo, se pueden encender o apagar dispositivos, aumentar o disminuir
los sets point de los lazos de control, etc.
El sistema SCADA tambin almacena un historial de las principales variables del proceso, con el objeto de ser
analizadas por el ingeniero, para poder tomar decisiones sobre el funcionamiento del mismo. Dicho historial no es
otra cosa que un archivo que contiene bsicamente el tiempo y el valor correspondiente de la variable
monitoreada.
Ing. Juan E. Nez Mc Leod

Pgina 9 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

Un uso prctico del clculo de derivadas numricas, consiste en la determinacin de los extremos relativos de la
variable dependiente en dichos archivos de historiales. De esta manera se pueden averiguar fcilmente los
momentos en que la variable monitoreada alcanza un valor mximo o mnimo.
Determinacin de extremos relativos en tablas de datos
En un curso de anlisis matemtico se estudian distintos mtodos para la determinacin de extremos relativos, ya
sean mximos o mnimos. Dichos mtodos se basa en la determinacin de la derivada primera, y en el clculo de
los valores de la variable independiente para los cuales dicha derivada se anula.
Estos mtodos son fciles de implementar, en la medida que se conozca la relacin funcional entre la variable
independiente y la dependiente; pero en el caso ingenieril planteado, lo que se conoce es una tabla de datos no
una funcin, por lo que se deber recurrir a un mtodo numrico para resolver el problema.
El algoritmo propuesto se basa en la implementacin de dos funciones en Scilab, las cuales realizan las
siguientes tareas:
a- La primera funcin sirve para calcular la derivada primera de una tabla de datos, utilizando una frmula
centrada de segundo orden.
b- La segunda funcin realiza una bsqueda secuencial, determinando los puntos en los cuales la derivada
primera se anula o cambia de signo.
A continuacin se observa la primera de las funciones mencionada, denominada derivaTabla, la cual necesita
como datos dos vectores columna, el primero conteniendo la informacin de la variable independiente y el
segundo los de la variable dependiente. Dicha informacin debe estar ordenada en sentido creciente de acuerdo
a la variable independiente.
La funcin devuelve como resultado un vector columna que contiene el valor de la derivada en cada uno de los
puntos correspondientes. Es importante observar que al utilizarse una frmula centrada, es necesario usar los
valores funcionales i+1 e i-1 para obtener la derivada en el punto i; es decir, no es posible calcular las
derivadas en el primer y ltimo punto de la tabla. Por este motivo, y para evitar confusiones, se ha asignado a
dichas ubicaciones en el vector de derivadas, el valor de la constante de Scilab %nan (not a number).
// Funcin para calcular la derivada de una tabla dada por dos vectores columna
// Se utiliza una frmula centrada de orden 2
// Variables de entrada
// x: vector fila que contiene la variable independiente
// y: vector fila que contiene la variable dependiente
// Variables de salida
// dy: vector columna con los valores de la derivada en cada punto
// er: cdigo de error
//
0: no hay error
//
104: los vectores y y x no tienen las mismas dimensiones
function [dy, er]=derivaTabla(x, y)
er=0
dy=0
n=size(y,"r")
m=size(x,"r")
if n<>m then
er=104
return
end
dy=zeros(n,1)
dy(1)=%nan
dy(n)=%nan
for i=2:n-1
dy(i)=(y(i+1)-y(i-1))/(x(i+1)-x(i-1))
Ing. Juan E. Nez Mc Leod

Pgina 10 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

end
endfunction
La segunda funcin, denominada buscaMinMax, utiliza como dato de entrada el vector columna obtenido de la
funcin derivaTabla. La bsqueda de extremos relativos se realiza mediante una bsqueda secuencial
(elemento por elemento, de principio a fin), individualizando los puntos en donde se anula la derivada o la misma
cambia de signo. La ubicacin donde esto sucede se va almacenando en el vector de salida de la funcin,
denominado ndx, por lo que este vector contendr tantos elementos como extremos relativos haya.
// Funcin de bsqueda de un extremo relativo en un vector
// Al utilizarse los valores de las derivadas de la tabla de datos
// se desestiman el primer y ltimo dato del vector, considerenco
// que se ha utilizado una frmula centrada de orden 2 para estimar
// el valor de la derivada en cada punto
// Variables de entrada
// dy: Vector columna con los datos de las derivadas de los datos a evaluar
// Variables de salida
// ndx: vector columna que contiene los ndice en donde en dy cambia el signo
// er: cdigo de error
//
0: sin errores
//
105: el vector dy tiene menos de tres valores
function [ndx, er]=buscaMinMax(dy)
er=0
ndx=0
n=size(dy,"r")
if n<3 then
er=105
return
end
j=1
for i=2:n-2
if dy(i)==0 then
ndx(j)=i
j=j+1
else
if sign(dy(i))+sign(dy(i+1))==0 then
ndx(j)=i+1
j=j+1
end
end
end
endfunction
Para ejemplificar el uso de estas dos funciones se utilizar el archivo densSI.txt que se grab en la Unidad
Temtica 6, el cual contiene la densidad del agua pura a distintas temperaturas, toda la informacin est
expresada en el sistema internacional de unidades.
Lo primero que se necesita es leer la informacin desde el archivo y transcribirla a dos vectores, escribiendo las
siguientes instrucciones:
-->datos=fscanfMat("d:/codigos/densSI.txt");
-->temper=datos(:,1);
-->dens=datos(:,2);
A continuacin se llama a la funcin de derivacin de tablas, verificando que el cdigo de error sea igual a cero,
segn se observa en las siguientes instrucciones:

Ing. Juan E. Nez Mc Leod

Pgina 11 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

-->[dy,er]=derivaTabla(temper,dens);
-->er
er =
0.
Cabe destacar que se utiliza un ; al final de la instruccin de llamada a la funcin debido a que la misma
devuelve un vector columna, de esta manera se evita la reproduccin innecesaria de la informacin del mismo en
la consola.
Despus de esta ltima instruccin, en el vector dy se encuentran almacenadas las derivadas primeras de las
densidades para cada una de las temperaturas conocidas. Con esta informacin se llama a la segunda funcin, y
tras verificar que el cdigo de error es cero, se consultan la temperatura y densidad del nico ndice que es
devuelto como resultado, segn se aprecia en las siguientes instrucciones:
-->[ndx,er]=buscaMinMax(dy);
-->er
er =
0.
-->ndx
ndx =
15.
-->temper(15)
ans =
277.15
-->dens(15)
ans =
1000.
En este caso el resultado obtenido corresponde a la mxima densidad del agua que se da a una temperatura de
4 C.
EL INGENIERO Y LOS MTODOS NUMRICOS
Los mtodos numricos son una herramienta habitual en la vida profesional del ingeniero dedicado al diseo.
Como se vio anteriormente, Scilab tiene una instruccin especfica para el clculo de derivadas, pero eso no
significa que no se deban estudiar los pormenores del clculo numrico de derivadas, ya que esto permite tener
los criterios y los conocimientos adecuados para determinar los posibles errores cometidos en los clculos, y
seleccionar el mtodo de clculo adecuado en cada caso.
As por ejemplo, si se tiene una funcin que calcula algn valor con un error importante, no tiene ningn sentido
hacer el clculo de la derivada con alta precisin, exigiendo a Scilab un trabajo excesivo que no justifica el
resultado obtenido.
COMPARACIN ENTRE MTODOS ANALTICOS Y NUMRICOS
En los cursos de anlisis matemtico se estudian una gran cantidad de mtodos analticos de resolucin, los
cuales permiten conocer de manera precisa el resultado de diversos problemas cientfico - tecnolgicos. La gran
Ing. Juan E. Nez Mc Leod

Pgina 12 de 13

Universidad Tecnolgica Nacional

Asignatura: Fundamentos de Informtica

Facultad Regional Mendoza

Unidad Temtica 7

Departamento de Ingeniera Qumica

Ttulo: Derivacin Numrica

ventaja de obtener un resultado analtico es que el mismo permite realizar fcilmente un anlisis del tipo qu
pasa si. As por ejemplo, la expresin de clculo analtico de la energa cintica de un mvil es:
%& =

1
'(
2

Conociendo este resultado es fcil contestar las siguientes preguntas:


a- Qu pasa con la energa cintica si la masa aumenta al doble? Respuesta: la energa cintica aumenta
tambin al doble.
b- Qu pasa con la energa cintica si la velocidad aumenta al doble? Respuesta: la energa cintica
aumenta cuatro veces su valor original.
Desde este punto de vista, la resolucin analtica de los problemas ingenieriles tiene un enorme potencial al
permitir el anlisis y discusin de los resultados; sin embargo, en la prctica son pocos los problemas de inters
ingenieril que se pueden resolver analticamente.
Por otro lado se tienen los mtodos numricos, cuya ventaja es la de permitir resolver cualquier problema
ingenieril, sin importar su grado de complejidad, siendo la nica limitacin la potencia de clculo y velocidad de la
computadora utilizada en la resolucin del problema. Sin embargo, un mtodo numrico brinda como resultado
un valor numrico, por lo que para poder responder la pregunta qu pasa si se debern resolver muchos
casos, para poder ser analizados y obtener una conclusin. Si la cantidad de variables involucradas es
importante, como sucede en general con cualquier problema ingenieril de importancia prctica, la cantidad de
casos a resolver se vuelve prohibitiva.
Una vez discutidas las ventajas y desventajas de los mtodos analticos y numricos, se puede decir que ambos
no se invalidan entre s, sino que se complementan, y es el ingeniero el que va a preferir uno respecto del otro,
segn el objetivo buscado.

Ing. Juan E. Nez Mc Leod

Pgina 13 de 13

Вам также может понравиться