Come calcolare un limite in javascript?

sara4ever13
Come si fa a scrivere un programma che ti dia, per esempio, il risultato del lim sin(3x)/5x (con x--> 0)?

Risposte
apatriarca
Calcolare i limiti usando un computer è abbastanza difficile perché deve tendenzialmente fare ricorso a metodi di calcolo simbolici. Come risolveresti quell'integrale manualmente? Probabilmente ti ricorderesti del limite notevole \(\lim_{x \to 0} \sin(x)/x = 1 \) e moltiplicheresti allora il limite per \(3/3\) in modo da ottenere \(\lim_{x \to 0} \sin(3x)/5x = (3/5) \lim_{x \to 0} \sin(3x)/x = 3/5\). Ma questo metodo non è adatto ad essere usato da un computer. Un altro metodo che potresti usare è il metodo di de l'Hôpital. Si ottiene infatti: \( \lim_{x \to 0} \sin(3x)/5x = \lim_{x \to 0} 3\cos(3x)/5 = 3/5 \). Questo metodo è meccanico ma si passa pur sempre da un limite ad un altro che non è necessariamente più semplice da calcolare. Inoltre il codice dovrebbe essere in grado di stabilire quando fermarsi. Un metodo ancora più meccanico, e quello a cui fanno ricorso molti programmi che calcolano limiti, è quello di espandere la funzione in serie di potenze in un intorno del punto nel quale si desidera calcolare il limite. In questo caso abbiamo che \( \sin(3x) = 3x + o(x^3) \) mentre \(5x\) si espande in se stesso essendo già una serie di potenze centrata in \(0\). Abbiamo quindi che \( \lim_{x \to 0} \sin(3x)/5x = \lim_{x \to 0} 3/5 + o(x^2) = 3/5\). Questa idea è più utile delle altre, ma non è comunque facile da implementare nel caso generale. Vista la difficoltà a scrivere questo tipo di codice in modo autonomo, conviene rifarsi a delle librerie. Non sono però al corrente di librerie di questo tipo. Se fosse un'applicazione "reale" e dovessi fare anche altri tipi di calcoli simbolici implementerei tutto questo a livello server usando un linguaggio che dispone di questo genere di librerie (per esempio C++ o Python*) oppure utilizzerei servizi web già disponibili come Wolfram|Alpha.

* Ho fatto questi due esempi perché li conosco ma ce ne sono in molti altri linguaggi..

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.