Răspuns
Mă pot gândi la câteva cursuri care ar avea nevoie de Calcul, direct . Am folosit chip îndrăzneț pentru disciplinele de obicei obligatorii pentru o diplomă în informatică și cursiv pentru cele de obicei opționale.
- Grafică pe computer / Prelucrarea imaginilor și aici veți avea nevoie și de Geometrie Analitică și Algebră Liniară, puternic ! Dacă mergeți pe această cale, vă recomandăm, de asemenea, să studiați o anumită geometrie diferențială (care are calculul multivariat ca o condiție prealabilă minimă). Dar veți avea nevoie de Calcul aici chiar și pentru lucruri foarte elementare: încercați să căutați „Transformarea Fourier” sau „Wavelets”, de exemplu – acestea sunt două instrumente foarte fundamentale pentru persoanele care lucrează cu imagini.
- Optimizare , neliniară în cea mai mare parte, unde Calculul multivariat este limbajul fundamental folosit pentru a dezvolta totul. Dar chiar și optimizarea liniară beneficiază de Calcul ( derivatul funcției obiectiv este absolut important)
- Probabilitate / Statistici . Acestea nu pot fi studiate serios fără Calcul multivariat.
- Învățare automată , care folosește intens Statistica (și, prin urmare, Calcul multivariat)
- Știința datelor și subiecte conexe, care folosesc, de asemenea, o mulțime de statistici;
- Robotică , unde va trebui să modelați mișcările fizice ale unui robot, deci va trebui să cunoașteți derivatele și gradienții parțiali.
- Matematică discretă și combinatorie ( da! , este posibil să aveți nevoie de Calcul pentru numărarea discretă!) – dacă sunteți suficient de serios în ceea ce privește generarea funcțiilor, va trebui să știți cum să integrați și să derivați anumite formule. Și acest lucru este util pentru Analiza algoritmilor (a se vedea cartea lui Sedgewick și Flajolet, „Analiza algoritmilor”). În mod similar, seria Taylor și calculul pot fi utile în rezolvarea anumitor tipuri de relații de recurență, care sunt utilizate în analiza algoritmilor.
- Analiza algoritmilor , unde utilizați noțiunea de limită chiar de la început (consultați notația Landau, „little $ o $ ” – it „s definit folosind o limită)
Pot exista și alții – acest lucru este chiar în partea de sus a capului meu.
Și, în afară de asta, unul beneficiază de indirect dintr-un curs Calculus învățând cum să raționăm și să explicăm argumentele cu rigoare tehnică. Acest lucru este mai valoros decât studenții gândiți de obicei.
În sfârșit – veți avea nevoie de Calcul pentru a interacționa cu oameni din alte Științe Exacte și Inginerie. Și nu este neobișnuit ca un informatician să aibă nevoie să vorbească nu numai, ci și lucrați împreună cu un fizician sau un inginer.
Comentarii
- Poate că ați avut o experiență diferită, dar am găsit calculul destul de inutil pentru a învăța cum să raționați și să explicați argumentele riguros. A fost învățat prin potrivire de modele și tipare cam ca algebra și geometria liceului.Pe de altă parte, era o condiție prealabilă pentru mai multe clase superioare de matematică care a făcut să predea aceste abilități, așa că presupun că nu a fost complet inutilă ' li>
- Pot să mă raportez total la ultimul punct (beneficii indirecte). Lucrând la teoria limbajelor de programare, am folosit rar calculul direct. Poate că cea mai directă aplicație a fost în modelele de calcul probabilistice (de exemplu, Plotkin & domenii de putere probabilistice Jones). Cu toate acestea, cursul meu de calcul a fost în mare parte să demonstreze lucruri, iar acest lucru a fost foarte, foarte valoros. Unul sau două cursuri de calcul sunt IMHO necesare în fiecare program serios de CS, de-a lungul mai multor matematici (matematică discretă, logică, algebră liniară, analiză numerică, … și, eventual, categorii, topologie, algebră …).
- Aici ' este un exemplu al modului în care aveam nevoie de calcul în grafica computerizată: funcțiile de interpolare netede vor fi practic toate de forma
f(0) = 0
, f(1) = 1
, f'(0) = f'(1) = 0
și puteți adăuga orice alte constrângeri la care vă interesează, de exemplu f'(0.5) = 1
. Cu puțin timp în urmă am folosit acest lucru pentru a obține câteva polinoame de interpolare diferite pentru netezirea imaginilor.
- Robotica poate fi extinsă probabil la orice fel de modelare fizică (care presupun că acoperă și CG, în ceea ce privește iluminarea, așa că ' s-o numesc modelare fizică cinetică). Aceasta include accelerația / viteza, ricoșările / arcurile / deformarea, controlerele PID, acustica, gravitația …
- Eu ' voi susține punctul indirect în acest fel: mai bine decât orice clasă pe care o iau înainte, Calculus îi învață pe elevi că nu pot ' pur și simplu să numere numărul de probleme și să estimeze cât de multă muncă va fi implicată.
Răspuns
Acest lucru este oarecum obscur, dar calculul apare în tipuri de date algebrice. Pentru orice tip dat, tipul contextelor sale cu o singură gaură este derivatul acelui tip. Consultați această discuție excelentă pentru o prezentare generală a întregului subiect. Aceasta este o terminologie foarte tehnică, așa că să explicăm.
Tipuri de date algebrice
Este posibil să fi întâlnit tupluri numite tipuri de produse (dacă nu, este pentru că sunt produsul cartesian de două tipuri). Vom lua acest lucru la propriu și vom folosi notația:
$$ a * b $$
Pentru a reprezenta un tuplu, unde $ a $ și $ b $ sunt ambele tipuri. Apoi, este posibil să fi întâlnit tipuri de sumă acestea sunt tipuri care pot fi fie un tip, fie altul (cunoscut sub numele de uniuni , variante sau ca Fie type (un fel) în Haskell). De asemenea, o vom lua literalmente și vom folosi notația:
$$ a + b $$
Acestea sunt denumite așa cum sunt, deoarece dacă un tip $ a $ are $ Valorile N_a $ și un tip $ b $ au valori $ N_b $ , apoi tipul $ a + b $ are valori $ N_a + N_b $ .
Aceste tipuri arata ca expresii algebrice normale si de fapt, le putem manipula ca atare (până la un punct).
Un exemplu
În limbajele funcționale, o definiție comună a unei liste (dată în Haskell aici) este:
data List a = Empty | Cons a List
Aceasta spune că o listă este fie goală, fie un tuplu al unei valori și o altă listă. Transformând asta în notație algebrică, obținem:
$$ L (a) = 1 + a * L (a) $$
Unde $ 1 $ reprezintă un tip cu o singură valoare (denumit și tipul de unitate). Prin inserarea în mod repetat, putem evalua acest lucru pentru a obține o definiție pentru $ 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 … $$
(Unde $ x ^ n $ se înțelege în sensul multiplicării repetate.)
Această definiție spune atunci că o listă este fie unitate, fie un tuplu de un articol, sau un tuplu de două articole, sau de trei etc, care este definiția unei liste!
Contexte cu o singură gaură
Acum la contexte cu o singură gaură: un context cu o singură gaură este ceea ce obțineți atunci când „scoateți o valoare” dintr-un tip de produs. Să dăm un exemplu:
Pentru un simplu 2-tuplu care este omogen, $ a ^ 2 $ , dacă scoatem o valoare , obținem doar un 1-tuplu, $ a $ .Dar există două contexte diferite de o singură gaură de acest tip: și anume prima și a doua valoare a tuplului. Deci, deoarece este una dintre acestea, am putea scrie că este $ a + a $ , care este, desigur, $ 2 un $ . Aici intervine diferențierea pentru a juca. Să confirmăm acest lucru cu un alt exemplu:
Luând o valoare dintr-un 3-tuplu se obține un 2-tuplu, dar există trei variante diferite:
$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$
În funcție de locul în care punem gaura. Aceasta ne oferă $ 3a ^ 2 $ care este într-adevăr derivatul $ a ^ 3 $ . Există o dovadă a acestui lucru în general aici .
Pentru ultimul nostru exemplu, să folosim o listă:
Dacă luăm expresia noastră originală pentru o listă:
$$ L (a) = 1 + a * L (a) $$
Putem rearanja pentru a obține:
$$ L (a) = \ frac {1} {1 – a} $$
(La suprafață poate părea o prostie, dar dacă luați seria Taylor a acestui rezultat veți obține definiția pe care am derivat-o mai devreme.)
Acum, dacă diferențiem acest lucru, vom g și un rezultat interesant:
$$ \ frac {\ partial L (a)} {\ partial a} = (L (a)) ^ 2 $$
Astfel, o listă a devenit o pereche de liste. De fapt, acest lucru are sens: cele două liste produse corespund elementelor de deasupra și de sub gaura din lista originală!
Comentarii
Răspuns
Metode numerice. Există probleme greoaie de calcul, care sunt unice pentru aplicații specifice, și au nevoie de soluții mai rapide decât poate rezolva practic un om fără un program. Cineva trebuie să proiecteze un algoritm care va calcula soluția. Nu este singurul lucru care separă programatorii de oamenii de știință?
Comentarii
Răspuns
Automatizare – Similar roboticii, automatizării poate necesita cuantificarea multor comportamente umane.
Calcule – Găsirea soluțiilor la dovezi necesită adesea calcule.
Vizualizări – Utilizarea algoritmilor avansați necesită calcul precum cos, sine, pi și e. În special când calculezi formarea vectorilor, câmpurilor de coliziune și conectare.
Logistică și analiză a riscurilor – Determinarea dacă o sarcină posibil, riscul implicat și rata posibilă de succes.
Securitate – Majoritatea securității poate fi realizată fără calcul; cu toate acestea, mulți oameni care doresc explicații o preferă în expresiile matematice.
AI – Bazele AI poate fi utilizat fără calcul; totuși, calculând comportamentul avansat, inteligența roiului / mințile stupului și luarea deciziilor bazate pe valori complexe.
Calcule medicale – Vizualizarea majorității datelor de sănătate necesită calcul, cum ar fi o citire EKG.
Știință & Inginerie – Când lucrați cu aproape orice altă disciplină științifică este nevoie de calcul: aerospațial, astrologic, biologic, chimic sau ingineresc.
Mulți oameni din programare își pot continua întreaga carieră fără folosirea calculului; cu toate acestea, se poate dovedi neprețuit dacă sunteți dispus să faceți munca. Pentru mine a fost cel mai eficient în automatizare, logistică și vizualizare. Prin identificarea tiparelor specifice, puteți pur și simplu ignora modelul, imita modelul sau dezvolta metodă superioară împreună.
Comentarii
Răspuns
Faptul este că că există foarte puține șanse să folosești vreodată calculul. Cu toate acestea, practic orice altă disciplină științifică folosește calculul și lucrați la o diplomă științifică. Există anumite așteptări cu privire la ceea ce ar trebui să însemne o diplomă universitară în științe și unul dintre aceste lucruri este că știi calculul. Chiar dacă nu îl veți folosi niciodată.
Este în regulă dacă vă descurcați slab în calcul, dar asigurați-vă că depuneți un efort în matematică discretă. Există o mulțime de probleme de programare din lumea reală, în care matematica discretă intră în joc, iar ignoranța principiilor sale te poate jena în fața altor codificatori.
Comentarii
Răspuns
Mulți oameni au furnizat deja aplicații în CS. Dar uneori veți găsi Calculul când nu vă așteptați:
Derivați de expresie regulată reexaminați
Dacă știți automatele ar putea merita citite acest pdf.
Comentarii
Răspuns
Câteva exemple mai specifice:
- Calculul este utilizat pentru a obține regula delta , care permite anumite tipuri de rețele neuronale să „învețe”.
- Calculul poate fi folosit pentru a calcula transformata Fourier a unei funcții oscilante, foarte importantă în analiza semnalului.
- Calculul este folosit tot timpul în grafica computerizată, care este un câmp foarte activ, deoarece oamenii descoperă continuu noi tehnici. Pentru un exemplu fundamental, consultați ecuația de redare a Kajiya
- Calculul este important în domeniul geometriei de calcul, investigați modelarea curbei și a suprafeței.
Răspuns
La aceste alte răspunsuri excelente adaug acest punct: rigoare în testare .
În crearea cazurilor de testare pentru unele aplicații, a trebuit să folosesc calculul pentru a prezice timpul de funcționare așteptat, dimensiunile memoriei, și alegeți parametrii optimi atunci când reglați structurile de date. Aceasta include înțelegerea erorii de rotunjire așteptate etc.
Deși statisticile sunt menționate în alte răspunsuri, aș dori să menționez în mod specific Algoritmi Monte-carlo , cum ar fi algoritmi de optimizare și unii algoritmi de streaming frugal care se bazează pe principii matematice calcul.
Industriile specifice în care am lucrat unde a fost necesar calculul includ:
-
Finanțe (crearea unei platforme de tranzacționare)
-
Asigurări (integrarea numerică a polițelor de asigurare în scenariile de tip „what-if” pentru a calcula pierderile preconizate)
-
Logistică (optimizarea consolidării rutelor de transport)
-
Procesare semnal
Răspuns
Calcul – porțiunea integrală – este utilizată direct în CS ca bază pentru gândirea la însumare. Dacă treceți prin orice porțiune a secțiunii de matematică concretă a lui Knuth despre însumare, veți recunoaște rapid convențiile comune calculului: înțelegerea unora dintre cazurile continue vă oferă instrumente pentru a lua în considerare discretul.
Multe dintre utilizări din studiul dvs. CS implică sisteme de programare care monitorizează schimbarea sau, în unele cazuri, încearcă să prezică viitorul. Matematica din jurul acestor sisteme este înrădăcinată în ecuații diferențiale și algebră liniară, iar ecuațiile diferențiale sunt … calcul. Există profesori precum Gibert Strang, care pledează pentru trecerea mai rapidă la partea de ecuații diferențiale, dar este încă un subset de calcul. Când schimbarea depinde de schimbarea oricărui sistem, începe să fie instabilă (și stabilă) în moduri care sunt atât non-intuitive, cât și foarte bine înțeles. Pentru a înțelege de ce sistemul dvs. liniar sensibil se comportă în mod neliniar, fie aveți nevoie de instrumentele de calcul, fie trebuie să le reinventați pentru spațiul dvs. problematic.
Și, în sfârșit, CS adesea necesită citirea și înțelegerea lucrării celorlalți, iar calculul este prima expunere la o mulțime de vocabular comun, convenție și istorie.
Comentarii