miércoles, 20 de marzo de 2024

Cálculo infinitesimal con Excel II. Centro de gravedad de un cuarto de círculo. Preliminar

 Capitulo anterior


En el capitulo anterior estudio como calcular el centro de gravedad de un triángulo, que es una figura sencilla. En este capitulo vamos a encontrar con Excel el centro de gravedad (o centroide) de un cuarto de círculo.

  • Dividimos, como en el caso anterior, en N segmentos la figura, dividimos por el número de segmentos que deseemos calcular el valor del radio de la circunferencia. Llevamos estos valores al eje X.
  • Calculamos los correspondientes valores de Y. 
  • Tenemos, como ya comenté en el capitulo anterior, N barras verticales coronadas por un resto con forma de triángulo. En este caso la figura real que corona el segmento no es triangular, hay, además, un segmento circular, pero, se puede aproximar a un triángulo. Cometemos un pequeño error , pero, el resultado, creo, que se puede considerar que sigue siendo válido.
  • Cuanto mayor sea el número de segmentos, menor sera este error.
  • Cada barra vertical, cada segmento en el que dividimos la figura, tiene su propio centro de gravedad. Lo mismo para los restos triangulares. Cada uno tiene su propio centro.
  • Cada uno de esos segmentos, cada uno de los restos. "pesa" sobre un punto determinado, tanto sobre el eje X como sobre el eje Y. 
  • Sumatorio de fuerzas por distancia igual fuerza total por distancia al centro de gravedad.
  • La fuerza, el "peso" de cada segmento y de la figura total es el área de cada segmento por una constante K (gr. por centímetro cubico, gravedad, altura). Como esa constante K está a ambos lados de la ecuación, despejando, fuerzas por distancia queda como fuerza  por área.
Libro Excel: Está preparado para calcular hasta 50000 puntos, que se pueden ampliar. Como ya he comentado se produce un pequeño error.



¿Estoy trabajando correctamente? ¿La idea es buena? ¿Puedo comparar resultados con los obtenidos con otro tipo cálculo?

En este caso, si. Como es lógico, no es necesario armar este follón para hacer un cálculo mucho mas fácil si se hace de otra manera, pero necesito demostrarme a mi mismo que esta manera de trabajar es correcta. Solo lo puedo hacer comparando resultados, un resultado que se que es correcto, con el resultado obtenido con el supuesto que estoy siguiendo.

¿Como puedo calcular con una matemática mas clásica este centroide ?  Me baso en:

"El volumen de un área de revolución es el área de la figura multiplicado por el camino que recorre su centro"
  • En este caso el área es la de un cuarto de círculo y el volumen que se genera al girar la figura alrededor de su centro, es el de media esfera. Hoja CCirculo, columnas de la D a la G.
  • En este caso estamos trabajando con una figura simétrica, los valores de X e Y del centro  son idénticos.


El centro de gravedad de un triángulo rectángulo esta situado a 2/3 del vértice.
Los valores obtenidos se pueden considerar aceptables.

Mis propia función Excel:

Esta vez incorporo una función VBasic,CCCir(Radio;Num;tipo respuesta) para Excel (utilizada en hoja Aux, de F1 a F4), mi propia función Excel, que me permite hacer estos cálculos con una mayor aproximación, con un error mucho menor. 

Function CCCir(R, N, Op)
Dim Incr As Double, Y0, Y1, Resto As Double, Area As Double, X2 As Double
Incr = R / N

For i = 1 To N - 1
X2 = (i * Incr) * i * Incr
Y1 = Sqr(R * R - X2)
Area = Area + Y1 * Incr
DY = Y0 - Y1
FDx = FDx + (i - 0.5) * Y1 * (Incr ^ 2) + (i - 2 / 3) * (Incr ^ 2) * DY / 2
FDy = FDy + (Y1 ^ 2) * Incr / 2 + (DY * (1 / 3) + Y1) * Incr * DY / 2
Area = Area + Incr * DY / 2
Y0 = Y1

Next

CCCir = Area & " " & FDx / Area & " " & FDy / Area
If Op = 1 Then CCCir = Area
If Op = 2 Then CCCir = FDx / Area
If Op = 3 Then CCCir = FDy / Area
'If Op = 0 Then CCCir = Area & Chr(10) & Pi * (Radio ^ 2) / 4 & FDx / Area & Chr(10) & FDy / Area & Chr(10) & ccc

End Function




lunes, 11 de marzo de 2024

Cálculo infinitesimal con Excel I. Preliminar. Centro de gravedad de un triangulo.

Para ingenieros, los matemáticos probablemente  piensen que soy un hereje y merezca la hoguera.








Se trata de aprovechar la posibilidad que nos da Excel de efectuar decenas de miles de operaciones en un instante. Ni podemos ni debemos desdeñar esa posibilidad.

Una vez efectuadas esas decenas de miles de operaciones podemos encontrar un valor próximo al valor buscado. En mis pruebas me he encontrado con un error menor al de una millonésima.

Para tener la seguridad de que el cálculo infinitesimal, o manera de hacerlo, es correcto, empiezo con un triángulo rectángulo, que me va a permitir calcular de una manera clásica el valor buscado, en este caso, el centro de gravedad. Podemos comparar ambos valores, en su caso, determinar el nivel de error y decidir si nuestros cálculos son correctos y/o el error cometido es asumible.

Triángulo:

El libro Excel, el ejemplo, está preparado para un triángulo rectángulo en el que podemos variar el valor de los dos catetos, con uno de sus vértices el el punto 0,0. (ver gráfica 1). La hipotenusa, por un lado,cumple el teorema de Pitágoras y por otro es una recta del tipo y=mx. Sin constante, esto es un estudio preliminar.


Cosas que recordaba levemente y que tuve que refrescar acudiendo a internet:
  • Por un lado sabemos que el centro de gravedad o baricentro de un triángulo se  calcula encontrando  la intersección de las medianas. (hoja Triangulo1, celdas K3 y L3)
  • En un triángulo rectángulo, que tiene un ángulo igual a 90 grados, el centro de gravedad se puede encontrar dividiendo la altura del triángulo por 3 y midiendo la distancia en el vértice del ángulo recto. Este punto se encuentra a lo largo la altitud, cual es un segmento de línea trazada desde el vértice del ángulo recto a la hipotenusa... (según internet)

Esta manera de calcular ese valor me va a permitir calcular otros centros de gravedad sin cálculos mas complicados.

