Sono un professionista del software engineer. Ho studiato il calcolo come un corso di base nei miei studi di laurea. Voglio fare una domanda, che cosa / dove è l'implementazione del calcolo in informatica?
Il calcolo può essere utilizzato per risolvere calcoli di complessità di ricorsione.
(La complessità della ricorsione può essere espressa con somme discrete infinite che possono essere risolte con le loro contro-parti continue.) [ 1 ] [ 2 ]
Anche il calcolo e altre forme di matematica sono utilizzate in varie scienze informatiche applicate.
Per esempio. Motori di fisica, segnale e amp; Elaborazione di immagini, Computer Vision, Teoria dell'informazione.
Dipende. Ti verrà appena detto cosa programmare, o ne saprai molto sull'area dei contenuti?
Ho lavorato per anni nelle interfacce grafiche e nella modellazione matematica, in particolare la farmacologia e la biostatistica. Ho bisogno di capire equazioni differenziali ordinarie, statistiche frequentiste e bayesiane, modellizzazione farmacologica e algoritmi di ottimizzazione. Ogni tanto ho bisogno di risolvere problemi di calcolo che nessuno ha mai capito prima, o se l'hanno fatto, non l'hanno pubblicato, o se lo hanno pubblicato, hanno fatto solo casi facili. Devo gestire anche i casi difficili.
Tutto questo è in un campo in cui gli errori possono essere molto costosi, quindi è importante essere in grado di fare giustificazioni a tenuta d'aria. La programmazione va bene, ma è solo una parte della storia.
L'informatica di solito si occupa di cose finite. Tuttavia ci sono casi in cui si utilizzano funzioni reali e si applicano metodi analitici, a volte incluso il calcolo infinitesimale. Uno è quando è necessario esprimere relazioni per problemi di dimensioni e granularità arbitrarie. Ciò accade spesso nella teoria delle informazioni, ad es. in capacità Shannon o entropia delle informazioni . Un altro a volte si verifica quando si calcolano limiti superiori o inferiori. Molte quantità nella teoria dei grafi sono somme complesse, che non possono essere calcolate direttamente, ma possono essere limitate da funzioni reali o integrali. E anche le cose di base come il comportamento asintotico sono definite in termini di limiti, quindi è necessario almeno i concetti di base.
Come praticante, probabilmente non avrai bisogno di fare questi calcoli, ma capire i concetti rende più facile ragionare sulla scelta degli algoritmi e sui limiti pratici che devi incontrare, specialmente quando arrivi a qualcosa che comporta codici di correzione, compressione o solo qualche algoritmo grafico complesso. O statistiche, che usano anche molto l'analisi.
Inoltre è difficile insegnare solo una parte della matematica senza mai toccare il calcolo infinitesimale, che include la matematica usata principalmente nell'informatica (teoria dei grafi, programmazione lineare, ottimizzazione ecc.)
Ci sono alcune aree in cui è necessario il calcolo, in particolare equazioni differenziali.
Ogni azienda automobilistica deve testare i suoi modelli per vedere come si comporta in situazioni di crash. Lo fanno posizionando una moltitudine di sensori su tutta la macchina e schiantandola. Le informazioni ricevute da quei sensori devono essere interpretate e analizzate.
Se scrivi mai un software che fa questo, ti occuperai molto delle equazioni differenziali. Gli angoli in cui ogni parte della macchina è piegata dall'incidente sono passati attraverso queste equazioni per ottenere i valori delle forze coinvolte. Anche i valori di decelerazione devono essere calcolati utilizzando tali equazioni. Non ne so molto di questo, però ...
Questa è solo una delle applicazioni del calcolo nella programmazione per computer. Forse qualcuno conosce altri scenari.
I programmatori si sono sempre lamentati del fatto che varie aree della matematica non si applicano mai nel loro lavoro (e quindi non c'è motivo di impararlo). Questo è per lo più vero, ma a volte è necessario conoscere tali concetti per portare a termine il lavoro. Ad esempio, la conoscenza degli spazi vettoriali (dall'algebra lineare) può essere di grande aiuto quando si realizzano i motori di rendering 3D (per i giochi, per esempio).
Per questo argomento, consiglio vivamente il seguente libro: Concrete Mathematics di Ronald L. Graham, Donald E. Knuth e Oren Patashnik. Riguarda la matematica costante e disinteressata e il modo in cui sono applicate nell'informatica. Gli argomenti includono cose come somme, recidive, coefficienti binomiali, teoria dei numeri, probabilità discreta, tra gli altri. Faccio sempre riferimento alla mia copia.
Ho usato molti calcoli per creare interpolazioni continue. Ad esempio, lo uso in un software di animazione frattale, dove sono richieste transizioni uniformi. Inoltre, tutto ciò che ha a che fare con il movimento continuo, come un gioco con una palla rimbalzante, ecc. O una sorta di accelerazione diventa più facile con il calcolo. In terzo luogo, molte delle cose menzionate sopra possono essere semplificate / ottimizzate se si ha una conoscenza di base delle funzioni trigonometriche.
L'informatica e il calcolo non hanno nulla a che fare l'uno con l'altro, oltre al presupposto un po 'errato da parte degli accademici che la pratica dei programmatori richiederà matematica più alta. Dico "un po 'scorretto", perché se lo farete o meno dipenderete interamente da quale sarà il vostro "dominio problematico". Se stai scrivendo "business logic", come molti programmatori, probabilmente non utilizzerai mai calcoli matematici più alti dell'aritmetica di base. Se stai scrivendo modelli molecolari, come uno scienziato fisico o chimico, lo userai tutti i giorni.
Devo dire che in oltre 30 anni di programmazione per vivere, scrivere sistemi operativi, sistemi di gestione, server web e altri programmi complessi, ho sempre avuto bisogno solo di matematica superiore una volta, e solo perché non l'ho fatto sapere dove trovare l'algoritmo già pubblicato che richiede solo l'aritmetica.
Il calcolo è utile per osservare i cambiamenti delle grandezze fisiche, quindi è utile soprattutto nelle scienze fisiche. La programmazione riguarda principalmente solo il calcolo quando il dominio del problema lo richiede.
Ma ovviamente c'è anche il meta-problema degli algoritmi per buone approssimazioni numeriche di integrali o equazioni differenziali per es. link e link che sono certamente orientati verso l'informatica.
Non ho usato il calcolo in programmazione dall'università (che doveva implementare l'integrazione con la regola di simpson in FORTRAN)
Uno sviluppatore ha bisogno di calcoli nella misura in cui è importante per il dominio del problema. Gli sviluppatori di Twitter non hanno bisogno di alcun calcolo. Gli sviluppatori di Boeing o Airbus hanno bisogno di una buona conoscenza del calcolo.
Lavoro nel settore aerospaziale su software di modellazione e simulazione di veicoli spaziali (per lo più satelliti). Più recentemente, ero responsabile dello sviluppo di un modello di simulazione per il sistema di determinazione e controllo degli assetti di un satellite.
Sì, ho dovuto usare un sacco di matematica, algebra e calcolo per lo più lineare. Mentre molti dei calcoli fisici che il mio software doveva eseguire erano ben noti, e gli scienziati e i sistemi mi hanno praticamente consegnato la documentazione (o, a volte, i loro script MATLAB) per la maggior parte di loro, essere in grado di convertire le formule matematiche in codice è più facile se si capire cosa stanno facendo le formule:)
Inoltre, rintracciare i bug e trovare l'errore occasionale nelle equazioni a cui ero stato assegnato sarebbe stato pressoché impossibile se non avessi assolutamente alcun background matematico.
Sto rispolverando il mio calcolo a causa dei problemi che ho incontrato nel campo in cui desidero diventare esperto in: ANN - reti neurali artificiali e elaborazione del segnale, che sono un misto di programmazione e sistemi, l'essere fisico la relazione tra i neuroni, e che tipo di neuroni desideri sviluppare e che tipo di rete desideri costruire, cosa vuoi che faccia. Il calcolo non è utile per ANN - è essenziale.
Quindi suppongo di rispondere quando hai bisogno di matematica più elevata per la programmazione. Immagino che la risposta dipenda da quali problemi desideri affrontare nella vita reale. Immagino anche che i programmatori di videogiochi che modellano la vita reale necessiterebbero anche di matematica superiore.
Leggi altre domande sui tag computer-science math calculus