Come / quando viene utilizzato il calcolo in informatica?

Commenti

  • Non ' abbiamo una politica rigida per le domande degli elenchi, ma esiste un antipatia generale . Tieni presente anche questa e questa discussione; potresti voler migliorare la tua domanda per evitare i problemi qui spiegati. Se non sei sicuro di come migliorare la tua domanda, forse possiamo aiutarti nella Chat di informatica ?
  • Sembra che tu commetta lerrore comune di assumere che il contenuto di ogni corso debba essere rilevante (per ogni percorso di carriera). A volte serve solo per insegnarti a pensare in un certo modo.
  • I commenti non sono per discussioni estese; questa conversazione è stata spostata nella chat .

Risposta

Mi vengono in mente alcuni corsi che avrebbero bisogno di calcolo, direttamente . Ho usato il grassetto per le discipline solitamente obbligatorie per una laurea in informatica e il corsivo per quelle normalmente opzionali.

  • Computer Graphics / Image Processing, e qui avrai anche bisogno di geometria analitica e algebra lineare, pesantemente ! Se segui questo percorso, potresti anche voler studiare un po di geometria differenziale (che ha il calcolo multivariato come prerequisito minimo). Ma qui avrai bisogno di Calcolo anche per cose molto elementari: prova a cercare “Trasformata di Fourier” o “Wavelets”, per esempio: questi sono due strumenti fondamentali per chi lavora con le immagini.
  • Ottimizzazione , per lo più non lineare, dove il calcolo multivariato è il linguaggio fondamentale utilizzato per sviluppare tutto. Ma anche lottimizzazione lineare beneficia del calcolo (il la derivata della funzione obiettivo è assolutamente importante)
  • Probabilità / Statistiche . Queste non possono essere studiate seriamente senza Calcolo multivariato.
  • Apprendimento automatico , che fa un uso massiccio di statistica (e di conseguenza, calcolo multivariato)
  • Scienza dei dati e argomenti correlati, che utilizzano anche molte statistiche;
  • Robotica , dove dovrai modellare i movimenti fisici di un robot, quindi dovrai conoscere derivate parziali e gradienti.
  • Discrete Math and Combinatorics ( sì! , potresti aver bisogno di Calculus per il conteggio discreto!) – se prendi abbastanza seriamente la generazione di funzioni, dovrai sapere come integrare e derivare determinate formule. E questo è utile per Analysis of Algorithms (vedere il libro di Sedgewick e Flajolet, “Analysis of Algorithms”). Allo stesso modo, la serie di Taylor e il calcolo possono essere utili per risolvere alcuni tipi di relazioni di ricorrenza, che vengono utilizzati nellanalisi degli algoritmi.
  • Analisi degli algoritmi , dove utilizzi la nozione di limite fin dallinizio (vedi notazione di Landau, “little $ o $ ” – it “s definito utilizzando un limite)

Potrebbero essercene altri – questo è appena fuori dalla mia testa.

E, oltre a questo, uno è vantaggioso “914e76c2e9″>

indirettamente da un corso di calcolo imparando a ragionare e spiegare gli argomenti con rigore tecnico. Questo è più prezioso degli studenti di solito pensa.

Infine, avrai bisogno del calcolo per, beh, interagire con persone di altre scienze esatte e ingegneria. E non è raro che un informatico abbia bisogno non solo di parlare ma anche di collaborare con un fisico o un ingegnere.