Método de trabajo:

  • Dividimos el tamaño del cateto situado sobre el eje x en cuantos intervalos deseemos y excel admita.
  • Calculamos el valor de Y para cada uno de los puntos resultante de dividir X entre n.


  • En la primera columna del la hoja "Puntos" hay un valor N, que se incrementa en la siguiente fila en 1. 
  • Tenemos un valor, valor del cateto situado sobre el eje X dividido por el número de saltos deseados, que es el incremento de X entre dos puntos. 
  • Al multiplicar el valor que toma N en cada punto, encontramos el valor de X. Con este valor de X encontramos el valor de Y.
  • Dividimos, por tanto, la superficie que limita la función en N barras verticales, rematadas por un área (pequeña) que podemos asimilar a  triángulo rectángulo. En este caso, al ser una recta, es un triángulo rectángulo.
  • La altura de la barra, o mejor dicho que altura vamos a elegir de entre las dos alturas que la delimitan cada segmento.
  • En este caso la función es una función creciente, al aumentar X aumenta Y. Aunque siempre vamos a elegir el menor valor de Y de los dos valores (Y0,Y1) que delimitan cada segmento, en este caso elegiremos el primero. El área de la barra vertical es Incr*Y0.
  • El pequeño triángulo que corona cada barra tiene una altura que es la diferencia entre las dos Y que delimitan el segmento, una base igual a el Incr y un área=(Incr*(Y1-Yo))/2
  • La suma del área de todos los segmentos, incluyendo los pequeños triángulos, debe dar un valor muy próximo al calculado por otros medios.
  • En este ejemplo, como estamos trabajando con una recta, nos debe dar valores idénticos.

Centro de gravedad:
  • Cada segmento aporta, tanto para X como para Y, según lo alejado que se encuentre del origen. 
  • Podemos aplicar la ley de la palanca, fuerza por distancia. 
  • Aunque la ley de la palanca se refiere a fuerzas, no a superficies, imaginemos que nuestra superficie tiene un cierto volumen, pero sigue siendo plana. Tiene, por tanto, un cierto peso (fuerza). Tanto si consideramos el área total, como si tomamos cada segmento por separado, el peso va a depender de una serie de constantes (masa, gravedad, densidad, altura...)  que van a estar a ambos lados de una igualdad y, que por tanto podremos eliminar a ambos lados de la igualdad, quedándonos solo con el área de cada segmento por su distancia.
  • La suma, el sumatorio, del área de cada segmento multiplicado por su distancia al origen debe ser igual al área total por la distancia del centro de gravedad. Tanto para X como para Y. Son cálculos separados.
  • Cosa que se cumple.
Para figuras mas complejas, sin lugar a dudas, sobre todo por la aproximación de la superficie restante, la que está fuera de la barra de cada segmento, a un triangulo hace que se produzca un pequeño error que, cada cual, debe decidir si puede asumir o no. 

Libro Excel:
  • En una primera hoja, "Triangulo1", podemos variar el valor de los catetos. Con esos valores calcula la hipotenusa, las medianas, la intersección de las medianas, y el área del triángulo.
  • En la segunda hoja, "Puntos", se calcula el valor de los distintos segmentos, valores X e Y, el diferencial de Y entre dos puntos, y el tamaño de las áreas en las que hemos dividido el área total.
Variables con nombre:
  • CatH: Cateto horizontal. Triangulo1!A2
  • CatV: Cateto vertical. Triangulo1!B2
  • Incr: Incrementos X. Triangulo1!$A$2/Triangulo1!$D$2
  • NPunt. Número de puntos. =Triangulo1!$D$2
Resultados:
  • Área total: Se calcula de dos manera, por la manera clásica (base*altura/2) y como resultado del sumatorio de los distintos segmentos. Hoja "Puntos".
  • Palancas: Cada segmento rectangular , cada barra, tiene su centro de gravedad en su centro. En el caso de X en Incr/2 (mas la X del segmento). Para Y su centro está en la mitad de su altura.
  • Restos, asimilados a un triángulo rectángulo: En este caso, al ser una función creciente, el triángulo tiene el vértice del lado horizontal a la izquierda. Su centro de gravedad está en 2/3 de Incr (mas la X del segmento). Para Y esta a 1/3 de la diferencia entre Y1 e Y0 (mas la altura sel segmento).
  • En la hoja "Puntos", columnas de la N a la R están los resultados de los valores calculados, de varias maneras, utilizando tanto la función "Indirecto()"  como la función DesRef()







lunes, 18 de septiembre de 2023

Resolver, con Excel, el valor de X en una función f(x), para un determinado valor de Y. Preliminar. Sobre todo para ingenieros.

 Empezamos con una conjetura: 

Toda función, por compleja que sea, continua, creciente o decreciente, para un intervalo lo suficientemente pequeño, se comporta como una recta. Y, si el resultado obtenido no le vale a un matemático, a un ingeniero si.

¿Como llegamos a ese intervalo lo suficientemente pequeño? 

A base de miles de operaciones. La conjetura solo se puede utilizar a base de miles de operaciones matemáticas. Por lo tanto o bien se realiza programando o bien se utiliza una hoja de cálculo que nos permita hacer esas miles de operaciones en poco tiempo. 




Nota importante:  Excel no procesa bien valores excesivamente pequeños, parece que no soporta mas de quince decimales,  da un error, ni suma ni divide bien, por lo que en para algunas funciones no podemos asegurar la exactitud de los cálculos. En algunos casos, con Excel, llegaremos a encontrar el resultado exacto, en los otros nos aproximaremos bastante. Por lo demás, el resultado es bastante aproximado al que debería ser, si a un matemático no le vale el resultado, a un ingeniero si. 

Pinchando sobre el icono de Excel se pueden bajar un zip con dos libros, el primero FuncionLinealII, es el libro sobre el que he desarrollado esta idea, los comentarios son sobre el, en este libro utilizo una función conocida,  fácil de resolver. El segundo libro, FExponencial, trata una función mas compleja, de hecho es una especie de alarde matemático que encontré (o me encontró ella) en youtube. Mientras que la primera se resuelve en tres pasos, la segunda necesitaría mas de seis, pero, también tendríamos que poder utilizar con precisión mas de 15 decimales, lo que parece que ni Excel ni sus compatibles OpenOffice y LibreOffice hacen. Esta falta de precisión se puede observar el la hoja funcion6. 

Algoritmo (o como se hace):

  • Encontramos un primer intervalo que incluya el valor buscado. En principio, este primer intervalo, sería de menos infinito a mas infinito  pero, no solo se puede, se debe abreviar.
  • Estudiamos para cada función como establecer el primer  intervalo.
  • Debemos encontrar unos valores, para este primer intervalo, que nos permitan trabajar en un margen mas pequeño.
  • Calculamos, para cada función, unos mil puntos.
  • La cantidad de mil puntos es opcional, mil es un número redondo. Puede que necesitemos mas puntos o, incluso menos.
  • Buscamos dos puntos entre los que se encuentre el valor buscado. 
  • Esos dos puntos nos dan un segundo intervalo, mucho menor que el primero.
  • Seguimos considerando que mil puntos son los adecuados, por el mismo motivo, mil es un número redondo. 
  • Calculamos, para este segundo intervalo, el valor de esos mil puntos.
  • En este segundo intervalo buscamos dos puntos entre los que se encuentre el valor buscado. 
  • Repetimos lo anterior para este tercer intervalo. Cálculo de mil puntos y búsqueda del valor buscado.
  • Así cuantas veces consideremos necesario.
Ejemplo del libro Excel:
Vamos a utilizar la función y=X²+2X+1, que es una función conocida, fácil de resolver.

Primer intervalo:
 Este estudio hay que hacerlo para cada función que queramos resolver. Cada función diferente necesita su propio estudio.
  • Para un valor buscado grande (aunque en la practica empecemos desde uno), la X será grande, la función la podemos aproximar a X².
  • Si utilizamos un X=raiz(valor buscado), positivo, la función nos va a dar siempre un valor por encima del valor buscado.
  • Para X negativo necesitamos añadir a X un valor que nos  compense del 2X (como X es negativa, -2X) de modo que la función nos de un valor de Y superior al valor buscado.
  • En este caso, basta con añadir a X la raiz(raiz(VB)). Hoja ValorBuscado-Aux B3.
  • Para valores buscados menores de uno, el intervalo es mas complejo de calcular, por lo que lo dejamos que el intervalo vaya de -2 a +1 (como si buscásemos el valor 1)
  • Estos limites del intervalo nos dan una gráfica asimétrica pero, de momento, es poco importante esta asimetría.
  • Ya tenemos, para casi cualquier valor que pueda tomar la función, los límites del primer intervalo.
  • De momento, este libro Excel, no calcula ni los valores próximos al mínimo de la función ni puntos de inflexión.
  • Los siguientes intervalos nos dan los dos puntos entre los que se encuentra el valor buscado.
  • En el libro Excel, cada uno de los distintos pasos ocupa una hoja distinta. Así mismo cada paso cuenta con su gráfica correspondiente.
  • Como ya he dicho, de momento, el libro solo funciona con tramos continuos, ascendentes o descendentes.
  • ¿Como conocer los puntos entre los que se encuentra nuestro intervalo?
  • Para un tramo descendente el primer punto es mayor o igual al valor buscado. El segundo punto es menor o igual al valor buscado. y(f2>=VB;f3<=VB), aunque quizás sería mejor  utilizar  y(f2>=VB;f3<VB ). Con la primera fórmula se puede, si el valor de la celda en VB, encontrar dos celdas que cumplen los requisitos.
  • Para un tramo ascendente el primer punto es menor o igual al valor buscado. El segundo punto es mayor o igual al valor buscado. y(f2<=VB;f3>=VB) o y(f2<=VB;f3>VB)
  • Ver columna K de la hoja Funcion.
  • Conocidos dos puntos, podemos calcular la recta que los une. Una recta es Y=mX+c (Hoja Función, celdas O2 y P2)
  • Conocida la recta, podemos encontrar el valor de X que nos da el valor buscado.
  • Con ese valor de X calculamos el valor que toma  Y en la función. Como es lógico, en los primeros pasos hay una pequeña diferencia entre el valor en la recta y el valor de la función.
  • Con las pruebas realizadas, para esta función, bastan tres pasos para resolver o encontrar la X que da un determinado valor buscado (valor de Y). 
¿Como utilizar el libro? Libro FuncionLinealII:

Hoja ValorBuscado-Aux:
  • Es la hoja inicial, en la que ponemos a mano o calculamos el primer intervalo y nos da el resultado final.
  • En esta hoja, en A2, escribimos el valor buscado. 
  • En H2 e I2 obtenemos el valor de X y comprobamos que el Y de la función se corresponde con el valor buscado.
  • B2:C3 nos dan los valores del primer intervalo para X, así como los posibles valores de Y.
  • Este primer intervalo puede ser el resultado de un estudio personalizado de cada función o puede ser unos datos incluidos "a mano"
Hojas Funcion:
  • El libro tiene tres hojas llamadas función,Función2 y Función3. Estas tres hojas tienen la misma estructura, salvo la hoja función que usa, pero mantiene oculta la columna, "G".
  • La columna "E" tiene los mil valores X que vamos a dar a X. 
  • Primero calculamos el incremento de X entre cada dos puntos. Este valor de X se calcula dividiendo por mil la diferencia entre el valor mayor del intervalo y el menor valor del intervalo. (rango D2)
  • Empezando por el mínimo valor del intervalo vamos incrementado el valor de X.
  • El valor de Y lo calculamos escribiendo la función para cada celda de la columna "F". En este caso =E2^2+2*E2+1
  • En la columna "G" (K para la hoja función) encontramos dos puntos entre los que se encuentra el valor buscado. =SI(O(Y(F2>=VB;F3<=VB);Y(F2<=VB;F3>=VB));1;0)
  • En H2 encontramos la primera línea que cumple la condición.
  • M2,M3,N2 y N3 nos dan los valores X,Y de ambos puntos.
  • En O2 y P2 encontramos la pendiente de la recta (m) y la constante c de la recta y=mx+c
  • En las columnas Q y R vemos el valor que tendría X para el valor de Y buscado y el valor que toma la función para ese valor de X. 
  • Q2 de Funcion3 es, en este caso, la respuesta. Es el valor de X que nos da el valor buscado.
  • Las columnas A,B,C contienen, básicamente, los límites del intervalo. En "funcion" esos límites vienen del valor encontrado en la hoja "ValorBuscado-Aux". En funcion2 y funcion3 son los valores de los puntos, encontrados en la hoja anterior, entre los que se encuentra el valor buscado.
  • Cada paso cuenta con su correspondiente gráfica, GFuncion,GFuncion2 y GFuncion3. 
Libro FExponencial: 
  • En este libro el primer intervalo no se calcula, se pone a mano, como decían en el cole, "a ojo de buen cubero".
  • Está función necesita mas de tres pasos para ser resuelta, hay que añadir, al menos, una hoja "funcion" por cada paso. Yo he llegado hasta el sexto paso, con sus correspondientes gráficas.
  • Vease la  hoja funcion6, en donde nos encontramos con lo antes mencionado sobre excel y los decimales.



martes, 4 de abril de 2023

