Wissenschaftliches Rechnen vs. numerische Analyse

9

Ich bin ein Doppel-Hauptfach in Informatik und Mathematik. Ich liebe beide Fächer. Ich denke an eine Karriere als Absolvent, vielleicht im Bereich wissenschaftliches Rechnen. Was ist der wirkliche Unterschied zwischen wissenschaftlichem Rechnen und numerischer Analyse? Werden sie als Karrieren studiert?

Klinge
quelle

Antworten:

18

Wikipedia gibt eine gute Definition

Die numerische Analyse ist die Untersuchung von Algorithmen, die numerische Approximation (im Gegensatz zu allgemeinen symbolischen Manipulationen) für die Probleme der mathematischen Analyse verwenden (im Unterschied zur diskreten Mathematik).

Numerische Analysten sind normalerweise daran interessiert, mathematische Ergebnisse über ihre Algorithmen nachzuweisen, einschließlich Fehlergrenzen (wie groß kann der Fehler in der Approximation sein), Konvergenz iterativer Schemata (nähert sich die Approximation der korrekten Grenze), Reihenfolge und Konvergenzrate (wie schnell) Konvergiert der Algorithmus) und Rechenaufwand (Begrenzung der Anzahl der für einen Algorithmus erforderlichen Operationen). Es ist möglich, in diesen Bereichen zu forschen, ohne jemals einen Computer zu verwenden, und einige wichtige Ergebnisse stammen sogar aus der Zeit vor der Entwicklung digitaler Computer in den 1950er Jahren.

Wikipedia hat auch eine Definition für "Scientific Computing"

Computerwissenschaft (auch wissenschaftliches Rechnen oder wissenschaftliches Rechnen (SC)) ist ein schnell wachsendes multidisziplinäres Gebiet, das fortschrittliche Rechenfähigkeiten nutzt, um komplexe Probleme zu verstehen und zu lösen. Die Computerwissenschaft verbindet drei verschiedene Elemente: [1] Algorithmen (numerisch und nicht numerisch) und Modellierungs- und Simulationssoftware, die entwickelt wurden, um wissenschaftliche (z. B. biologische, physikalische und soziale), technische und geisteswissenschaftliche Probleme zu lösen. Computer- und Informationswissenschaft, die sich entwickelt und entwickelt optimiert die fortschrittlichen Systemhardware-, Software-, Netzwerk- und Datenverwaltungskomponenten, die zur Lösung rechenintensiver Probleme erforderlich sind. Die Computerinfrastruktur, die sowohl die Lösung wissenschaftlicher und technischer Probleme als auch die Entwicklung von Computer- und Informationswissenschaften unterstützt.

Beim wissenschaftlichen Rechnen geht es viel mehr um praktische Aspekte, um genaue Lösungen aus Computern herauszuholen. Dies baut offensichtlich auf den Ergebnissen der numerischen Analyse auf, stützt sich aber auch stark auf Computerarchitektur und Software-Engineering. Obwohl die Forschung im Bereich des wissenschaftlichen Rechnens häufig um ihrer selbst willen betrieben wird und um Hardware und Software zu entwickeln, die in vielen Anwendungen von Nutzen sein werden, gibt es auch viele Forschungen im Bereich des wissenschaftlichen Rechnens, die von der Notwendigkeit getrieben werden, bestimmte wissenschaftliche und technische Probleme zu lösen. Beispielsweise hat die Entwicklung globaler Klimamodelle zur Untersuchung des Klimawandels auch das wissenschaftliche Rechnen vorangetrieben.

Die numerische Analyse findet sich am häufigsten in den Abteilungen Mathematik und Angewandte Mathematik, während das wissenschaftliche Rechnen ein interdisziplinäres Feld ist, das in den Abteilungen Informatik, Mathematik sowie in den verschiedenen Ingenieur- und Naturwissenschaften zu finden ist.

Brian Borchers
quelle
1
In der guten alten Zeit gab es in einigen Informatikabteilungen viele numerische Analysen (Fakultät, Studenten, Klassen, Forschung). Ein Großteil dieser Arbeit war der Entwicklung von Algorithmen und Software gewidmet, die sich gut zur Lösung tatsächlicher Probleme in Wissenschaft, Technik, Statistik (statistisches Rechnen), Management / Operations Research usw. eignen. Es ging nicht nur darum, Theoreme für sich selbst zu beweisen.
Mark L. Stone
Wäre angewandte Mathematik für beide ein guter Ausgangspunkt?
Klinge
1
Ja, ein Hintergrund in angewandter Mathematik wäre in beide Richtungen hilfreich. Die eigentliche Frage ist, was Sie zu dem hinzufügen möchten, was Sie bereits haben. Die Breite (Informatik und einige naturwissenschaftliche oder technische Bereiche, in denen Computerwissenschaften eingesetzt werden) ist in einem interdisziplinären Bereich wie der Computerwissenschaft sehr hilfreich.
Brian Borchers
6

