Hogyan / mikor használják a számítást a számítástechnikában?

megjegyzések

  • Nincs szigorú szabályzatunk a listakérdésekre, de van egy általános nem tetszik . Kérjük, vegye figyelembe ezt és ezt a beszélgetést is; érdemes javítani a kérdésén, hogy elkerülje az ott kifejtett problémákat. Ha nem biztos abban, hogyan javíthatja kérdését, akkor segíthetünk a Computer Science csevegésben ?
  • Úgy tűnik, hogy elköveti a gyakori hibát feltételezve, hogy minden kurzus tartalmának relevánsnak kell lennie (minden karrierútra vonatkozóan). Néha csak arról van szó, hogy megtanítsd, hogyan gondolkodj bizonyos módszerekkel.
  • A hozzászólások nem kiterjedt viták; ez a beszélgetés csevegésbe került .

Válasz

Gondolhatok néhány tanfolyamra, amelyekre szükség lenne a Kalkulusra, közvetlenül . A számítástechnika fokozatnál kötelezően kitűnő tudományágaknál félkövér arcot, az általában választhatóaknál dőlt betűt használtam.

  • Számítógépes grafika / Képfeldolgozás, és itt szükséged lesz az analitikus geometriára és a lineáris algebrára is, erősen ! Ha ezen az úton halad, érdemes tanulmányoznia néhány differenciálgeometriát (amelynek minimális előfeltétele a többváltozós számítás). De itt még a legalapvetőbb dolgokra is szüksége lesz a Kalkulusra: próbálja meg például a “Fourier Transform” vagy a “Wavelets” kifejezésre keresni – ez két alapvető eszköz a képekkel dolgozó emberek számára.
  • Optimalizálás , többnyire nem lineáris, ahol a többváltozós Calculus az alapnyelv, amelyet minden fejlesztésére használnak. De még a lineáris optimalizálás is profitál a Calculusból ( az objektív függvény származéka feltétlenül fontos)
  • Valószínűség / Statisztika . Ezeket nem lehet komolyan tanulmányozni többváltozós számítás.
  • Gépi tanulás , amely nagymértékben hasznosítja a statisztikákat (és ennek következtében a többváltozós számításokat)
  • Adattudomány és kapcsolódó tantárgyak, amelyek szintén sok statisztikát használnak;
  • Robotika , ahol meg kell modelleznie a robot fizikai mozgásait, ezért ismernie kell a részleges deriváltakat és a gradienseket.
  • Diszkrét matematika és kombinatorika ( igen! , szükség lehet a kiszámításra a diszkrét számláláshoz!) – Ha elég komolyan gondolja a függvények generálását, akkor tudnia kell, hogyan kell integrálni és levezetni bizonyos képleteket. Ez pedig hasznos az algoritmusok elemzéséhez (lásd Sedgewick és Flajolet “Algoritmusok elemzése” című könyvét). Hasonlóképpen, a Taylor-sorozat és a számítás hasznos lehet bizonyos típusú megismétlődési relációk megoldásában, amelyeket az algoritmuselemzés során használnak.
  • Algoritmusok elemzése , ahol már a kezdetektől fogva használja a határ fogalmát (lásd Landau jelölése, “kis $ o $ ” – ez “s határértékkel meghatározva)

Lehetnek mások is – ez éppen a fejem tetején van.

És ezen kívül az egyik előnye közvetve egy Calculus tanfolyamról, megtanulva, hogyan kell technikai szigorral érvelni és magyarázni az érveket. Ez értékesebb, mint a hallgatók általában gondolkodnak.

Végül – szüksége lesz a Kalkulusra, hogy kölcsönhatásba léphessen más egzakt tudományok és mérnökök embereivel. És nem ritka, hogy egy informatikusnak nemcsak beszélnie, hanem beszélnie is kell dolgozzon együtt fizikussal vagy mérnökkel.