Cálculo del área de una superficie, conocidas las coordenadas de su perímetro, con Excel. Utilizando nuestras propias funciones Excel.


Se trata de calcular con Excel el área de una superficie, conocidas las coordenadas de su perímetro utilizando las fórmulas de Haversine y de Herón. 

  • La fórmula de Haversine nos da la distancia entre dos puntos de la geografía terrestre, conocidas las coordenadas de ambos puntos. Esta fórmula se convierte en una función propia para Excel desarrollada en VBasic.
  • La fórmula de Herón nos da el área de un triángulo conocidas las longitudes de sus lados. También la utilizamos como "nuestra propia función" convirtiéndola a VBasic.
  • Podemos desarrollar, para utilizarlas en excel, nuestras propias funciones en VBasic. Una vez desarrolladas estas funciones se utilizan como cualquier otra función de excel. Nombre de la función y parámetros.
  • "Nuestras funciones" se incluyen en el código VBasic de excel.
Una vez descargado el libro excel, debemos autorizar la ejecución de macros (el código VBasic).


Para calcular el área:
  • Tomamos n puntos del perímetro de la superficie a medir con el GPS o con cualquier aplicación que nos permita consultar y obtener las coordenadas de los puntos que consideremos precisos para una correcta medida del tamaño de una superficie.
  • Promediamos esos puntos con el fin de encontrar un centro geográfico de ellos, aunque este centro podríamos moverlo a voluntad (siempre que se pueda decir que es un centro)
  • Dividimos la superficie en los distintos triángulos que forman los lados entre dos puntos consecutivos y esos dos puntos con el centro.
  • Primer triángulo, lado formado por el primer y segundo punto, el lado que se forma entre el primer punto y el centro, el lado que se forma entre el segundo punto y el centro.
  • Primer triángulo, primer y segundo punto, centro. Segundo  triángulo, segundo y tercer punto, centro.
  • Último triángulo, ultimo punto, primer punto y centro.
Tengo que comprobar mi trabajo teórico. Busco un sitio conocido, del que pueda encontrar información facilmente. Me decido por el área de juego del terreno del Real Madrid.



Con Google maps tomo las coordenadas del área de juego del campo del Real Madrid, las cuatro esquinas, en donde van los banderines de los corners. Intento ser lo mas preciso posible.


En Wikipedia, consigo enterarme de la dimensiones teóricas del área de juego del Real Madrid, 105*68 metros. 
Según mis cálculos sale, para los lados largos, que uno mide 105,2 y el otro 104,9 metros. Para los lados cortos uno mide 67,76 y el otro 68,04 metros. Bastante ajustado al valor teórico.

Variables o rangos con nombre utilizadas en el libro excel:

  • NPuntos. Es el número de puntos tomados.
  • XCentro: Longitud (coordenadas) del centro.
  • YCentro: Latitud del centro de las coordenadas tomadas.


Si no queremos utilizar programación VBasic, tanto la distancia entre dos puntos (Haversine) y el área de un triángulo (Herón) se pueden calcular con las funciones propias de excel.









Fórmula de Haversine en VBasic:

Function DGeo(Lat1, Lon1, Lat2, Lon2)

Dim GaR, R, Lat1R, Lat2R, Lon1R, Lon2R

DGeo = -1

On Error Resume Next

'57.29577951 para convertir grados a radianes

'6378137 Radio de la tierra

GaR = 57.29577951

GaR = 57.2957795130823


R = 6378137

'R = 6397000

'R = 6371000


'6,371.0 km

Lat1R = Lat1 / GaR

Lat2R = Lat2 / GaR

Lon1R = Lon1 / GaR

Lon2R = Lon2 / GaR

'DGeo = R * Atn(Sqr((1 - (Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)) ^ 2)) / _

(Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)))


DGeo = R * Atn(Sqr((1 - (Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)) ^ 2)) / _

(Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)))

On Error GoTo 0

End Function

Fórmula de Herón en VBasic:

Function AreaHeron(a, b, c)

s = (a + b + c) / 2

  AreaHeron = Sqr(s * (s - a) * (s - b) * (s - c))

End Function

martes, 4 de mayo de 2021

Tabla de Colores HTML pasada a colores Processing mediante Excel.

 

Abriendo la página con los colores HTML directamente con Excel:



Convirtiendo los colore HTML a código Processing:



Pasando los colores a Processing:


Las cosas no siempre salen a la primera:






lunes, 28 de diciembre de 2020

Resolución de Integrales definidas con Excel. Máximos y mínimos con Excel.

 La última vez, que yo recuerde, que hice una derivada o una integral fue el siglo pasado, terminé mis estudios y no volví a tocar este tema. Hace muchos, muchos, muchos años de eso.

Hace unos días recibí en un grupo de WhatsApp una bromilla con una integral definida. Ni que decir tiene que en estos momentos mi capacidad de resolver esa integral es nula (me da la impresión que ni en mi mejor época hubiera sido  fácil, para mi, resolver la integral).




A falta de conocimientos podría haber acudido a internet en busca de una solución. Hay muchos sitios en internet que resuelven, al menos eso dicen, cualquier integral, pero no, a mi me vino a la memoria que una integral definida es el área que ocupa una función y=f(x), con el eje X, entre dos valores definidos.

Vídeo encontrado en youtube, sobre integrales definidas. No soy yo.




 Este área se puede aproximar a un sumatorio de áreas rectangulares (ΣY*DX), en donde ΔX, incremento de X, es un valor todo lo pequeño que sea posible. Este sumatorio es una suma de cientos de sumandos, mejor de miles, que hasta la aparición de las hojas de cálculo, era, si no imposible de hacer sin programación, muy complicado. Un trabajo idóneo para Excel, una suma de miles de operaciones.

Fichero Zip con los Excel



Empiezo buscando un ejemplo mas sencillo que la función propuesta, en este caso empiezo por y=x, con un ΔX=1, rectángulos realmente grandes, pero que para y=x se puede obtener un valor exacto de la integral, solo hay que tratar correctamente los errores por mas y por menos que nos da el área de los rectángulos.

Area de la función Y=X aproximada a una suma de rectángulos. En verde de mas a menos. En marón de menos a mas.

Funciones con nombre del libro excel (Fórmulas->Administrador de Nombres):
  • DX= Datos!A2
  • LimInf=Datos!$A$6
  • LimSup=Datos!$A$8
  • ValBus=Datos!$A$4
  • ValX=Datos!$B:$B
  • ValXR=DESREF(Datos!$B$1;Datos!G5-1;0;50;1)
  • ValYR=DESREF(Datos!IO65536;0;0;Datos!H5-Datos!G5;1)




