Komentáře
- Nemáme ' přísné zásady pro otázky se seznamem, ale existuje obecná nechuť . Pamatujte také na tuto a tuto diskusi; možná budete chtít vylepšit svoji otázku, abyste se vyhnuli problémům, které jsou tam vysvětleny. Pokud si nejste jisti, jak svou otázku vylepšit, možná vám můžeme pomoci v Computer Science Chat ?
- Zdá se, že děláte běžnou chybu předpokládat, že obsah každého kurzu musí být relevantní (pro každou kariérní cestu). Někdy jde jen o to, abyste si procvičili, jak určitými způsoby uvažovat.
- Komentáře nejsou určeny pro rozšířenou diskusi; tato konverzace byla přesunuta do chatu .
odpověď
Napadá mě několik kurzů, které by potřebovaly Calculus, přímo . Pro obvykle povinné obory pro obor Informatika jsem použil odvážnou tvář a pro obvykle volitelné kurzíva.
- Počítačová grafika / Zpracování obrázků a zde budete také potřebovat analytickou geometrii a lineární algebru, těžce ! Pokud se vydáte touto cestou, možná budete chtít prostudovat nějakou diferenciální geometrii (která má jako minimální předpoklad vícerozměrný počet). Ale budete zde potřebovat kalkulus i pro velmi základní věci: zkuste hledat například „Fourierovu transformaci“ nebo „vlnky“ – to jsou dva velmi základní nástroje pro lidi pracující s obrázky.
- Optimalizace většinou nelineární, kde základním jazykem používaným k vývoji všeho je multivariační kalkul. Ale i lineární optimalizace těží z kalkulu ( derivace objektivní funkce je naprosto důležitá)
- Pravděpodobnost / statistika . Nelze je vážně studovat bez vícerozměrný kalkul.
- Strojové učení , což ve velké míře využívá statistiku (a následně vícerozměrný kalkul)
- Data Science a související předměty, které také využívají spoustu statistik;
- Robotika , kde budete muset modelovat fyzické pohyby robota, takže budete potřebovat znát dílčí derivace a přechody.
- Diskrétní matematika a kombinatorika ( ano! , pro diskrétní počítání možná budete potřebovat Calculus!) – pokud to s generováním funkcí myslíte vážně, budete muset vědět, jak integrovat a odvodit určité vzorce. A to je užitečné pro analýzu algoritmů (viz kniha Sedgewicka a Flajoleta „Analýza algoritmů“). Podobně mohou být Taylorovy řady a počet užitečné při řešení určitých druhů relací opakování, které se používají při analýze algoritmů.
- Analýza algoritmů , kde použijete pojem limitu hned od začátku (viz notace Landau, „malý $ o $ “ – je to definováno pomocí limitu)
Mohou existovat i další – to je úplně na mé hlavě.
A kromě toho jedna výhoda nepřímo z kurzu Calculus tím, že se naučí rozumně vysvětlovat a vysvětlovat argumenty s technickou přísností. To je cennější než pro studenty obvykle přemýšlejte.
Nakonec – budete potřebovat Calculus, abyste mohli komunikovat s lidmi z jiných Exact Sciences and Engineering. A není neobvyklé, že počítačový vědec potřebuje nejen mluvit, ale také spolupracovat s fyzikem nebo inženýrem.
Komentáře
- Možná jste měli jinou zkušenost, ale shledal jsem, že kalkul je docela zbytečný pro to, abych se naučil důsledně vysvětlovat a vysvětlovat argumenty. Vyučovalo se to pomocí rote a patternů podobně jako středoškolská algebra a geometrie.Na druhou stranu to byl předpoklad pro několik vyšších matematických tříd, které učily tyto dovednosti, takže předpokládám, že to nebylo ' úplně zbytečné.
- Můžu se úplně vztahovat k poslednímu bodu (nepřímé výhody). Při práci na teorii programovacích jazyků jsem zřídka používal přímo kalkul. Snad nejpřímější aplikace byla v pravděpodobnostních výpočetních modelech (např. Plotkin & Jonesovy pravděpodobnostní mocenské domény). Můj kurz kalkulů byl přesto hlavně o dokazování věcí, a to bylo velmi, velmi cenné. V každém seriózním programu CS je IMHO nutný jeden nebo dva kurzy matematiky, spolu s některými dalšími matematiky (diskrétní matematika, logika, lineární algebra, numerická analýza, … a případně kategorie, topologie, algebra, …).
- Zde ' je příklad toho, jak jsem potřeboval počet v počítačové grafice: Funkce hladké interpolace budou mít v zásadě všechny podobu
f(0) = 0
,f(1) = 1
,f'(0) = f'(1) = 0
a můžete přidat další omezení, na kterých vám záleží, napříkladf'(0.5) = 1
. Před malou dobou jsem to použil k odvození několika různých interpolačních polynomů pro vyhlazení obrázků. - Robotiku lze pravděpodobně rozšířit na jakýkoli druh fyzikálního modelování (což podle mého názoru pokrývá také CG, pokud jde o osvětlení, takže ať ' se tomu říká kinetické fyzikální modelování). To zahrnuje zrychlení / rychlost, odrazy / pružiny / deformace, PID regulátory, akustiku, gravitaci …
- Já ' budu nepřímo ukazovat tímto způsobem: lepší než kterákoli třída, kterou dříve absolvují, Calculus učí studenty, že ' jednoduše nepočítá počet problémů a odhadne, kolik práce to bude vyžadovat.
Odpověď
To je poněkud nejasné, ale počet se objeví v algebraických datových typech. Pro jakýkoli daný typ je typ jeho kontextů jedné díry derivací tohoto typu. Přehled celého tématu naleznete v této vynikající přednášce . Toto je velmi technická terminologie, vysvětlíme to.
Algebraické datové typy
Možná jste se setkali s n-ticemi označovanými jako typy produktů (pokud ne, je to proto, že jsou kartézským produktem dvou typů). Budeme to brát doslovně a použijeme notaci:
$$ a * b $$
Představovat n-tice, kde $ a $ a $ b $ jsou oba typy. Dále jste možná narazili typy součtu jedná se o typy, které mohou být buď jednoho typu, nebo jiného (známé jako unie , varianty nebo jako Buď typ (trochu) v Haskellu). Také to vezmeme doslovně a použijeme notaci:
$$ a + b $$
Jsou pojmenovány tak, jak jsou, protože pokud má typ $ a $ $ Hodnoty N_a $ a typ $ b $ má $ N_b $ hodnoty, poté typ $ a + b $ má $ N_a + N_b $ hodnoty.
Tyto typy vypadají jako normální algebraické výrazy a můžeme je ve skutečnosti jako takové manipulovat (do určité míry).
Příklad
Ve funkčních jazycích je běžná definice seznamu (zde uvedená v Haskellu) tato:
data List a = Empty | Cons a List
Tím se říká, že seznam je buď prázdný, nebo n-ticí hodnoty a jiného seznamu. Transformujeme to na algebraickou notaci a dostaneme:
$$ L (a) = 1 + a * L (a) $$
Kde $ 1 $ představuje typ s jednou hodnotou (aka typ jednotky). Opakovaným vložením to můžeme vyhodnotit, abychom získali definici $ 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 … $$
(Kde $ x ^ n $ je míněno ve smyslu opakovaného násobení.)
Tato definice pak říká, že seznam je buď jednotka, nebo n-tice jedna položka nebo n-tice dvou položek nebo tří atd., což je definice seznamu!
Kontexty s jedním otvorem
Nyní do kontextů jedné díry: kontext jedné díry získáte, když „vyberete hodnotu“ z typu produktu. Uveďme příklad:
U jednoduché dvojice, která je homogenní, $ a ^ 2 $ , pokud vezmeme hodnotu out , dostaneme pouze n-tici, $ a $ .Existují však dva různé kontexty jedné díry tohoto typu: jmenovitě první a druhá hodnota n-tice. Jelikož se jedná o některou z těchto možností, mohli bychom napsat, že jde o $ a + a $ , což je samozřejmě $ 2 $ . Zde se hraje diferenciace. Pojďme to potvrdit na dalším příkladu:
Vyjmutí hodnoty z trojice dává dvojici, ale existují tři různé varianty:
$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$
Podle toho, kam jsme umístili díru. To nám dává $ 3a ^ 2 $ , což je skutečně derivát $ a ^ 3 $ . Obecně o tom existuje důkaz zde .
Pro náš poslední příklad použijeme seznam:
Pokud vezmeme náš původní výraz pro seznam:
$$ L (a) = 1 + a * L (a) $$
Můžeme přeskupit a získat:
$$ L (a) = \ frac {1} {1 – a} $$
(Na povrchu tento se může zdát jako nesmysl, ale pokud si vezmete Taylorovu řadu tohoto výsledku, získáte definici, kterou jsme odvodili dříve.)
Pokud to nyní odlišíme, Zajímavý výsledek:
$$ \ frac {\ částečné L (a)} {\ částečné a} = (L (a)) ^ 2 $$
Takto se z jednoho seznamu stala dvojice seznamů. To ve skutečnosti dává smysl: dva vytvořené seznamy odpovídají prvkům nad a pod otvorem v původním seznamu!
Komentáře
- To bylo úžasně bystrý. Děkujeme.
Odpověď
Numerické metody. Existují těžkopádné problémy s kalkulem, které jsou jedinečné pro konkrétní aplikace, a které potřebují řešení rychleji, než dokáže člověk bez programu prakticky vyřešit. Někdo musí navrhnout algoritmus, který vypočítá řešení. Není to jediná věc, která odděluje programátory od vědců?
Komentáře
- Vzhledem k " seznam " povahy této otázky, každá odpověď by se měla pokusit poskytnout úplný obraz. Opravdu chcete tvrdit, že numerické metody jsou instancí pouze ?
- Komentáře nejsou určeny pro rozšířenou diskusi; tato konverzace byla přesunuta do chatu .
Odpověď
Automatizace – Podobně jako robotika, automatizace může vyžadovat kvantifikaci velkého množství lidského chování.
Výpočty – Hledání řešení důkazů často vyžaduje počet.
Vizualizace – Využití pokročilých algoritmů vyžaduje kalkul jako cos, sine, pi a e. Zvláště když jste kalkulačka tingové vektory, kolizní pole a vytváření sítí.
Logistika a analýza rizik – Určení, zda je úkol možné riziko a možná míra úspěchu.
Zabezpečení – lze zajistit většinu zabezpečení bez počtu; mnoho lidí, kteří chtějí vysvětlení, to však preferují v matematických výrazech.
AI – Základy AI lze použít bez počtu; nicméně výpočet pokročilého chování, inteligence roje / mysli úlu a rozhodování založené na komplexních hodnotách.
Lékařské výpočty – Vizualizace většiny zdravotních dat vyžaduje počet, jako je čtení EKG.
Věda & Engineering – Při práci s téměř jakoukoli jinou vědeckou disciplínou je třeba počítat: Aerospace, Astrology, Biology, Chemistry nebo Engineering.
Mnoho lidí v programování může absolvovat celou svou kariéru bez pomocí kalkulu; může se však ukázat jako neocenitelné, pokud jste ochotni tuto práci provést. Pro mě to bylo nejefektivnější v automatizaci, logistice a vizualizaci. Identifikací konkrétních vzorů můžete vzor jednoduše ignorovat, napodobit nebo vytvořit vynikající metoda dohromady.
Komentáře
- Jak jsou cos, sine, $ \ pi $ a $ \ mathrm {e} $ kalkul?
- No, $ \ exp (x) $ lze definovat jako jedinečné řešení $ f (x) = f ' (x) $ s $ f ( 0) = 1 $ a podobně sin, cos lze definovat jako jedinečnou dvojici funkcí splňující $ f ' (x) = g (x) $, $ g ' (x) = -f (x) $ s příslušnými okrajovými podmínkami (myslím, že $ f (0) = 0 $ a $ g (0) = 1 $ by měly fungovat).
- @DavidRicherby: Příklad: Jak implementujete tyto funkce například na mikrokontrolér bez FPU? Pokud znáte nějaký počet, okamžitě znáte dobrou odpověď: mocninová řada.
Odpověď
Faktem je že je velmi malá šance, že někdy použijete kalkul. Prakticky každá jiná vědecká disciplína však POČÍTÁ a pracujete na vědeckém titulu. Existují určitá očekávání, co má znamenat vysokoškolský vědecký titul, a jednou z těch věcí je, že znáte počet. I když to nikdy nepoužiješ.
Je v pořádku, pokud si počínáš špatně v počtu, ale věnuj trochu úsilí diskrétní matematice. Existuje spousta problémů s programováním v reálném světě, kde do hry vstupuje diskrétní matematika a neznalost jejích principů vás může uvést do rozpaků před ostatními programátory.
Komentáře
- Váš první odstavec je úplně špatný a hraničí s konspirační teorií. Existuje spousta oblastí výpočetní techniky, kde je kalkul užitečný (jejich nekonečné seznamy najdete v ostatních odpovědích). Jistě, ' je možné se všem těmto oblastem vyhnout, ale ' je velmi zavádějící tvrdit, že klesající počet bude mít nulový dopad stupně.
- V závislosti na vašem studijním programu byste mohli dokončit titul bez použití kalkulu a já si rozhodně myslím, že CS majori toho tolik nepotřebují ' jak jsme se dostali. Ale špatné chování v něm vás vyloučí z nejzajímavějších oblastí počítačové vědy. ' je spousta času stát se webovým vývojářem, jakmile dokončíte studium; když jste ve škole, proč se nepokusit trochu na sebe tlačit?
- @tsleyson Pokud chcete být webovým vývojářem, ušetříte si čas a peníze potřebné k získání titulu CS.
- @ScottB Zdá se, že si pletete počítačovou vědu s programováním.
- @ScottB Kdo ' říká CS = math + programování? Sám jsem se proti tomuto omezenému pohledu už věky zasazoval. Ale máte to také pozadu: matematika je nedílnou součástí CS, stejně jako fyzika. Potřebujeme to , i když to ' nechceme procvičovat . (To znamená, že toto není místo pro tuto diskusi. Pokud chcete pokračovat, připojte se k nám Computer Science Chat .)
Odpověď
Mnoho lidí již aplikace v CS poskytlo. Ale někdy „najdete Calculus, když to nejméně očekáváte:
Přehodnoceny deriváty regulárních výrazů
Pokud víte zautomatizovat tento soubor PDF může být za přečtení.
Komentáře
- Nevidím ' žádný diferenciální počet tam; vidím slovo " derivát ", ale ' nic nevidím připomínající tradiční diferenciální počet.
- Nazývá se ' " formální derivací " a svým způsobem to souvisí s kalkulem. Toto uvidíte také pomocí funkce Generating Functions, některých vzorců souvisejících s diskrétními strukturami a dalších oblastí, kde ' t ve skutečnosti mají " hladkou funkci ".
- @Jay: Důležité není ' Název. Jak rozumí ng kalkul s tím pomáhá?
- Je to vysvětleno na této stránce Wikipedie . Formální derivace je operace na prvcích analgebraické struktury, která obsahuje polynomy, a je formálně " docela podobná " obvyklému pravidlu pro rozlišení polynomy – na rozdíl od toho, co vidí student v kalkulu – však polynomy nepřesahují reálné hodnoty; mohou to být polynomy nad libovolnou " prstenem " (další algebraická struktura). A existují praktické aplikace formální derivace – viděl jsem alespoň jednu (Algebraická kryptanalýza – nedokážu si ' zapamatovat podrobnosti).
Odpověď
Některé konkrétnější příklady:
- Kalkul se používá k odvození delta rule , což umožňuje některým typům neuronových sítí „učit se“.
- Kalkul lze použít k výpočtu Fourierovy transformace oscilační funkce, což je velmi důležité analýza signálu.
- Kalkul se neustále používá v počítačové grafice, což je velmi aktivní pole, protože lidé neustále objevují nové techniky. Pro základní příklad vyzkoušejte Kajiyovu vykreslovací rovnici
- Kalkul je důležitý v oblasti výpočetní geometrie, prozkoumejte křivky a modelování povrchů.
Odpověď
K těmto dalším vynikajícím odpovědím přidávám tento bod: přísnost při testování .
Při vytváření testovacích případů pro některé aplikace jsem musel použít kalkul k předpovědi očekávané doby běhu, velikosti paměti, a zvolit optimální parametry při ladění datových struktur. To zahrnuje pochopení očekávané chyby zaokrouhlování atd.
I když jsou statistiky zmíněny v jiných odpovědích, chtěl bych konkrétně zmínit Monte Carlo algoritmy , jako jsou optimalizační algoritmy a některé skromné streamovací algoritmy založené na matematických principech, které zahrnují kalkul.
Mezi konkrétní odvětví, kde jsem pracoval, kde byl kalkul vyžadován, patří:
-
Finance (vytvoření obchodní platformy)
-
Pojištění (numerická integrace pojistných smluv do scénářů typu „pokud“ pro výpočet očekávaných ztrát pojistky)
-
Logistika (optimalizace konsolidace přepravních cest)
-
Zpracování signálu
Odpověď
Počet – integrální část – se používá přímo v CS jako základ pro přemýšlení o sčítání. Pokud projdete jakoukoli část Knuthovy sekce betonové matematiky o sčítání, rychle poznáte konvence běžné pro kalkul: pochopení některých souvislých případů vám poskytne nástroje pro zvážení diskrétního.
Mnoho použití vaší CS studie zahrnuje programovací systémy, které sledují změny, nebo se v některých případech snaží předpovídat budoucnost. Matematika kolem těchto systémů má kořeny v diferenciálních rovnicích a lineární algebře a diferenciální rovnice jsou … počet. Existují učitelé jako Gibert Strang, který se zasazuje o rychlejší přechod do části diferenciálních rovnic, ale stále jde o podmnožinu počtu. Když změna závisí na změně v jakémkoli systému, začíná být nestabilní (a stabilní) způsoby, které jsou neintuitivní a velmi dobře pochopeno. Abyste pochopili, proč se váš rozumný lineární systém chová nelineárním způsobem, potřebujete nástroje kalkulu nebo je musíte znovu vymyslet pro svůj problémový prostor.
A nakonec CS často vyžaduje čtení a porozumění práci ostatních a počet je první expozicí mnoha sdíleným slovníkům, konvencím a historii.
Komentáře
- " Mnoho využití vaší studie CS zahrnuje programovací systémy, které sledují změny, nebo se v některých případech pokusím předpovědět budoucnost " – nemyslím si, že by to bylo reprezentativní pro moust CS studia.