Als jemand, der während der Graduiertenschule vom Ingenieurwesen zum wissenschaftlichen Rechnen gewechselt ist, als zufälliger Bedarf für die Art von Arbeit, die ich hier geleistet habe, sind meine zwei Cent:

  • Die numerische Analyse würde sich auf die mathematische und algorithmische Seite der Dinge konzentrieren. Finden Sie heraus, welche Techniken zur Lösung eines bestimmten mathematischen Problems verwendet werden müssen, für das es keine analytische Lösung gibt, z. B. die Matrix-Manipulationsoptimierung der PDE von ODE usw.
  • Die numerische Analyse erfordert heutzutage oft einen erheblichen Programmieraufwand, übersetzt jedoch die mathematischen Ideen eines effizienten Algorithmus in Computercode.
  • Traditionell war FORTRAN die Hauptstütze. Sie können aber auch erwarten, mit C / C ++ und heutzutage Python zu arbeiten. Einige Dinge könnten auch Pakete wie Mathematica oder MATLAB beinhalten
  • Wenn man zu Scientific Computing kommt, ist dies eher ein angewandter Bereich, in dem versucht wird, mithilfe von Computerressourcen ein wissenschaftliches Problem zu lösen. Dies kann dazu führen, dass viele Muttern und Schrauben funktionieren. zB Codes kompilieren, Betriebssysteme und Bibliotheken installieren, Optionen einrichten, damit wissenschaftlicher Code funktioniert usw.
  • Da heutzutage einiges an wissenschaftlichem Rechnen parallele Berechnungen umfasst, sind Sie höchstwahrscheinlich Computerclustern, Supercomputern, Cloud-Computing usw.
  • Während Sie im wissenschaftlichen Rechnen mit Programmiersprachen wie C / FORTRAN usw. arbeiten, erwarten Sie, dass Sie viel mit den "Klebe-" / Skriptsprachen wie Bash / Perl usw. arbeiten.
  • Sie werden wahrscheinlich viel mit Linux-ey-Systemen arbeiten und am Ende ziemlich kompetent an der Kommandozeile und mit Tools wie sed / awk usw. arbeiten. Einige Leute sind am Ende Systemadministratoren.
  • Viele wissenschaftliche Berechnungen umfassen Visualisierung und Datenspeicherung / Datenwiederherstellung. Viele Menschen werden Experten für Big Data / Hadoop / Map Reduce usw.
  • Die numerische Analyse ist im Wesentlichen eine Spezialaufgabe. Sie können gut rechnen und programmieren und lösen ein bestimmtes Problem sehr effizient. Manchmal erfinden wir unterwegs ein oder zwei Algorithmen. Scientific Computing ist in gewissem Sinne eine allgemeine Aufgabe. Relativ gesehen. Sie verwenden häufig verschiedene Tools zusammen, um ein bestimmtes angewandtes Problem zu lösen.
  • Bei vielen wissenschaftlichen Berechnungen kann an den Schnittstellen gearbeitet werden. zB Schnittstellen zwischen zwei Programmen. Wo Sie Daten zur Verarbeitung von einem Werkzeug zu einem anderen weiterleiten. Mit einigen Formatmanipulationen auf dem Weg. dh Sie versuchen, verschiedene Tools dazu zu bringen, miteinander zu sprechen, wenn die Tools nicht wirklich dafür ausgelegt sind, miteinander zu kommunizieren.
  • Ein wissenschaftlicher Computer-Typ muss oft verschiedene Datenformate beherrschen. Viele Instrumente haben ihre eigenen proprietären Formate und jemand muss die Daten in ein Format dekodieren, das dem numerischen Algorithmus gefällt.
  • Einige Mitarbeiter von Scientific Computing besetzen am Ende "Helpdesks" sehr spezialisierter Art (die auch gut bezahlen), bei denen man einem generischen Forscher / Studenten / Prof. im Wesentlichen hilft, die Computerressourcen einer Institution zu nutzen, um das möglicherweise auftretende Problem zu lösen. Das heißt, der wissenschaftliche Computerfachmann ist mit einer Vielzahl von Codes und Paketen vertraut und kann einen Benutzer beraten, mit welchem ​​Tool das Problem am besten rechnerisch gelöst werden kann.
  • Sie können am Ende Codes auf andere Hardware portieren. Oder Parallelisierung von Legacy-Codes, die im seriellen Modus geschrieben wurden. Oder Codes optimieren, um schneller zu laufen. Einige Leute konvertieren Codes, um sie in GPUs / CUDA usw. auszuführen, damit sie schneller ausgeführt werden.
  • Ein gutes Stück wissenschaftliches Rechnen beinhaltet die Fehlerbehebung. Oft Codes, die andere Leute geschrieben haben. Um herauszufinden, warum sie auf bestimmter Hardware usw. abstürzen
  • Oft sind Sie der Mittelsmann zwischen Spezialisten. Ich musste beispielsweise in Teams mit Hardcore-Programmierern, Biologen, die Berechnungen benötigen, aber selbst nicht viel codieren können, Systemadministratoren, Netzwerkgurus, Technikern, die Rechenzentren besetzen usw. arbeiten.
  • Die Mitarbeiter von Scientific Computing können gebeten werden, wichtige Eingaben zu machen, wenn neue Hardware gekauft oder die Architektur eines Computersystems festgelegt wird. Bei diesen Aufgaben arbeiten Sie sehr eng mit Vertriebsingenieuren und Technologen von Dell / Cray / IBM / Infiniband / Cisco usw. zusammen.