Megjegyzések

  • Talán más tapasztalataid voltak, de a kalkulust eléggé feleslegesnek találtam ahhoz, hogy megtanuljam, hogyan kell érveléseket szigorúan indokolni és magyarázni. A rote és a mintaillesztés nagyjából olyan volt, mint a középiskolai algebra és a geometria.Másrészt több felsőbb matematikaóra előfeltétele volt, hogy megtanítsa ezeket a készségeket, ezért feltételezem, hogy nem volt ' teljesen haszontalan.
  • Teljes mértékben kapcsolódhatok a legutolsó ponthoz (közvetett előnyök). A programozási nyelvek elméletén dolgozva ritkán használtam közvetlenül a számítást. Talán a legközvetlenebb alkalmazás valószínűségi számítási modellekben történt (pl. Plotkin & Jones valószínűségi erődomainek). Mégis, a számítási tanfolyamom főleg a dolgok bizonyításáról szólt, és ez nagyon-nagyon értékes volt. Az IMHO-nak egy vagy két számítási tanfolyamra van szüksége minden komolyabb CS programban, még néhány matematika mellett (diszkrét matematika, logika, lineáris algebra, numerikus elemzés, … és esetleg kategóriák, topológia, algebra, …).
  • Itt ' egy példa arra, hogy szükségem van számításra a számítógépes grafikában: A sima interpolációs függvények alapvetően f(0) = 0 formájúak lesznek , f(1) = 1, f'(0) = f'(1) = 0, és felvehet bármilyen egyéb kényszert is, amely érdekel, például f'(0.5) = 1. Nemrégiben ezt használtam különböző interpolációs polinomok levezetésére a képek simításához.
  • A robotikát valószínűleg bármilyen fizikai modellezésre ki lehet terjeszteni (ami gondolom a CG-t is magában foglalja, a világítás szempontjából, szóval hagyjuk ' kinetikai fizika modellezésnek nevezik). Ez magában foglalja a gyorsulást / sebességet, a visszapattanásokat / rugókat / alakváltozásokat, a PID-szabályozókat, az akusztikát, a gravitációt … mint bármelyik előtte járó osztály, a Calculus azt tanítja a diákoknak, hogy ' nem egyszerűen megszámolhatják a problémák számát, és megbecsülhetik, hogy mekkora munkával fognak foglalkozni.

Válasz

Ez kissé homályos, de az algebrai adattípusokban a számítás felbukkan. Bármely adott típus esetében az egylyukú összefüggéseinek típusa az adott típus származéka. Az egész témáról áttekintést olvashat ebben a kiváló beszélgetésben . Ez nagyon technikai terminológia, ezért magyarázzuk el.

Algebrai adattípusok

Találkozhatott olyan sorrenddel, amelyet terméktípus nak neveznek (ha nem azért, mert kétféle derékszögű termék ről van szó. Ezt szó szerint fogjuk felfogni, és a következő jelölést használjuk:

$$ a * b $$

Az ábrázoláshoz egy páros, ahol a $ a $ és a $ b $ mindkettő. Ezután találkozhatott összegtípusok ezek olyan típusok, amelyek lehetnek egy vagy másik típus ( szakszervezetek , variánsok vagy / em> type (kinda) Haskellben). Ezt is szó szerint fogjuk felfogni, és a következő jelölést használjuk:

$$ a + b $$

Ezeket úgy nevezik el, ahogy vannak, mert ha egy $ a $ típusú $ Az N_a $ értékek és egy $ b $ típus $ N_b $ értékeket tartalmaznak, majd a type A $ a + b $ $ N_a + N_b $ értékekkel rendelkezik.

Ezek a típusok normál algebrai kifejezéseknek tűnnek és valójában manipulálhatjuk őket (egy pontig).

Példa

Funkcionális nyelvekben a lista közös meghatározása (itt Haskellben megadva) ez:

data List a = Empty | Cons a List 

Ez azt mondja, hogy egy lista vagy üres, vagy egy duplája egy értéknek és egy másik listának. Ezt algebrai jelöléssé alakítva a következőket kapjuk:

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

Ahol a $ 1 $ egy értékű típust jelent (más néven az egység típusát). Többszörös beillesztéssel ezt kiértékelhetjük, hogy meghatározzuk a $ L (a) $ -ot:

$$ 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 … $$

(Hol $ x ^ n $ az ismételt szorzás értelmében.)

Ez a meghatározás akkor azt mondja, hogy a lista vagy egység, vagy többszörös egy elem, vagy kettő elem, vagy három stb., ami a definíciója a listának!

Egy lyukú összefüggések

Mostantól egy lyukú összefüggésekhez: egy lyukú kontextus az, amit akkor kapunk, amikor “kiveszünk egy értéket” egy terméktípusból. Mondjunk példát:

Egyszerű, homogén kétpáros esetén $ a ^ 2 $ , ha kiveszünk egy értéket , most kapunk egy 1 duplát, $ a $ .De kétféle egy lyukú kontextus létezik, nevezetesen az első és a második érték a duplán. Tehát mivel ezek bármelyike, írhatjuk, hogy $ a + a $ , ami természetesen $ 2 egy $ . Itt jön létre a differenciálás. Erősítsük meg ezt egy másik példával:

Ha kiveszel egy értéket egy 3 duplából, akkor egy 2 duplát kapunk, de három különböző változat létezik:

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

Attól függően, hogy hova tesszük a lyukat. Ez $ 3a ^ 2 $ , amely valóban a $ a ^ 3 $ származéka. Erre általában van bizonyíték itt .

Az utolsó példához használjunk listát:

Ha egy eredeti kifejezésünket egy listához vesszük:

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

Átrendezhetjük a következőket:

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

(A felszínen ez nonszensznek tűnhet, de ha ennek az eredménynek a Taylor-sorozatát veszi, akkor megkapja a korábban leírt definíciót.)

Ha ezt megkülönböztetjük, akkor g és érdekes eredmény:

$$ \ frac {\ részleges L (a)} {\ részleges a} = (L (a)) ^ 2 $ $

Így egy lista listapárrá vált. Ennek tulajdonképpen van értelme: a két elkészített lista megfelel az eredeti lista lyukának feletti és alatti elemeknek!

Megjegyzések

  • Ez csodálatosan történt éleslátó. Köszönet.

Válasz

Numerikus módszerek. Vannak olyan nehézkes számítási problémák, amelyek egyedülállóak az egyes alkalmazásokhoz, és gyorsabb megoldásokra van szükségük, mint amennyit az ember gyakorlatilag megoldani tud program nélkül. Valakinek meg kell terveznie egy algoritmust, amely kiszámítja a megoldást. Nem csak ez választja el a programozókat a tudósoktól?

Megjegyzések

  • Tekintve a " listázza a kérdés " jellegét, minden válasznak meg kell próbálnia a teljes képet adni. Biztosan azt állítja, hogy a numerikus módszerek az egyetlen példányok?
  • A megjegyzéseket nem folytatjuk bővebben; ezt a beszélgetést csevegésbe költöztettük .

Válasz

Automatizálás – Hasonló a robotikához, az automatizáláshoz sok emberi viselkedés számszerűsítését igényelheti.

Számítások – A bizonyításokra megoldások keresése gyakran számítást igényel.

Megjelenítések – A fejlett algoritmusok használatához számításra van szükség, például cos, szinusz, pi és e. Különösen amikor kiszámolod vektorok, ütközési mezők és hálós kapcsolatok.

Logisztika és kockázatelemzés – Annak meghatározása, hogy egy feladat lehetséges, az ezzel járó kockázat és a siker lehetséges aránya.

Biztonság – A legtöbb biztonság elvégezhető számítás nélkül; sok magyarázatra vágyó ember azonban inkább a matematikai kifejezésekben részesíti előnyben.

AI – Az AI alapjai számítás nélkül hasznosítható; azonban a fejlett viselkedés, raj intelligencia / kaptár elmék és komplex értékalapú döntéshozatal kiszámítása.

Orvosi számítások – A legtöbb egészségügyi adat megjelenítéséhez számításra van szükség, például EKG-leolvasásra.

Science & Engineering – Ha szinte bármilyen más tudományos szakterülettel dolgozunk, számításokra van szükség: repülés, űrkutatás, asztrológia, biológia, kémia vagy mérnöki munka.

A programozásban sokan teljes karrierjük nélkül mehetnek végig kalkulus felhasználásával; azonban felbecsülhetetlen értékűnek bizonyulhat, ha hajlandó elvégezni a munkát. Számomra ez volt a leghatékonyabb az automatizálásban, a logisztikában és a vizualizációban. Konkrét minták azonosításával egyszerűen figyelmen kívül hagyhatja a mintát, utánozhatja a mintát, vagy kidolgozhat egy kiváló módszer.

Megjegyzések

  • Hogyan áll a cos, a szinusz, a $ \ pi $ és a $ \ mathrm {e} $ számítás?
  • Nos, a $ \ exp (x) $ meghatározható az $ f (x) = f ' (x) $ egyedi megoldásaként $ f ( 0) = 1 $, és hasonlóan sin, cos meghatározható az egyedi funkciópár, amely kielégíti az $ f ' (x) = g (x) $, $ g ' (x) = -f (x) $ megfelelő határfeltételekkel (szerintem $ f (0) = 0 $ és $ g (0) = 1 $ működnie kell).
  • @DavidRicherby: Példa: hogyan valósítja meg ezeket a funkciókat mondjuk egy FPU nélküli mikrokontrolleren? Ha ismer valamilyen számítást, akkor azonnal tud egy jó választ: hatványsor.

Válasz

A tény: hogy nagyon kevés az esély arra, hogy valaha is kalkulust használjon. Azonban gyakorlatilag minden más tudományos tudományág használ számítást, és Ön tudományos fokozaton dolgozik. Bizonyos elvárások vannak azzal kapcsolatban, hogy mit is jelent az egyetemi tudományos fokozat, és ezek egyike az, hogy ismeri a számítást. Még akkor is, ha soha nem fogja használni.

Nem baj, ha rosszul teljesít a számításban, de ügyeljen arra, hogy bizonyos erőfeszítéseket tegyen a diszkrét matematika terén. Nagyon sok olyan valós programozási probléma merül fel, ahol a diszkrét matematika játszik szerepet, és annak elveinek ismeretlensége zavarba hozhat más kódolók előtt.

Megjegyzések

  • Az első bekezdésed teljesen téves és összeesküvés-elmélettel határos. Rengeteg olyan terület van a számítástechnikában, ahol a számítás hasznos (a végtelen felsorolásokat lásd a többi válaszban). Persze, ' lehetséges elkerülni ezeket a területeket, de ' nagyon félrevezető azt állítani, hogy a kalkulus eldobása nulla hatást gyakorol évfolyamok.
  • A diplomától függően elvégezhet egy diplomát anélkül, hogy valaha is kalkulust használna, és határozottan azt gondolom, hogy a CS szakoknak nem kell annyi belőle ahogy megkapjuk. Ha rosszul jársz benne, kizársz a számítástechnika legérdekesebb területeiből. ' rengeteg ideje van webfejlesztőnek lenni, miután végzett; míg az iskolában miért ne próbálná meg kicsit lökni magát?
  • @tsleyson Ha webfejlesztő szeretne lenni, spórolja meg a CS diploma megszerzéséhez szükséges pénzt és időt.
  • @ScottB Úgy tűnik, összekevered a számítástechnikát a programozással.
  • @ScottB Ki ' mondja CS = matematika + programozás? Jómagam már évek óta támogatom ezt a korlátozott nézetet. De hátra is van: a matematika szerves része a CS-nek, csakúgy, mint a fizikának. szükségünk van rá, még akkor is, ha nem ' nem akarjuk gyakorolni . (Ez azt jelenti, hogy nem ez a hely a beszélgetéshez. Ha folytatni szeretné, kérjük, csatlakozzon hozzánk a Számítástudományi csevegésben . >

Válasz

Sokan már szolgáltattak alkalmazásokat CS-ben. De néha akkor fogja megtalálni a Kalkulust, amikor a legkevésbé számít rá:

Újra megvizsgálták a reguláris kifejezés deriváltjait

Ha tudod ezt a pdf-es automatát érdemes lehet elolvasni.

Megjegyzések

  • Nem látok különbözõ számításokat ' ott; látom a " származék " szót, de nem látok ' semmit hasonló a hagyományos differenciálszámításhoz.
  • Ez ' s " formális származék ", és valamilyen módon kapcsolódik a Kalkulushoz. Látni fogja ezt a Funkciók generálása, a diszkrét struktúrákhoz kapcsolódó egyes képletekkel és más területekkel is, ahol nem ' t valójában " sima funkciója van ".
  • @Jay: A fontos dolog nem ' t a név. Hogyan érti ng kalkulus segít rajta?
  • Ezt a Wikipedia oldalon ismertetjük. A formális származék az analgebrai struktúra elemeire vonatkozó művelet, amely polinomokat tartalmaz, és formálisan " hasonló " a differenciálás szokásos szabályához. polinomok azonban – eltérően attól, amit egy hallgató a Calculusban lát – a polinomok nem valósak; lehetnek tetszőleges " gyűrű " (más algebrai szerkezet) polinomjai. A formális származéknak pedig vannak gyakorlati alkalmazásai – legalább egyet láttam (Algebrai Kriptanalízis – nem emlékszem a részletekre ').

Válasz

Néhány konkrétabb példa:

  • Számológépet használunk a delta szabály , amely lehetővé teszi bizonyos típusú neurális hálózatok „tanulását”.
  • A számológép segítségével kiszámolható egy oszcilláló függvény Fourier-transzformációja, ami nagyon fontos a jelelemzés.
  • A számítást folyamatosan használják a számítógépes grafikában, ami nagyon aktív terület, mivel az emberek folyamatosan új technikákat fedeznek fel. Alapvető példaként tekintse meg a Kajiya renderelési egyenletét
  • A számítás fontos a számítási geometria területén, vizsgálja meg a görbe és a felület modellezését.

Válasz

Ezekre a kiváló válaszokra még ezt a pontot fűzöm: szigorúság a tesztelésében.

Egyes alkalmazások teszteseteinek létrehozásakor számításokat kellett felhasználnom a várható futási idők, memóriaméretek, és az adatstruktúrák hangolásakor válassza ki az optimális paramétereket. Ez magában foglalja a várható kerekítési hiba stb. Megértését.

Bár a statisztikákat más válaszok is említik, külön meg szeretném említeni a Monte-carlo algoritmusokat , például optimalizálási algoritmusok és néhány takarékos streaming algoritmus , amelyek olyan matematikai elveken alapulnak, amelyek magukban foglalják a következőket: kalkulus.

Azok a konkrét iparágak, ahol dolgoztam, ahol számításra volt szükség:

  • Pénzügy (kereskedési platform létrehozása)

  • Biztosítás (a biztosítási kötvények numerikus integrálása a „ha-ha” forgatókönyvekbe a várható veszteségek kiszámításához)

  • Logisztika (a szállítási útvonalak konszolidációjának optimalizálása)

  • Jelfeldolgozás

Válasz

Számítás – az integrál része – közvetlenül a CS-ben használják, mint az összegzésre gondolkodás alapját. Ha átdolgozza a Knuth konkrét matematika részének összegzését, akkor gyorsan felismeri a számításban megszokott konvenciókat: a folyamatos esetek némelyikének megértése olyan eszközöket kínál, amelyek figyelembe veszik a diszkrétet.

Sok felhasználás CS-tanulmánya olyan programozási rendszereket tartalmaz, amelyek figyelemmel kísérik a változásokat, vagy egyes esetekben megpróbálják megjósolni a jövőt. Az e rendszerek körüli matematika differenciálegyenletekben és lineáris algebrában gyökerezik, és a differenciálegyenletek … számítások. Furcsa, aki a differenciálegyenletek részének gyorsabb léptetését javasolja, de ez továbbra is a számítás részhalmaza. Amikor a változás bármely rendszer változásától függ, instabil (és stabil) kezd lenni olyan módon, amely nem intuitív és nagyon is jól megértett. Annak megértéséhez, hogy értelmes lineáris rendszere miért viselkedik nemlineáris módon, vagy a kiszámítás eszközeire van szüksége, vagy újra kell kitalálnia őket a problématerületéhez.

És végül, a CS gyakran megköveteli mások munkájának elolvasását és megértését, és a számítás az első kitettség sok megosztott szókincsnek, konvenciónak és történelemnek.

Megjegyzések

  • " A CS-tanulmány számos felhasználása olyan programozási rendszereket tartalmaz, amelyek figyelemmel kísérik a változásokat, vagy bizonyos esetekben próbálja megjósolni a jövőt " – Nem hiszem, hogy ez reprezentatív lenne a CS tanulmányi kurzusainak.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük