Un filo teso tra due piloni distanti 50 metri ha la forma della catenaria y = a/2·(ex/a + e−x/a) con a = 100 (metri). Calcola la lunghezza del filo arrotondata ai centimetri. Utilizza opportuni programmi per effettuare i calcoli coinvolti (vedi).

# Senza ricorrere al calcolo differenziale, con questo script.

# Ovvero, con R (vedi):
source("http://macosa.dima.unige.it/r.R")
a = 100; F = function(x) a/2*(exp(x/a)+exp(-x/a))     # la curva
lengFun(F, -25,25, 200)    # approssimo con una poligonale di 200 lati
# 50.52245
lengFun(F, -25,25, 1000)   # con 1000 lati
# 50.52246   OK, 50.52 m

Ovvero, sappiamo che (vedi) la lunghezza del grafico di F in [a,b] è:

[a, b] √( 1 + F '(x)2 ) dx

Facciamo i calcoli ad esempio con R:

c = 25                   # distanza dei piloni dal punto medio
a = 100; F = function(x) a/2*(exp(x/a)+exp(-x/a))   # la curva
deriv(F,"x")
# a/2 * (exp(x/a) * (1/a) - exp(-x/a) * (1/a))
g = function(x) eval (deriv(F,"x") )  # la derivata (calcolata con R)
G = function(x) sqrt(1+g(x)^2)           # la funzione da integrare
integral (G, -c,c)
# 50.52246

Il filo è lungo 50.52 m.

Vediamo la cosa anche graficamente:

BF=6; HF=2; PLANE(-c,c, 100,104)
graph( F,-c,c, "black")
# Vediamo che la curva praticamente coincide con la parabola che
# passa per gli stessi estremi e ha lo stesso punto di minimo:
# La parabola avente vertice in (0,100) passante per (25,F(25))
# k*25^2+100 = F(25)
k = (F(25)-100)/25^2
H = function(x) 100+k*x^2
coldash="red"; graph( H,-c,c, 0)
POINT(c,F(c),"blue"); POINT(-c,F(-c),"blue")