Hoffe das gibt dir eine Vorstellung von den Feldern!

Ein letzter Ratschlag (nehmen Sie es mit einer großen Prise Salz!): Wenn Sie gut mit Mathematik umgehen können, wie Präzision und Detailgenauigkeit, Lesen von Papieren und Herausfinden von Details nach erheblichen, konzentrierten Anstrengungen, bei denen es auf individuelle Intelligenz ankommt und lange Zeiträume von Dauer umfasst Bemühen Sie sich dann um die numerische Analyse.

Auf der anderen Seite, wenn Sie gerne Generalist sind, Bereiche wechseln, Genie durch harte Arbeit kompensieren, ein Alleskönner sein, bereit sein, mit verschwommenen und vagen, oft widersprüchlichen Empfehlungen zu arbeiten, gerne mit Teams zu arbeiten und mit Konflikten umzugehen , enge Fristen, Umgang mit MBAs usw. Dann werden Sie ein wissenschaftlicher Computer-Typ.

Nehmen Sie dies wieder mit einer großen Prise Salz. Der Umstand eines jeden Menschen ist etwas Besonderes. Und die meisten von uns sind zufällig dort gelandet, wo wir es getan haben, und nicht, weil wir es so geplant haben. :) :)

neugierig_katze
quelle
0

Sie möchten ein angewandter Mathematiker sein. Dies ist ein Hauptfach, das an vielen Universitäten ihrer Ingenieurschule auch als Promotion angeboten wird. Obwohl meiner Erfahrung nach Mathematik die wichtigere Fähigkeit ist, kann ein technischer Hintergrund in der formalen Informatik hilfreich sein, und Sie erhalten ihn möglicherweise nicht anderswo. Achten Sie nur darauf, dass Sie nicht zu weit in das CS-Kaninchenloch gehen, da Sie sonst möglicherweise CS-Forschung betreiben, die Sie von praktischen Anwendungen abhält.

Um Ihre spezifische Frage zu beantworten, wird ein angewandter Mathematiker numerische Methoden und Analysen erforschen und möglicherweise mit wissenschaftlichen Forschern zusammenarbeiten, um in verschiedenen Bereichen wissenschaftliches Rechnen durchzuführen. Wenn Sie sich speziell dem wissenschaftlichen Rechnen widmen möchten, möchten Sie möglicherweise in eine wissenschaftliche Forschungsdisziplin wie Computerchemie, Biophysik, Klima, Bioinformatik usw. eintreten.

user21387
quelle
Wenn Sie meine Frage lesen, werden Sie sehen, dass ich ein Doppelmajor bin. Ich widme meinem Hauptfach Mathematik mehr Zeit als meinem Hauptfach CS. Ich mache mir überhaupt keine Sorgen, dass ich am
Blade gehen könnte
Ich habe Ihre Frage gelesen, deshalb habe ich "und als Doktor" gesagt. Die Antwort soll auch anderen hilfreich sein, die möglicherweise kein Hauptfach gewählt haben. Viel Glück bei deiner Suche. Doktoranden sind in der Regel sehr flexibel. Suchen Sie sich also eine Gruppe, die etwas tut, das Ihnen gefällt, und sorgen Sie sich nicht zu sehr darum, in einen Bereich eingeschlossen zu werden.
user21387