Dibujamos la función recibida por WhatsApp: 
  • Primero calculamos los distintos valores X. Los colocamos, libro MaximosYMinimosI..., en la hoja datos, columna B:B. 
  • Preparamos los valores de X para que cubran un poco por debajo del limite inferior de la integral y poco por encima del límite superior de la integral. Como dicen en las recetas de cocina "al gusto".
  • Lo podemos hacer, tomando como referencia el eje X, de izquierda a derecha (X0+ΔX), de menos a mas o de derecha a izquierda, de mas a menos (X0-ΔX). 
  • En Excel calculamos los distintos valores de X, con ΔX >0, B3=B2+ΔX  para incrementar la X, que es el que utilizo realmente,  o  de mas a menos B3=b2-ΔX, que lo contemplo como otra posibilidad.
  • En B2 va uno de los valores de los limites de la representación gráfica de la función.
  • Con los valores de X calculamos los valores de Y. En este caso, hoja "Datos", calculo numerador y denominador por separado. No es necesario hacer esta separación, sencillamente simplifica algo el paso a excel de la función.
  • Estudiamos, por encima, la función. Tampoco es del todo necesario, nos permite prever que tipo de errors nos puede dar la función.
  • La función recibida por WhatsApp, a simple vista, no es continua, tiene unos puntos de indeterminación. 
  • Tiene valores de X que dan error. El denominador tiene un valor que vale cero y un intervalo que es la raíz cuadrada de un número negativo.
  • Para X=1 o X=2 la función da un error, el divisor vale 0 √(X2-3X+2) o es la raíz de un número negativo. 
  • Para X >1 y X<2 da negativo, raíz cuadrada de un número negativo.
  • Este tipo de discontinuidades las podemos controlar fácilmente en Excel con las funciones EsErr() y Si() (=SI(ESERR(C2/D2);0;C2/D2)).  Damos el valor que deseemos, en este caso 0, que no incrementa el área en el caso de que la discontinuidad se de entre los límites de la integral.
  • Una vez definido ΔX ¿Cuantas áreas debo considerar? ¿Cuantas mas, mejor? Puede que no, excel comete errores con números excesivamente pequeños.
  • De menos a mas empiezo en el valor mínimo y termino en el valor máximo menos ΔX.
Llevamos los valores de X e Y a una gráfica tipo XY (Dispersión). Ya podemos ver la función, tenemos una gráfica y una relación de valores de X e Y que nos permite, entre otras cosas, encontrar máximos y mínimos relativos (esos que se encuentran derivando) y encontrar los valores de X que me dan un determinado valor de Y.

Máximos y mínimos relativos: 
  • Un mínimo relativo se produce cuando su valor es menor o igual a los valores de los puntos anterior y posterior. (Hoja Datos,columna I, =SI(Y(E3<=E2;E3<=E4);1;0))
  • Un máximo relativo se produce cuando su valor es mayor o igual a los valores de los puntos anterior y posterior.(Hoja Datos, Columna J,=SI(Y(E4>=E3;E4>=E5);1;0)
  • En la columna N (N1 a N6) de la hoja datos encontramos el primer mínimo.
  • En la columna O (O1 a O6) de la hoja datos encontramos el primer máximo.
  • Llevamos estos valores a la gráfica apoyándonos en la hoja "Aux".
Búsqueda del valor de X que da un determinado valor de Y:
  • Buscamos en los valores de la función los puntos anterior y posterior cuyas Y o coinciden o limitan con el valor buscado de Y.
  • Este tema, búsquedas sucesivas hasta encontrar un valor ya lo trate anteriormente AQUÍ
  • Basicamente, mi búsqueda por aproximaciones sucesivas ,consiste en, para tramos crecientes de una función,  empezar con un par de valores de X conocidos, X1 y X2, que hacen que una de las Y sea menor que el valor buscado y que la otra sea superior.
  • Tomamos el valor medio de X1 y X2, Xm, y lo llevamos a la función. Si el valor obtenido de Y es igual o mayor al valor buscado entonces X2=Xm. Si no X1=Xm
  • Repetimos la operación, encontrar la media de X1y X2, llevarla a la función, encontrar la Y correspondiente y volver a comparar, las n veces que sean precisas, hasta encontrar el valor de X que nos da el valor de y buscado.
  • Para tramos decreciente intercambiaríamos X1 y X2.
  • En este caso la búsqueda la vamos a hacer en dos pasos, primero encontramos un par de puntos entre cuyos valores está el valor buscado. 
  • A continuación, en la hoja BuscaX, buscamos sucesivamente el valor de X que nos da un determinado Y.

Integral definida:
  • Como han explicado en el vídeo de youtube, las áreas de los distintos segmentos de la función, de los rectángulos, ΔX*Y, salen con signo.
  • No nos es necesario saber este signo, para calcular el área total debemos sumar el valor absoluto de las áreas calculadas. 
  • Hay un pequeño error al calcular el área total, depende de ΔX, de la forma de la función y si vamos de mas a menos o de menos a mas.
  • En principio he visto que si el valor absoluto  anterior de Y es superior al valor tratado de Y, el error incrementa la suma y si es inferior decrementa la suma. (ver libro ErrorCometido.xls o la gráfica1)
  • Cuanto mas pequeño es ΔX, mas pequeño es el error cometido ,pero es mas probable que Excel no calcule todo lo exacto que deseemos. Excel también comete errores. (Vease la columna de las X, con trece decimales o mas)
  • Para ΔX no demasiado pequeños, calculando en ambos sentidos, de menos a mas y de mas a menos y promediando ambos valores se supone que los errores se compensan.
  • El error cometido puede llegar a compensarse por si solo, dependiendo de la forma de la función.
  • Por lo que parece, el error cometido yendo de menos a mas es idéntico, pero de signo contrario al cometido yendo de mas a menos. 
  • Si ΔX es lo suficientemente pequeño el error cometido puede ser considerado despreciable.
  • En el libro "MaximosyMinimosIntegralDefinida.xls" he separado los distintos cálculos, incluido el tratamiento de errores. 
  • En la columna H están  los valores absolutos de Y*ΔX. Hay que sumar desde x=límite inferior de la integral hasta x=límite superior -ΔX.
  • Obtenemos un valor casi idéntico, muy aproximado, al valor obtenido al integrar.
En el libro MaximosYMinimosInt.... no he quitado ni el estudio de otras funciones ni la programación vbasic que calcula el valor de diversas funciones (alguna de ellas, como la función seno sin terminar).
En el libro ErrorCometido también mantengo la programación vbasic.



sábado, 14 de marzo de 2020

220v de corriente alterna. De donde salen esos 220V.

Recordando o aprendiendo algunas cosas sobre CA:
  • Una de las pocas cosas que se recuerda sobre CA es que es de forma sinusoidal, y que tiene una tensión máxima que es el resultado de multiplicar el valor nominal por raíz de dos.
  • En general se puede decir que la CA en Europa (220v) va a 50 ciclos/seg y en America va a 60 ciclos/seg.
  • ¿De donde salen los 220v, valor nominal, de una CA? Es la tensión continua equivalente, la que entrega la misma potencia que la corriente alterna. Se puede demostrar, si te acuerdas de como se integra, o mediante excel.

Variables con nombre:
  • Ancho: =Aux!$Q$2
  • Fr:=Config!$B$2. Frecuencia de la red eléctrica.
  • Periodo:=Config!$C$2 o inverso de la frecuencia.
  • VMax:=Config!$B$4*RAIZ(2) O tensión máxima
  • VolNon:=Config!$B$4 Tensión nominal.(220)
  • Hoja Config: Configuración de la red eléctrica.


  • Recordemos, potencia entregada es V2/R.
  • Tanto integrando como en excel la cosa consiste en hallar  el área que ocupa la función seno2. El área es el valor de seno2, en el eje y, y un pequeño dx (base por altura).
  • En excel se trata de sumar un número elevado de veces las pequeñas áreas que definen la función y un diferencial de x.
  • Para calcular la tensión que produce una potencia equivalente: ∑Vi2/R = V2/R ==> ∑Vi2= V2
  • En la hoja Aux del libro, columnas F,H,I puede verse los sucesivos incrementos de x, el total del sumatorio y el voltaje equivalente.


lunes, 21 de octubre de 2019

Conversión hora UTC.

En las últimas semanas me he encontrado varias veces con la hora UTC, mencionada como tal o en una especie de limbo de los datos, un chorro de números sin explicación.

La hora UTC es, mas o menos, la hora del meridiano de Greenwich, es la "hora universal coordinada". Curiosamente también se la puede encontrar como "hora zulú". Es el horario de referencia, no incluye el desfase debido a los distintos husos horarios ni los horarios de verano/invierno. En mi caso, España está (aunque no debería estar) en el huso CET (hora de centro Europa), lo que supone un adelanto de un par de horas en verano y una sola en invierno.

Cuando hacemos una foto con una cámara digital medianamente moderna, esta nos añade una cabecera (datos exif)  con los datos técnicos propios de la foto, la fecha y la hora local y, si la cámara tiene GPS, normalmente las que hacemos con el móvil, la ubicación. Para que añada la ubicación tenemos que permitirlo ajustando las propiedades de nuestro móvil. Podemos ver estos datos pulsando con el botón derecho del ratón sobre la imagen y seleccionando propiedades. Yo tengo instalado un pequeño programa gratuito para Windows, el PIE, que nos permite consultar todos estos datos sobre las imágenes de un directorio.


Cabecera Exif. Puede apreciarse varias veces la fecha local.


Trasteando, algunas de estas propiedades se pueden ver con cualquier editor de textos, otras no. Yo suelo utilizar Notepad++, pero se puede utilizar el bloc de notas de windows o cualquier otro editor de textos. La foto hay que abrirla como texto, no como imagen. Trasteando, encontré en algunas fotos, en las últimas líneas , lo siguiente:

   Image_UTC_Data1566296945314


Cola con los datos UTC

Bueno, pues el chorro de números que hay después de UTC_DATA es una fecha. Me diréis ¿*******?, por lo menos, pero lo es, es una fecha. No es una fecha con un formato facilmente reconocible, como por ejemplo las fechas incluidas en los ficheros GPX, que también, a mi, me aparecen como fecha UTC, con un formato como 2015-12-10T08:56:27Z (AAAA-MM-DDTHH:mm:SSZ)



  • Recordemos que el sistema de fechas en excel comienza el 1/1/1900 y que cada día equivale a 1. Si ponemos el formato de una celda con una fecha a numérico veremos el numero de días trascurridos desde el 1/1/1900 hasta esa fecha. Si ponemos un uno y le damos formato de fecha veremos 1/1/1900.
  • El chorro de números son los milisegundos trascurridos desde las cero horas del 1/1/1970 hasta el momento en el que se hizo la foto.
  • Abrimos un Excel y copiamos los números (1566296945314) en la celda A2.  En b2 ponemos la siguiente fórmula
                          *                                **                 
  • =A2/86400000+FECHA(1970;1;1)

  • *86400 es el número de segundos que tiene un día, 24*60*60. Como hablamos de milisegundos 86400000. Al dividir por 86400000 pasamos a días (de excel) los milisegundos.
  • ** Fecha(1970;1;1):podemos, o incluso lo debemos, sustituir esta función fecha() por su valor equivalente, 25569.
  • No todas las fechas del tipo "segundos trascurridos desde" están referenciadas al 1/1/1970. Algunas están referenciadas al 1/1/1900 (Red Iris con Arduino).
  • Damos formato de fecha a la celda y vemos la fecha como fecha. Debemos tener en cuenta el desfase por huso horario y horario de verano.
Con los datos de los GPS OruxMaps o IGN, GPS para móvil, :
  • Trasteando se, como salgo al campo, y utilizo OruxMaps como GPS, se que OruxMaps guarda los datos en una base de datos Sqlite, oruxmapstracks.db. 
  • Si enviamos la B.D a nuestro P.C.,  los datos de esta B.D. se pueden consultar instalando un lector o browser de es tipo de B.D. Yo tengo instalado DBBrowserSQLite.
  • Los datos de los caminos seguidos están en la tabla trackpoints. Uno de los campos, el campo trckpttime también, al menos en mi caso, además de ser una fecha UTC  es el número de milisegundos trascurridos desde el 1/1/1970.
  • Abrimos la tabla, copiamos las fechas a una hoja de cálculo y aplicamos la fórmula. Damos formato de fecha a las celdas y vemos las fechas.

Zip con datos





martes, 20 de noviembre de 2018

Redireccionar salida de los comandos DOS a fichero de texto. Eñes y otros caracteres.

No es que lo utilice mucho pero de, vez en cuando, utilizo alguno de los viejos comandos DOS. Últimamente he  preparado un par de trabajos en excel: 
  • En uno de ellos recojo, por un lado, todos los ficheros mp3 que tengo en mi PC para copiarlos en una tarjeta SD, siguiendo los criterios necesarios para utilizarlos con una DFPlayer mini. Utilizo excel como elemento auxiliar para preparar un ejecutable .bat que cree los directorios necesarios y que realice la copia final.
  • En el otro trabajo quiero controlar todas las fotos que tengo en mi colección de fotos.
  • Para encontrar todos los ficheros de un determinado tipo utilizo el comando Dir del viejo DOS.
  • Me interesa conocer la fecha y tamaño de los ficheros, por eso utilizo el formato largo.
  • Cuando abro una ventana con un terminal DOS y lanzo el comando Dir *.jpg /s (desde el directorio de mi colección de fotos) tanto las eñes como las vocales acentuadas salen correctamente, las eñes se ven como eñes y las vocales acentuadas como vocales acentuadas.
  • Si redirecciono la salida del comando a un fichero de texto, al editar ese fichero de texto tanto las eñes como las vocales no se ven ni como eñes ni como vocales acentuadas.
  • Desde un punto de vista funcional, como cuando preparé la copia de los distintos mp3, creando un ejecutable bat para ello, es necesario mantener fichero original sin cambiar los caracteres que sustituyen a las eñes y vocales acentuadas por otros. El fichero BAT resultante va a trabajar con el conjunto de caracteres original. Al cambiarlos se  produce  una sustitución de caracteres en el nombre del fichero que va a impedir su correcto funcionamiento .

  • Se puede preparar un fichero bat para copiar los ficheros sin problemas, aunque veamos los caracteres cambiados.
  • Si se va a trabajar con otros programas, esos caracteres cambiados si dan problemas.

Le he dado bastantes vueltas a este tema, en realidad es un mero problema de configuración, aunque esté poco claro como solucionarlo. Por tanto se trata de encontrar algo que nos permita cambiar el conjunto de caracteres al conjunto de caracteres del español.

En su momento, antes de WindowsXp, se podía programar el conjunto de caracteres en DOS con Keyb (sp para español y 850 como código). Desaparecido el comando Keyb no encuentro manera de cambiar genéricamente el conjunto de caracteres.

Trasteando, de momento he encontrado un par de soluciones que me permite ver las eñes como eñes y las vocales acentuadas como vocales acentuadas. No es la super solución que todos desearíamos, pero es una buena solución o, al menos, una solución.

Sin instalar nada nuevo en nuestro PC:




  • Parto de una colección de canciones de los años 70, con sus eñes y sus vocales acentuadas. 
  • Alguno de los nombres ya tienen en origen las eñes cambiadas por otros caracteres. Estos cambios no se solucionan con este cambio de configuración.
  • Redireccionamos la salida del comando DOS a un fichero de texto. En el ejemplo mp3_2.txt.
  • Editamos este fichero de texto. Le añadimos, como cabecera, la siguiente instrucción HTML:
<meta http-equiv="content-type" content=text/html   charset=ibm850>

  • Con esta instrucción cambiamos en conjunto de caracteres.
  • Salvamos el fichero de texto como un fichero HTM (mp3_2.htm). Lo convertimos en una página web.
  • Abrimos ese fichero (mp3_2.htm) con Internet Explorer. A mi me funciona solo si se abre con Internet Explorer, con otros navegadores no funciona. 
  • Si en otros PC la cosa se comportase como en el mío, se verían las eñes y las vocales acentuadas.
  • Con el botón derecho del ratón pulsamos sobre el texto web. Se abre un desplegable, elegimos "Ver código fuente".
  • En el código vemos eñes y vocales acentuadas. Salvamos como texto.

Instalando en nuestro PC Libre Office:
  • Pinchamos sobre la salida txt del comando DOS con el botón derecho del ratón. 
  • Seleccionamos Abrir Con->Libre office Calc.
  • En mi PC, al menos, nos presenta un formulario de importación en el que podemos seleccionar el conjunto de caracteres que vamos a utilizar.
  • Seleccionamos "Europa occidental (DOS/OS2-850/internacional)
  • Podemos aprovechar para separar los campos que nos puedan interesar, o no. Siempre se puede hacer después.
  • Salvamos el fichero como xls, html o como odt. Ni los copia pega ni los guardar como texto conservan el cambio de caracteres. No funcionan.


martes, 16 de octubre de 2018

Estadísticas a partir del track de una excursión.



He preparado este trabajo para aquellos que les gusta trastear con el GPS y que les gustaría poder hacer sus propias estadísticas de una ruta. De paso incluyo la posibilidad que tiene excel de crear nuestras propias funciones con VBasic.

  • El primer paso consiste en pasar los datos de la ruta al libro excel.
  • Hay muchas maneras de hacerlo, desde el copia pega desde BaseCamp (propiedades de la ruta) hasta salvar los datos a un fichero de texto (o un fichero csv) o, incluso, utilizar Ibpindex para obtener esos datos.
  • A partir de estos datos puedo conocer directamente los incrementos de altura y de tiempos. Incremento = "Lo que hay" - "Lo que había"
  • La distancia recorrida hay que calcularla.
  • El rumbo hay que calcularlo.
  • Los acumulados de tiempo, distancia y alturas son una suma.

¿Como paso los datos a mi libro excel?
Esta vez voy a utilizar la utilidad que tienen algunos editores de rutas, Oziexplorer, BaseCamp, MapSource y OruxMaps, entre otros, para volcar los datos, coordenadas, alturas y fechas a un fichero de texto (.txt o .csv).
  • Oziexplorer, el editor de rutas mas antiguo que conozco, tiene la posibilidad de exportar a texto con varias, y distintas, posibilidades.

  • El trabajo que he realizado lo he hecho exportando a texto (csv) un fichero GPX con BaseCamp.

  • Abro directamente con excel el fichero csv.
  •  Elimino todo aquello que no sea los puntos de la traza.
  • Desde datos->Texto en columnas paso cada item a su columna.

  • Pasados los campos a su columna copio los datos y los pego en el libro EstadísticasManuales.xls, hoja Datos.

Como mínimo, a partir de fecha, coordenadas y alturas puedo calcular:

  • Distancia entre dos puntos y distancia acumulada.
  • Tiempo entre dos puntos y duración total.
  • Incremento de altura entre dos puntos y acumulados de subida y bajada.
  • Velocidad de recorrido. Entre puntos y total.
  • Tiempo en movimiento y de parada.
  • Eliminar puntos que no cumplen o que cumplen unos determinados criterios. En el ejemplo tiempo mínimo entre puntos, distancia mínima entre puntos y velocidad máxima. Otro criterio que se puede incluir es el de velocidad vertical (de subida o bajada), etc..
  • Para calcular tiempos y, dado que depende del tiempo, velocidades, hay que tener presente el sistema de fechas de excel. 

  • Si en una celda escribimos una fecha y cambiamos el formato fecha a formato numérico vemos un número en vez de una fecha. Es el número de días trascurridos desde el 1/1/1900. Uno equivale a un día, la fracción de uno es la fracción de día. Este sistema no me acaba de gustar, es bastante imperfecto. 
  • Las velocidades, en km/hora se calculan con distanciaEnMetros/(tiempo*24000). 1000 para pasar los metros a km y 24 para pasar los días, o su fracción, a horas.
  • Las duraciones, sin embargo, se calculan restando sin mas  las fechas y sus acumulados sumando las duraciones.
  • Los incrementos de altura son sencillamente una resta. Altura del punto2 menos la altura del punto1.
  • El calculo de las distancias es lo único realmente complejo de todo esto. Hay varias posibilidades, incluida una manera aproximada de calcularla.

Distancia entre dos puntos:

Buscando en internet encontré, hace ya varios años, una fórmula que es la que utilizo desde que empecé a hacer mis propias estadísticas.


La fórmula es bastante compleja, no difícil convertirla a fórmula excel pero queda un formulón,  por lo que creo mi propia función en VBasic a partir de esa fórmula, la funcion DGeo (distancia geográfica), que es mucho mas sencilla de manejar:



Function DGeo(Lat1, Lon1, Lat2, Lon2)

Dim GaR, R, Lat1R, Lat2R, Lon1R, Lon2R
DGeo = -1
On Error Resume Next
'57.29577951 para convertir grados a radianes
'6378137 Radio de la tierra
GaR = 57.29577951
R = 6378137
Lat1R = Lat1 / GaR
Lat2R = Lat2 / GaR
Lon1R = Lon1 / GaR
Lon2R = Lon2 / GaR





'DGeo = R * Atn(Sqr((1 - (Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)) ^ 2)) / _

(Sin(Lat1 / GaR) * Sin(Lat2 / GaR) + Cos(Lat1 / GaR) * Cos(Lat2 / GaR) * Cos(Lon2 / GaR - Lon1 / GaR)))