Commenti

  • Forse hai avuto unesperienza diversa, ma ho trovato il calcolo abbastanza inutile per imparare a ragionare e spiegare gli argomenti in modo rigoroso. È stato insegnato mediante la corrispondenza meccanica e di schemi più o meno come lalgebra e la geometria delle scuole superiori.Daltra parte, era il prerequisito per diversi corsi di matematica superiori che insegnavano queste abilità, quindi suppongo che non fosse ' t del tutto inutile.
  • Posso riferirmi totalmente allultimo punto (benefici indiretti). Lavorando sulla teoria dei linguaggi di programmazione, raramente ho usato il calcolo direttamente. Forse lapplicazione più diretta era nei modelli computazionali probabilistici (ad es. Plotkin & Jones probabilistic powerdomains). Eppure, il mio corso di calcolo era principalmente per dimostrare le cose, e questo era molto, molto prezioso. Uno o due corsi di calcolo sono necessari IMHO in ogni serio programma di CS, insieme ad un po più di matematica (matematica discreta, logica, algebra lineare, analisi numerica, … e possibilmente categorie, topologia, algebra, …).
  • Ecco ' un esempio di come avevo bisogno di calcolo nella computer grafica: le funzioni di interpolazione fluida saranno sostanzialmente tutte nella forma f(0) = 0 , f(1) = 1, f'(0) = f'(1) = 0 e puoi aggiungere qualsiasi altro vincolo che ti interessa, ad esempio f'(0.5) = 1. Qualche tempo fa ho usato questo per derivare alcuni polinomi di interpolazione diversi per smussare le immagini.
  • La robotica può probabilmente essere estesa a qualsiasi tipo di modellazione fisica (che immagino copra anche la CG, in termini di illuminazione, quindi lascia ' lo chiamano modellazione fisica cinetica). Ciò include accelerazione / velocità, rimbalzi / molle / deformazione, controller PID, acustica, gravitazione …
  • I ' sosterrò indirettamente il punto in questo modo: meglio rispetto a qualsiasi altro corso che hanno seguito, Calculus insegna agli studenti che possono ' contare semplicemente il numero di problemi e stimare quanto lavoro sarà coinvolto.

Risposta

Questo è alquanto oscuro, ma il calcolo si presenta nei tipi di dati algebrici. Per ogni dato tipo, il tipo dei suoi contesti one-hole è il derivato di quel tipo. Guarda questo eccellente discorso per una panoramica dellintero argomento. Questa è una terminologia molto tecnica, quindi spieghiamo.

Tipi di dati algebrici

Potresti esserti imbattuto in tuple chiamate tipi di prodotto (se no, è perché sono il prodotto cartesiano di due tipi). Lo prenderemo alla lettera e useremo la notazione:

$$ a * b $$

Per rappresentare una tupla, dove $ a $ e $ b $ sono entrambi tipi. Successivamente, potresti esserti imbattuto tipi di somma questi sono tipi che possono essere un tipo o un altro (noti come unioni , varianti o come Entrambi type (kinda) in Haskell). Prenderemo anche questo alla lettera e useremo la notazione:

$$ a + b $$

Questi sono denominati come sono perché se un tipo $ a $ ha $ N_a $ valori e un tipo $ b $ ha $ N_b $ valori, quindi il tipo $ a + b $ ha valori $ N_a + N_b $ .

Questi tipi sembrano normali espressioni algebriche e possiamo, infatti, manipolarli come tali (fino a un certo punto).

Un esempio

Nei linguaggi funzionali una definizione comune di una lista (data in Haskell qui) è questa:

data List a = Empty | Cons a List 

Questo dice che una lista è vuota o una tupla di un valore e un altro elenco. Trasformandola in notazione algebrica, otteniamo:

$$ L (a) = 1 + a * L (a) $$

Dove $ 1 $ rappresenta un tipo con un valore (noto anche come tipo di unità). Inserendo ripetutamente, possiamo valutarlo per ottenere una definizione di $ L (a) $ :

$$ L (a) = 1 + a * L (a) $$ $$ L (a) = 1 + a * (1 + a * L ( a)) $$ $$ L (a) = 1 + a + a ^ 2 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 + a ^ 4 + a ^ 5 … $$

(dove $ x ^ n $ è inteso nel senso di moltiplicazione ripetuta.)

Questa definizione dice quindi che una lista è o unità o una tupla di un elemento, o una tupla di due elementi, o di tre ecc., che è la definizione di un elenco!

Contesti a un buco

Ora su ai contesti one-hole: un contesto one-hole è ciò che ottieni quando “estrai un valore” da un tipo di prodotto. Facciamo un esempio:

Per una semplice tupla a 2 che è omogenea, $ a ^ 2 $ , se prendiamo un valore , otteniamo solo una tupla da 1, $ a $ .Ma ci sono due diversi contesti one-hole di questo tipo: vale a dire il primo e il secondo valore della tupla. Quindi, poiché è uno di questi, potremmo scrivere che è $ a + a $ , che è, ovviamente, $ 2 a $ . È qui che entra in gioco la differenziazione. Confermiamolo con un altro esempio:

Prendendo un valore da una tupla di 3 si ottiene una tupla di 2, ma ci sono tre diverse varianti:

$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$

A seconda di dove mettiamo il buco. Questo ci dà $ 3a ^ 2 $ che è effettivamente il derivato di $ a ^ 3 $ . Cè una prova di ciò in generale qui .

Per il nostro esempio finale, usiamo una lista:

Se prendiamo la nostra espressione originale per una lista:

$$ L (a) = 1 + a * L (a) $$

Possiamo riorganizzare per ottenere:

$$ L (a) = \ frac {1} {1 – a} $$

(In superficie questo può sembrare una sciocchezza, ma se prendi la serie taylor di questo risultato ottieni la definizione che abbiamo derivato in precedenza.)

Ora, se differenziamo questo, g et un risultato interessante:

$$ \ frac {\ partial L (a)} {\ partial a} = (L (a)) ^ 2 $$

Quindi una lista è diventata una coppia di liste. Questo in effetti ha senso: i due elenchi prodotti corrispondono agli elementi sopra e sotto il buco nellelenco originale!

Commenti

  • Questo è stato meravigliosamente perspicace. Grazie.

Risposta

Metodi numerici. Esistono complicati problemi di calcolo che sono unici per applicazioni specifiche e hanno bisogno di soluzioni più veloci di quanto un essere umano possa praticamente risolvere senza un programma. Qualcuno deve progettare un algoritmo che calcolerà la soluzione. Non è lunica cosa che separa i programmatori dagli scienziati?

Commenti

  • Dato il " list " natura di questa domanda, ogni risposta dovrebbe tentare di dare il quadro completo. Sei sicuro di voler affermare che i metodi numerici sono l unica istanza?
  • I commenti non sono destinati a discussioni estese; questa conversazione è stata spostata nella chat .

Risposta

Automazione – Simile a robotica, automazione può richiedere la quantificazione di molti comportamenti umani.

Calcoli – Trovare soluzioni alle dimostrazioni spesso richiede calcolo.

Visualizzazioni – Lutilizzo di algoritmi avanzati richiede calcoli come cos, sine, pi ed e. In particolare quando stai calcolando ting vettori, campi di collisione e mesh.

Logistica e analisi dei rischi – Determinare se unattività è possibile, il rischio coinvolto e il possibile tasso di successo.

Sicurezza – È possibile eseguire la maggior parte della sicurezza senza calcolo; tuttavia, molte persone che desiderano spiegazioni lo preferiscono nelle espressioni matematiche.

AI – Le basi dellIA può essere utilizzato senza calcolo; tuttavia, il calcolo del comportamento avanzato, dellintelligenza sciame / menti dellalveare e del processo decisionale basato su valori complessi.

Calcoli medici – La visualizzazione della maggior parte dei dati sanitari richiede analisi come la lettura di un ECG.

Scienza & Ingegneria – Quando si lavora con quasi tutte le altre discipline scientifiche richiede analisi: aerospaziale, astrologia, biologia, chimica o ingegneria.

Molte persone nella programmazione possono fare a meno della loro intera carriera usando il calcolo; tuttavia, può rivelarsi inestimabile se sei disposto a fare il lavoro. Per me è stato più efficace nellautomazione, nella logistica e nella visualizzazione. Identificando modelli specifici, puoi semplicemente ignorare il modello, imitare il modello o sviluppare un metodo superiore tutti insieme.

Commenti

  • Come sono cos, sine, $ \ pi $ e $ \ mathrm {e} $ calculus?
  • Bene, $ \ exp (x) $ può essere definito come lunica soluzione per $ f (x) = f ' (x) $ con $ f ( 0) = 1 $, e similmente sin, cos può essere definito come la coppia unica di funzioni che soddisfano $ f ' (x) = g (x) $, $ g ' (x) = -f (x) $ con condizioni al contorno appropriate (penso che $ f (0) = 0 $ e $ g (0) = 1 $ dovrebbero funzionare).
  • @DavidRicherby: Esempio: come implementare quelle funzioni, diciamo, su un microcontrollore senza FPU? Se conosci un po di calcolo, conosci subito una buona risposta: serie di potenze.

Risposta

Il fatto è che ci sono pochissime possibilità che tu possa mai usare il calcolo. Tuttavia, praticamente ogni altra disciplina scientifica utilizza il calcolo e tu stai lavorando a una laurea in scienze. Ci sono alcune aspettative su ciò che dovrebbe significare una laurea in scienze e una di queste cose è che conosci il calcolo. Anche se non lo userai mai.

Va bene se fai male nel calcolo, ma assicurati di mettere un po di impegno nella matematica discreta. Ci sono molti problemi di programmazione nel mondo reale in cui entra in gioco la matematica discreta e lignoranza dei suoi principi può metterti in imbarazzo di fronte ad altri programmatori.

Commenti

  • Il tuo primo paragrafo è completamente sbagliato e rasenta la teoria del complotto. Ci sono molte aree dellinformatica in cui il calcolo è utile (vedi le altre risposte per un elenco infinito di esse). Certo, ' è possibile evitare tutte queste aree, ma ' è molto fuorviante affermare che la caduta di calcoli non avrà alcun impatto oltre voti.
  • A seconda del tuo corso di laurea, potresti completare una laurea senza mai usare il calcolo, e penso decisamente che i corsi di laurea magistrale non ne ' ne abbiano bisogno come otteniamo. Ma fare male in esso ti bloccherà da alcune delle aree più interessanti dellinformatica. ' cè molto tempo per diventare uno sviluppatore web una volta che ti sei laureato; mentre sei a scuola, perché non provare a spingerti un po ?
  • @tsleyson Se vuoi diventare uno sviluppatore web, risparmia i soldi e il tempo necessari per ottenere una laurea in CS.
  • @ScottB Sembra che tu stia confondendo linformatica con la programmazione.
  • @ScottB Chi ' sta dicendo CS = math + programming? Io stesso mi difendo da anni contro questa visione limitata. Ma ce lhai anche al contrario: la matematica è parte integrante della CS, proprio come lo è della fisica. Ne bisogno , anche se ' non vogliamo esercitarci . (Detto questo, non è questo il luogo per questa discussione. Unisciti a noi nella Chat di informatica se desideri continuare.

Risposta

Molte persone hanno già fornito applicazioni in CS. Ma a volte troverai Calcolo quando meno te lo aspetti:

I derivati delle espressioni regolari riesaminati

Se lo sai automi questo pdf potrebbe valere la pena di essere letto.

Commenti

  • Non ' per vedere alcun calcolo differenziale lì; vedo la parola " derivative ", ma non ' non vedo nulla simile al calcolo differenziale tradizionale.
  • ' si chiama " derivato formale ", ed è correlato al calcolo, in un certo senso. Lo vedrai fatto anche con Generating Functions, alcune formule relative a strutture discrete e altre aree in cui non ' t in realtà hanno una " funzione liscia ".
  • @Jay: la cosa importante non è ' t il nome. Come fa understandi ng calculus aiuta con esso?
  • È spiegato in questa pagina di Wikipedia . La derivata formale è unoperazione su elementi di struttura analgebrica che contiene polinomi, ed è formalmente " abbastanza simile " alla regola usuale di differenziazione i polinomi, tuttavia, a differenza di ciò che uno studente vede in Calcolo, i polinomi non sono sui reali; possono essere polinomi su un " anello " (unaltra struttura algebrica). E ci sono applicazioni pratiche della derivata formale – ne ho vista almeno una (Algebraic Cryptanalysis – può ' non ricordare i dettagli).

Risposta

Alcuni esempi più specifici:

  • Il calcolo viene utilizzato per derivare il regola delta , che è ciò che consente ad alcuni tipi di reti neurali di “apprendere”.
  • Il calcolo può essere utilizzato per calcolare la trasformata di Fourier di una funzione oscillante, molto importante in analisi del segnale.
  • Il calcolo è sempre utilizzato nella computer grafica, che è un campo molto attivo in quanto le persone scoprono continuamente nuove tecniche. Per un esempio fondamentale, controlla l equazione di rendering di Kajiya
  • Il calcolo è importante nel campo della geometria computazionale, studia la modellazione di curve e superfici.

Risposta

A queste altre eccellenti risposte aggiungo questo punto: rigore nei test .

Nella creazione di casi di test per alcune applicazioni ho dovuto utilizzare il calcolo per prevedere i tempi di esecuzione previsti, le dimensioni della memoria, e scegliere i parametri ottimali durante lottimizzazione delle strutture dati. Ciò include la comprensione dellerrore di arrotondamento previsto, ecc.

Sebbene le statistiche siano menzionate in altre risposte, vorrei menzionare specificamente gli algoritmi di Monte-carlo , come algoritmi di ottimizzazione e alcuni algoritmi di streaming frugali basati su principi matematici che includono calcolo.

I settori specifici in cui ho lavorato in cui era richiesto il calcolo includono:

  • Finanza (creazione di una piattaforma di trading)

  • Assicurazione (integrazione numerica delle polizze assicurative in scenari what-if per calcolare le perdite previste dalla polizza)

  • Logistica (ottimizzazione del consolidamento delle rotte di trasporto)

  • Elaborazione del segnale

Risposta

Calcolo – la parte integrale – viene utilizzata direttamente in CS come base per pensare alla sommatoria. Se lavori su qualsiasi parte della sezione Matematica concreta di Knuth sulla sommatoria, riconoscerai rapidamente le convenzioni comuni al calcolo: la comprensione di alcuni casi continui ti fornisce strumenti per considerare il discreto.

Molti degli usi del tuo studio CS coinvolgono sistemi di programmazione che monitorano il cambiamento o, in alcuni casi, tentano di predire il futuro. La matematica attorno a questi sistemi è radicata nelle equazioni differenziali e nellalgebra lineare, e le equazioni differenziali sono … calcolo. Ci sono insegnanti come Gibert Strang chi sostiene di spostarsi più rapidamente nella parte delle equazioni differenziali, ma è ancora un sottoinsieme del calcolo. Quando il cambiamento dipende dal cambiamento in qualsiasi sistema, inizia a essere instabile (e stabile) in modi che sono sia non intuitivi che molto ben compreso. Per capire perché il tuo sistema lineare sensibile si comporta in modo non lineare, o hai bisogno degli strumenti di calcolo o devi reinventarli per il tuo spazio problematico.

E infine, CS spesso richiede la lettura e la comprensione del lavoro degli altri e il calcolo è la prima esposizione a un sacco di vocabolario, convenzioni e storia condivisi.

Commenti

  • " Molti degli usi del tuo studio CS coinvolgono sistemi di programmazione che monitorano il cambiamento, o in alcuni casi, cerco di predire il futuro " – Non ' penso che questo sia rappresentativo di moust corsi di studi sulla CS.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *