Viele Informatik-Programme erfordern zwei oder drei Klassen.
Ich frage mich, wie und wann in der Informatik Kalkül verwendet wird. Der CS-Inhalt eines Informatikstudiums konzentriert sich in der Regel auf Algorithmen, Betriebssysteme, Datenstrukturen, künstliche Intelligenz, Software-Engineering usw. Gibt es Zeiten, in denen Calculus in diesen oder anderen Bereichen der Informatik nützlich ist?
education
mathematical-analysis
Sieger
quelle
quelle
Antworten:
Ich kann mir ein paar Kurse vorstellen, die Calculus direkt benötigen würden . Ich habe für die normalerweise obligatorischen Disziplinen für ein Informatik-Studium Fettdruck und für die normalerweise optionalen Kursivdruck verwendet.
Möglicherweise gibt es noch andere - das ist mir ein Rätsel.
Außerdem profitiert man indirekt von einem Kalkülkurs, indem man lernt, Argumente mit technischer Genauigkeit zu argumentieren und zu erklären. Dies ist wertvoller, als die Schüler normalerweise denken.
Schließlich benötigen Sie Calculus, um mit Menschen aus anderen exakten Wissenschaften und Ingenieurwissenschaften interagieren zu können. Und es ist nicht ungewöhnlich, dass ein Informatiker nicht nur sprechen, sondern auch mit einem Physiker oder Ingenieur zusammenarbeiten muss.
quelle
f(0) = 0
,f(1) = 1
,f'(0) = f'(1) = 0
, und Sie können alle anderen Einschränkungen hinzufügen , die Sie interessieren, zum Beispielf'(0.5) = 1
. Vor einiger Zeit habe ich dies verwendet, um verschiedene Interpolationspolynome zum Glätten von Bildern abzuleiten.Dies ist etwas unklar, aber in algebraischen Datentypen taucht Kalkül auf. Für jeden gegebenen Typ ist der Typ seiner Ein-Loch-Kontexte die Ableitung dieses Typs. Sehen Sie sich diesen ausgezeichneten Vortrag an, um einen Überblick über das gesamte Thema zu erhalten. Dies ist eine sehr technische Terminologie.
Algebraische Datentypen
Möglicherweise sind Sie auf Tupel gestoßen, die als Produkttypen bezeichnet werden (andernfalls handelt es sich um das kartesische Produkt zweier Typen). Wir werden dies wörtlich nehmen und die Notation verwenden:
Ein Tupel darstellen, wobei und beide Typen sind. Als nächstes sind Sie möglicherweise auf Summentypen gestoßen. Dies sind Typen, die entweder der eine oder der andere Typ sein können (in Haskell als " Gewerkschaften" , " Varianten" oder als " Entweder " (irgendwie) bezeichnet). Wir werden diesen auch wörtlich nehmen und die Notation verwenden:a b
Diese werden genannt , wie sie sind , weil , wenn ein Typ hat Werte und einen Typ hat Werte, wird der Typ hat Werte.a Na b Nb a+b Na+Nb
Diese Typen sehen aus wie normale algebraische Ausdrücke, und wir können sie tatsächlich als solche (bis zu einem gewissen Punkt) manipulieren.
Ein Beispiel
In funktionalen Sprachen lautet eine gebräuchliche Definition einer Liste (in Haskell hier angegeben) wie folgt:
Dies besagt, dass eine Liste entweder leer ist oder ein Tupel aus einem Wert und einer anderen Liste. Wenn wir das in algebraische Notation umwandeln, erhalten wir:
Wobei einen Typ mit einem Wert darstellt (auch bekannt als Einheitentyp). Durch wiederholtes Einfügen können wir dies auswerten, um eine Definition für :1 L(a)
(Wobei im Sinne einer wiederholten Multiplikation gemeint ist.)xn
Diese Definition sagt dann , dass eine Liste entweder Einheit ist, oder ein Tupel von einem Punkt oder ein Tupel aus zwei Elementen, oder von drei usw., die ist die Definition einer Liste!
Ein-Loch-Kontexte
Nun zu Ein-Loch-Kontexten: Ein Ein-Loch-Kontext ist das, was Sie erhalten, wenn Sie einem Produkttyp einen Wert entnehmen. Nennen wir ein Beispiel:
Für ein einfaches 2-Tupel, das homogen ist, , wenn wir einen Wert herausnehmen, erhalten wir nur ein 1-Tupel, . Es gibt jedoch zwei verschiedene Ein-Loch-Kontexte dieses Typs: den ersten und den zweiten Wert des Tupels. Da es sich also um eines von beiden handelt, können wir schreiben, dass es , was natürlich . Hier kommt die Differenzierung ins Spiel. Lassen Sie uns dies mit einem anderen Beispiel bestätigen:a2 a a+a 2a
Wenn Sie einen Wert aus einem 3-Tupel nehmen, erhalten Sie ein 2-Tupel, aber es gibt drei verschiedene Varianten:
( a , _ , a ) ( _ , a , a )
Je nachdem, wo wir das Loch setzen. Dies ergibt was in der Tat die Ableitung von . Dafür gibt es hier generell einen Beweis .a 33a2 a3
Für unser letztes Beispiel verwenden wir eine Liste:
Wenn wir unseren ursprünglichen Ausdruck für eine Liste nehmen:
Wir können neu arrangieren, um Folgendes zu erhalten:
(Auf den ersten Blick mag dies unsinnig erscheinen, aber wenn Sie die Taylor-Reihe dieses Ergebnisses nehmen, erhalten Sie die Definition, die wir zuvor abgeleitet haben.)
Wenn wir dies nun differenzieren, erhalten wir ein interessantes Ergebnis:
So ist eine Liste zu einem Listenpaar geworden. Dies ist in der Tat sinnvoll: Die beiden erstellten Listen entsprechen den Elementen oberhalb und unterhalb des Lochs in der Originalliste!
quelle
Numerische Methoden. Es gibt umständliche Kalkülprobleme, die nur für bestimmte Anwendungen gelten, und sie erfordern Lösungen, die schneller sind, als ein Mensch praktisch ohne Programm lösen kann. Jemand muss einen Algorithmus entwerfen, der die Lösung berechnet. Ist das nicht das einzige, was Programmierer von Wissenschaftlern trennt?
quelle
Automatisierung - Ähnlich wie in der Robotik kann die Automatisierung eine Menge menschlichen Verhaltens erfordern.
Berechnungen - Das Finden von Lösungen für Beweise erfordert häufig Kalkül.
Visualisierungen - Für die Verwendung erweiterter Algorithmen sind Berechnungen wie cos, sinus, pi und e erforderlich. Besonders wenn Sie Vektoren, Kollisionsfelder und Maschen berechnen.
Logistik- und Risikoanalyse - Feststellen, ob eine Aufgabe möglich ist, welches Risiko damit verbunden ist und wie hoch die Erfolgsquote sein kann.
Sicherheit - Die meisten Sicherheitsmaßnahmen können ohne Kalkül durchgeführt werden. Viele Leute, die Erklärungen wünschen, bevorzugen es jedoch in mathematischen Ausdrücken.
KI - Die Grundlagen der KI können ohne Kalkül angewendet werden. Berechnung fortgeschrittenen Verhaltens, Schwarmintelligenz / Schwarmgeist und auf komplexen Werten basierende Entscheidungsfindung.
Medizinische Berechnungen - Für die Visualisierung der meisten Gesundheitsdaten sind Berechnungen wie EKG-Messungen erforderlich.
Wissenschaft und Technik - Wenn Sie mit fast allen anderen wissenschaftlichen Disziplinen arbeiten, müssen Sie Kalkül anwenden: Luft- und Raumfahrt, Astrologie, Biologie, Chemie oder Technik.
Viele Programmierer können ihre gesamte Karriere ohne Kalkül absolvieren. Es kann jedoch von unschätzbarem Wert sein, wenn Sie bereit sind, die Arbeit zu erledigen. Für mich war es am effektivsten in der Automatisierung, Logistik und Visualisierung. Indem Sie bestimmte Muster identifizieren, können Sie das Muster einfach ignorieren, das Muster imitieren oder eine überlegene Methode entwickeln.
quelle
Tatsache ist, dass es kaum eine Chance gibt, dass Sie jemals einen Kalkül verwenden werden. Praktisch jede andere wissenschaftliche Disziplin verwendet jedoch Kalkül und Sie arbeiten an einem naturwissenschaftlichen Abschluss. Es gibt bestimmte Erwartungen an das, was ein Universitätsabschluss in Naturwissenschaften bedeuten soll, und eines dieser Dinge ist, dass Sie Kalkül kennen. Auch wenn Sie es nie benutzen werden.
Es ist in Ordnung, wenn Sie im Kalkül schlecht abschneiden, aber achten Sie darauf, dass Sie sich etwas um diskrete Mathematik bemühen. Es gibt eine Menge realer Programmierprobleme, bei denen diskrete Mathematik ins Spiel kommt und Unkenntnis ihrer Prinzipien Sie vor anderen Programmierern in Verlegenheit bringen kann.
quelle
Viele Leute haben bereits Anwendungen in CS bereitgestellt. Aber manchmal finden Sie Kalkül, wenn Sie am wenigsten erwarten:
Derivate mit regulären Ausdrücken werden erneut untersucht
Wenn Sie Automaten kennen, ist dieses PDF möglicherweise lesenswert.
quelle
Einige spezifischere Beispiele:
quelle
Zu diesen anderen hervorragenden Antworten füge ich diesen Punkt hinzu: Strenge beim Testen .
Bei der Erstellung von Testfällen für einige Anwendungen musste ich Berechnungen verwenden, um die erwarteten Laufzeiten und Speichergrößen vorherzusagen und optimale Parameter für die Optimierung von Datenstrukturen auszuwählen. Dies schließt das Verstehen des erwarteten Rundungsfehlers usw. ein.
Während die Statistik in anderen Antworten erwähnt wird, möchte ich speziell Monte-Carlo-Algorithmen erwähnen , z. B. Optimierungsalgorithmen und einige sparsame Streaming-Algorithmen , die auf mathematischen Prinzipien basieren, einschließlich der Analysis.
Bestimmte Branchen, in denen ich gearbeitet habe, in denen Kalkül erforderlich war, umfassen:
Finanzen (Erstellen einer Handelsplattform)
Versicherung (numerische Integration von Versicherungsverträgen in Was-wäre-wenn-Szenarien zur Berechnung der erwarteten Versicherungsverluste)
Logistik (Optimierung der Konsolidierung von Transportwegen)
Signalverarbeitung
quelle
Kalkül - der integrale Teil - wird direkt in CS als Grundlage für das Nachdenken über Summation verwendet. Wenn Sie einen Teil von Knuths Konkreten Mathematik-Abschnitten über Summation durcharbeiten, werden Sie die für die Analysis üblichen Konventionen schnell erkennen: Wenn Sie einige der kontinuierlichen Fälle verstehen, erhalten Sie Werkzeuge, um die diskreten zu berücksichtigen.
Bei vielen Anwendungen Ihrer CS-Studie handelt es sich um Programmiersysteme, die Änderungen überwachen oder in einigen Fällen versuchen, die Zukunft vorherzusagen. Die Mathematik um diese Systeme herum wurzelt in Differentialgleichungen und linearer Algebra, und Differentialgleichungen sind ... Kalkül. Es gibt Lehrer wie Gibert Strang, die dafür eintreten, sich schneller mit dem Teil der Differentialgleichungen zu befassen, aber es ist immer noch eine Teilmenge der Analysis. Wenn eine Änderung von einer Änderung in einem System abhängt, wird es auf eine Weise instabil (und stabil), die sowohl nicht intuitiv als auch sehr gut verständlich ist. Um zu verstehen, warum sich Ihr vernünftiges lineares System nichtlinear verhält, benötigen Sie entweder die Werkzeuge der Analysis oder Sie müssen sie für Ihren Problemraum neu erfinden.
Und schließlich erfordert CS oft das Lesen und Verstehen der Arbeit anderer, und Kalkül ist der erste Kontakt mit vielen gemeinsamen Vokabeln, Konventionen und Geschichten.
quelle