DGeo = R * Atn(Sqr((1 - (Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)) ^ 2)) / _

(Sin(Lat1R) * Sin(Lat2R) + Cos(Lat1R) * Cos(Lat2R) * Cos(Lon2R - Lon1R)))





On Error GoTo 0

End Function



Esta función, mi función, la función añadida por mi, como fórmula excel queda:

=Radio* ATAN(RAIZ((1 - (SENO(D2*GaR) * SENO(D3*GaR) + COS(D2*GaR) * COS(D3*GaR) * COS(E3*GaR - E2*GaR)) ^ 2)) / (SENO(D2*GaR) * SENO(D3*GaR) + COS(D2*GaR) * COS(D3*GaR) * COS(E3*GaR - E2*GaR)))



Donde:


  • Radio=radio de la tierra. Es una variable con nombre.
  • De GaR sirve para convertir grados a radianes. Es una variable con nombre. Podía haber utilizado la función RADIANES().
  • Columna D es la latitud. 
  • Columna E es la longitud.
Entre ambas maneras de calcular distancias hay una pequeña diferencia.

Para distancias cortas he encontrado una manera aproximada de calcular la distancia entre dos puntos, columna I de la hoja "datos2". Empiricamente hay muy poca diferencia para puntos cercanos en metros y bastante diferencia para puntos muy separados. Creo que como estamos trabajando con la traza de una excursión a pie o en bici los puntos están muy cerca unos de otros podemos utilizar la siguiente fórmula:
  • =RAIZ(((D2-D3)*M_G)^2+(M_G*COS(D3*GaR)*(E2-E3))^2), que tampoco se puede considerar una formulita.
  • Columna D es la latitud. 
  • Columna E es la longitud.
  • M_G es una variable con nombre. Es el número de metros por grado en el Ecuador de la tierra.



Rumbo: El rumbo es el ángulo que forma nuestra dirección, la dirección que llevamos al movernos,  con el eje norte-sur, con una brújula graduada es fácil de ver. Es una información, también desde mi punto de vista, mas útil en náutica que sobre tierra, en tierra nuestros tramos rectos son pequeños y nuestro camino va por donde va, casi nunca podemos ni elegir el rumbo ni salirnos del camino. Hay varios casos mas en los que el ángulo entre una dirección y el eje norte-sur se puede utilizar, pero no vienen al caso.
  • No he conseguido encontrar una fórmula exacta de calcular el rumbo, pero si una fórmula aproximada para puntos cercanos.
  • Queda una fórmula compleja, por lo que ni siquiera intento pasarla a excel. Solo hago la fórmula en VBasic.
  • En tierra solo he visto utilizar el rumbo para eliminar algunos puntos. Si tres puntos consecutivos tienen el mismo rumbo se puede eliminar el punto central sin perder demasiada información.
Código de Rumbo:

Function Rumbo(Lat1, Lon1, Lat2, Lon2)
Dim D1 As Double, D2 As Double, D3 As Double, ArcoTan As Double
'corregir casos 2 y 4
'111319.491
'Pi = 3.141592654

D1 = DGeo(Lat1, Lon1, Lat2, Lon2)
D2 = DGeo(Lat1, Lon1, Lat2, Lon1)
D2 = Abs(111319.491 * (Lat2 - Lat1))
D3 = DGeo(Lat2, Lon1, Lat2, Lon2)
D3 = Abs(111319.491 * (Lon2 - Lon1) * Cos(Lat2 * 2 * Pi() / 360))
On Error Resume Next

C = 0
ArcoTan = Atn(D3 / D2)
e = Err()
If (D2 > 0 And D3 > 0) Then
If Lat2 >= Lat1 And Lon2 <= Lon1 Then
Rumbo = (2 * Pi() - ArcoTan)

End If
If Lat2 >= Lat1 And Lon2 >= Lon1 Then
Rumbo = ArcoTan

End If
If Lat2 <= Lat1 And Lon2 <= Lon1 Then
Rumbo = Pi() + ArcoTan

End If
If Lat2 <= Lat1 And Lon2 >= Lon1 Then
Rumbo = (Pi() - ArcoTan)

End If
End If

If D2 = 0 Then
Rumbo = Pi() / 2
If Lon1 > Lon2 Then Rumbo = 1.5 * Pi()
End If

If D3 = 0 Then
Rumbo = 0
If Lat1 > Lat2 Then Rumbo = Pi()
End If

On Error GoTo 0
'f = "0." & Left("0000000000000", Dec)
'Rumbo = Format(Rumbo * 360 / (2 * Pi()), f) + 0
Rumbo = Rumbo * 360 / (2 * Pi())
End Function

Function Pi()
Pi = 3.141592654

End Function

En donde Lat1,Lon1,Lat2 y Lon2 son las coordenadas del punto de inicio y del punto de destino.