Odpowiedź
Przychodzi mi do głowy kilka kursów, które wymagałyby analizy Calculus, bezpośrednio . Użyłem pogrubienia w przypadku dyscyplin, które są zwykle obowiązkowe dla uzyskania stopnia informatycznego, i kursywy w przypadku zazwyczaj opcjonalnych.
- Grafika komputerowa / Przetwarzanie obrazu, a tutaj będziesz również potrzebować geometrii analitycznej i algebry liniowej, mocno ! Jeśli pójdziesz tą ścieżką, możesz również zechcieć przestudiować trochę geometrii różniczkowej (która ma wielowymiarowy rachunek różniczkowy jako minimalny warunek wstępny). Ale „Będziesz potrzebował tutaj Rachunku Calculus nawet do bardzo podstawowych rzeczy: spróbuj wyszukać na przykład„ Transformację Fouriera ”lub„ Wavelets ”- są to dwa bardzo podstawowe narzędzia dla osób pracujących z obrazami.
- Optymalizacja , głównie nieliniowa, gdzie Rachunek wielowymiarowy jest podstawowym językiem używanym do tworzenia wszystkiego. Jednak nawet optymalizacja liniowa korzysta z funkcji Calculus ( pochodna funkcji celu jest absolutnie ważna)
- Prawdopodobieństwo / Statystyka . Nie można ich poważnie zbadać bez Rachunek wielowymiarowy.
- Uczenie maszynowe , które intensywnie wykorzystuje statystyki (a co za tym idzie, rachunek wielowymiarowy)
- Nauka o danych i powiązane przedmioty, które również używają wielu statystyk;
- robotyka , gdzie będziesz musiał modelować fizyczne ruchy robota, więc będziesz musiał znać pochodne cząstkowe i gradienty.
- Dyskretna matematyka i kombinatoryka ( tak! , możesz potrzebować funkcji Calculus do dyskretnego liczenia!) – jeśli poważnie podchodzisz do generowania funkcji, musisz wiedzieć, jak integrować i wyprowadzać pewne formuły. Jest to przydatne w przypadku Analysis of Algorithms (patrz książka Sedgewicka i Flajoleta „Analysis of Algorithms”). Podobnie, szereg Taylora i rachunek różniczkowy mogą być przydatne w rozwiązywaniu pewnych rodzajów relacji powtarzania, które są używane w analizie algorytmów.
- Analiza algorytmów , gdzie od samego początku używasz pojęcia limitu (zobacz notację Landaua, „mały $ o $ ” – to „s zdefiniowane za pomocą limitu)
Mogą istnieć inne – to jest tuż nad moją głową.
A poza tym jedna korzyść pośrednio z kursu Calculus, ucząc się, jak rozumować i wyjaśniać argumenty z technicznym rygorem. Jest to bardziej wartościowe niż uczniowie zwykle myślisz.
Wreszcie – będziesz potrzebować Rachunku Calculus, aby, no cóż, wchodzić w interakcje z ludźmi z innych ścisłych nauk ścisłych i inżynierii. Nie jest też rzadkością, że informatyk musi nie tylko mówić współpracować z fizykiem lub inżynierem.
Komentarze
- Być może miałeś inne doświadczenie, ale uważam, że rachunek różniczkowy jest całkiem bezużyteczny do uczenia się, jak rygorystycznie rozumować i wyjaśniać argumenty. Uczono go na pamięć i dopasowywanie wzorców, podobnie jak algebra i geometria w liceum.Z drugiej strony był to warunek wstępny kilku wyższych klas matematyki, które uczyły tych umiejętności, więc przypuszczam, że nie było to ' t całkowicie bezużyteczne.
- Mogę całkowicie odnieść się do ostatniego punktu (korzyści pośrednie). Pracując nad teorią języków programowania, rzadko korzystałem bezpośrednio z rachunku różniczkowego. Być może najbardziej bezpośrednie zastosowanie miało miejsce w probabilistycznych modelach obliczeniowych (np. Plotkin & probabilistyczne domeny potęgowe Jonesa). Jednak mój kurs rachunku różniczkowego dotyczył głównie udowadniania rzeczy, a to było bardzo, bardzo cenne. Jeden lub dwa kursy rachunku różniczkowego są potrzebne IMHO w każdym poważnym programie CS, wraz z trochę więcej matematyki (matematyka dyskretna, logika, algebra liniowa, analiza numeryczna, … i prawdopodobnie kategorie, topologia, algebra, …).
- Tutaj ' to przykład tego, jak potrzebowałem rachunku różniczkowego w grafice komputerowej: wszystkie funkcje płynnej interpolacji będą miały zasadniczo postać
f(0) = 0
, f(1) = 1
, f'(0) = f'(1) = 0
i możesz dodać inne, które Cię interesują, na przykład f'(0.5) = 1
. Jakiś czas temu użyłem tego do wyprowadzenia różnych wielomianów interpolacji do wygładzania obrazów.
- Robotykę można prawdopodobnie rozszerzyć na dowolny rodzaj modelowania fizycznego (który, jak sądzę, obejmuje również CG, jeśli chodzi o oświetlenie, więc ' nazywają to modelowaniem fizyki kinetycznej). Obejmuje to przyspieszenie / prędkość, odbicia / sprężyny / odkształcenia, regulatory PID, akustykę, grawitację …
- I ' ll mistrz pośrednio wskazuje w ten sposób: lepiej niż jakiekolwiek inne zajęcia, do których uczęszczają, Calculus uczy uczniów, że potrafią ' liczyć problemy i oszacować, ile pracy będzie wymagało.
Odpowiedź
To jest trochę niejasne, ale rachunek różniczkowy pojawia się w algebraicznych typach danych. Dla dowolnego typu, typ kontekstów z jednym otworem jest pochodną tego typu. Zobacz ten wspaniały wykład , aby zapoznać się z omówieniem całego tematu. To jest bardzo techniczna terminologia, więc wyjaśnijmy.
Algebraiczne typy danych
Mogłeś spotkać krotki określane jako typy produktów (jeśli nie, to dlatego, że są to kartezjańskie produkty dwóch typów). Weźmiemy to dosłownie i użyjemy notacji:
$$ a * b $$
Aby przedstawić krotka, gdzie $ a $ i $ b $ to oba typy. Następnie możesz natknąć się typy sumy są to typy, które mogą być jednym lub drugim typem (znane jako związki , warianty lub albo wpisz (kinda) w Haskell). Weźmiemy również to dosłownie i użyjemy notacji:
$$ a + b $$
Nazywane są tak, jak są, ponieważ jeśli typ $ a $ ma $ N_a $ , a typ $ b $ ma wartości $ N_b $ , a następnie typ $ a + b $ ma $ N_a + N_b $ wartości.
Te typy wyglądają jak zwykłe wyrażenia algebraiczne i w rzeczywistości możemy nimi manipulować jako takimi (do pewnego momentu).
Przykład
W językach funkcjonalnych powszechna definicja listy (podana tutaj w Haskellu) jest następująca:
data List a = Empty | Cons a List
To mówi, że lista jest albo pusta, albo jest krotką wartości i inną listą. Przekształcając to w notację algebraiczną, otrzymujemy:
$$ L (a) = 1 + a * L (a) $$
Gdzie $ 1 $ reprezentuje typ z jedną wartością (inaczej typ jednostki). Wstawiając wielokrotnie, możemy to ocenić, aby uzyskać definicję dla $ 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 … $$
(Gdzie $ x ^ n $ oznacza powtarzające się mnożenie.)
Ta definicja mówi wtedy, że lista jest albo jednostką, albo krotką jeden element lub krotka dwóch elementów lub trzech itd., co jest definicją listy!
Konteksty z jednym otworem
Teraz na do kontekstów z jedną dziurą: kontekst z jedną dziurą jest tym, co otrzymujesz, gdy „usuniesz wartość” z typu produktu. Podajmy przykład:
Dla prostej 2-krotnej krotki, która jest jednorodna, $ a ^ 2 $ , jeśli wyciągniemy wartość , otrzymujemy po prostu jedną krotkę, $ a $ .Ale są dwa różne konteksty tego typu z jednym otworem: mianowicie pierwsza i druga wartość krotki. Więc ponieważ jest to jeden z tych, możemy napisać, że jest to $ a + a $ , czyli oczywiście $ 2 a $ . I tu do gry wkracza zróżnicowanie. Potwierdźmy to na innym przykładzie:
Wyjęcie wartości z 3 krotek daje 2 krotki, ale są trzy różne warianty:
$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$
W zależności od tego, gdzie umieścimy dziurę. To daje nam $ 3a ^ 2 $ , co jest rzeczywiście pochodną $ a ^ 3 $ . Jest na to ogólny dowód tutaj .
Jako ostatni przykład użyjmy listy:
Jeśli weźmiemy nasze oryginalne wyrażenie jako listę:
$$ L (a) = 1 + a * L (a) $$
Możemy zmienić kolejność, aby uzyskać:
$$ L (a) = \ frac {1} {1 – a} $$
(Na pozór to może wydawać się nonsensem, ale jeśli weźmiesz pod uwagę szereg Taylor tego wyniku, otrzymasz definicję, którą wyprowadziliśmy wcześniej.)
Teraz, jeśli to rozróżnimy, g et interesujący wynik:
$$ \ frac {\ partial L (a)} {\ part a} = (L (a)) ^ 2 $$
W ten sposób jedna lista stała się parą list. W rzeczywistości ma to sens: dwie utworzone listy odpowiadają elementom powyżej i poniżej dziury w pierwotnej liście!
Komentarze
Odpowiedź
Metody numeryczne. Istnieją uciążliwe problemy z rachunkiem różniczkowym, które są unikalne dla określonych aplikacji i wymagają rozwiązań szybszych niż człowiek może rozwiązać praktycznie bez programu. Ktoś musi zaprojektować algorytm, który obliczy rozwiązanie. Czy to nie jedyna rzecz, która oddziela programistów od naukowców?
Komentarze
Odpowiedź
Automatyzacja – podobnie jak robotyka, automatyzacja może wymagać kwantyfikacji wielu ludzkich zachowań.
Obliczenia – Znajdowanie rozwiązań dla dowodów często wymaga rachunku różniczkowego.
Wizualizacje – Korzystanie z zaawansowanych algorytmów wymaga rachunku różniczkowego, takiego jak cos, sinus, pi i e. Szczególnie kiedy jesteś kalkulatorem wektory, pola kolizyjne i tworzenie siatki.
Logistyka i analiza ryzyka – Określanie, czy zadanie jest możliwe, związane z tym ryzyko i możliwy wskaźnik sukcesu.
Bezpieczeństwo – Większość zabezpieczeń można wykonać bez rachunku różniczkowego; jednak wiele osób, które chcą wyjaśnień, woli to w wyrażeniach matematycznych.
AI – Podstawy sztucznej inteligencji można używać bez rachunku różniczkowego; jednak obliczanie zaawansowanych zachowań, inteligencji roju / umysłów roju i podejmowania decyzji opartych na złożonych wartościach.
Obliczenia medyczne – Wizualizacja większości danych dotyczących zdrowia wymaga rachunku różniczkowego, takiego jak odczyt EKG.
Nauka & Inżynieria – Kiedy praca z niemal każdą inną dyscypliną naukową wymaga rachunku różniczkowego: lotnictwo, astrologia, biologia, chemia lub inżynieria.
Wiele osób w programowaniu może przejść całą karierę bez za pomocą rachunku różniczkowego; Jednak może się to okazać nieocenione, jeśli chcesz wykonać tę pracę. Dla mnie jest to najbardziej efektywne w automatyzacji, logistyce i wizualizacji. Identyfikując określone wzorce, możesz po prostu zignorować wzór, naśladować go lub opracować metoda nadrzędna razem.
Komentarze
Odpowiedź
Faktem jest że istnieje bardzo mała szansa, że kiedykolwiek użyjesz rachunku różniczkowego. Jednak praktycznie każda inna dyscyplina naukowa używa rachunku różniczkowego, a ty pracujesz nad stopniem naukowym. Istnieją pewne oczekiwania co do tego, co ma oznaczać stopień naukowy na uniwersytecie, a jedną z nich jest znajomość rachunku różniczkowego. Nawet jeśli nigdy jej nie użyjesz.
Nie ma problemu, jeśli słabo sobie radzisz z rachunkiem różniczkowym, ale upewnij się, że włożysz trochę wysiłku w matematykę dyskretną. Istnieje wiele rzeczywistych problemów programistycznych, w których do gry wkracza matematyka dyskretna, a nieznajomość jej zasad może wprawić Cię w zakłopotanie przed innymi programistami.
Komentarze
Odpowiedź
Odpowiedź
Bardziej szczegółowe przykłady:
- Rachunek służy do wyprowadzenia reguła delta , która pozwala niektórym typom sieci neuronowych „uczyć się”.
- Rachunek może być użyty do obliczenia transformaty Fouriera funkcji oscylacyjnej, co jest bardzo ważne w analiza sygnału.
- Rachunek różniczkowy jest używany przez cały czas w grafice komputerowej, która jest bardzo aktywną dziedziną, ponieważ ludzie nieustannie odkrywają nowe techniki. Aby zapoznać się z podstawowym przykładem, zobacz równanie renderowania Kajiyi
- Rachunek różniczkowy jest ważny w dziedzinie geometrii obliczeniowej, badaj modelowanie krzywych i powierzchni.
Odpowiedź
Do innych doskonałych odpowiedzi dodaję ten punkt: rygor testowania .
Tworząc przypadki testowe dla niektórych aplikacji, musiałem skorzystać z rachunku różniczkowego, aby przewidzieć spodziewane czasy działania, rozmiary pamięci, i wybierz optymalne parametry podczas strojenia struktur danych. Obejmuje to zrozumienie oczekiwanego błędu zaokrągleń itp.
Chociaż statystyki są wymienione w innych odpowiedziach, chciałbym szczególnie wspomnieć o algorytmach Monte-carlo , na przykład algorytmy optymalizacji i niektóre oszczędne algorytmy przesyłania strumieniowego oparte na zasadach matematycznych, które obejmują rachunek różniczkowy.
Specyficzne branże, w których pracowałem, w których rachunek był wymagany, to:
-
Finanse (tworzenie platformy handlowej)
-
Ubezpieczenia (numeryczna integracja polis ubezpieczeniowych w scenariuszach warunkowych w celu obliczenia oczekiwanych strat polis)
-
Logistyka (optymalizacja konsolidacji tras transportowych)
-
Przetwarzanie sygnału
Odpowiedź
Calculus – część całkowa – jest używana bezpośrednio w CS jako podstawa do myślenia o sumowaniu. Jeśli przejrzysz jakąkolwiek część sekcji Matematyki konkretnej Knutha poświęconej sumowaniu, szybko rozpoznasz konwencje wspólne dla rachunku różniczkowego: zrozumienie niektórych przypadków ciągłych daje narzędzia do rozważenia tego, co dyskretne.
Wiele zastosowań Twoich studiów CS obejmuje systemy programowania, które monitorują zmiany lub w niektórych przypadkach próbują przewidzieć przyszłość. Matematyka wokół tych systemów jest zakorzeniona w równaniach różniczkowych i algebrze liniowej, a równania różniczkowe to … rachunek różniczkowy. Są nauczyciele tacy jak Gibert Dziwny, który opowiada się za szybszym przejściem do części równań różniczkowych, ale nadal jest to podzbiór rachunku różniczkowego. Kiedy zmiana zależy od zmiany w jakimkolwiek systemie, zaczyna być niestabilna (i stabilna) w sposób, który jest zarówno nieintuicyjny, jak i bardzo dobrze zrozumiane. Aby zrozumieć, dlaczego twój rozsądny system liniowy zachowuje się w sposób nieliniowy, potrzebujesz narzędzi rachunku różniczkowego lub musisz je ponownie wymyślić dla swojej przestrzeni problemowej.
I wreszcie CS często wymaga czytania i zrozumienia pracy innych, a analiza matematyczna jest pierwszym kontaktem z mnóstwem wspólnego słownictwa, konwencji i historii.
Komentarze