Dimensionsloser Ballon. Utilitaristische Dimensionsanalyse Magie


Ich wurde aufgefordert, diesen kurzen Artikel durch den kĂŒrzlich veröffentlichten Artikel ĂŒber HabrĂ© Dynamics des Vertikalfluges eines Flugzeugs zu schreiben, das leichter als Luft ist . Ich wollte einen Kommentar schreiben, aber er entwickelte sich schnell zu etwas mehr und es scheint nĂŒtzlicher zu sein.

Der Originalartikel enthĂ€lt ein Beispiel fĂŒr die Berechnung der Dynamik eines Ballons oder eines Ballons in der AtmosphĂ€re. In diesem Fall werden sowohl der Luftwiderstand als auch Gradienten der Dichte und Temperatur der AtmosphĂ€re berĂŒcksichtigt, so dass sich das Problem auf eine nichttriviale Differentialgleichung reduziert, die mit der Python-Sprache erfolgreich numerisch gelöst werden kann. In dem Artikel ist alles in Ordnung: Der Ball startete, stoppte wo nötig, wir bekamen sowohl die maximale Höhe als auch die Zeit des Aufstiegs. Ich brauchte einen weiteren Ball, um mehr zu starten, ihn grĂŒndlicher zu laden oder Wasserstoff in Helium umzuwandeln - kein Problem - die Parameter im Programm zu Ă€ndern und alles erneut zu berechnen. Das Programm ist verstĂ€ndlich, linear, es funktioniert. Was kann hier also verbessert werden, wenn das Modell nicht kompliziert ist?

Sie können das Modell und die Berechnungen universell nĂŒtzlich machen, nicht fĂŒr einen bestimmten Ball, sondern fĂŒr eine Vielzahl von Aufgaben. Es ist möglich, eine optimale Berechnungsgenauigkeit bei der numerischen Integration der Differentialgleichung sicherzustellen. Sie mĂŒssen die Integrationsgrenzen und -schritte bei der Berechnung in einer Vielzahl von Parametern nicht mehr manuell festlegen. Schließlich können Sie ohne numerische Lösung viel ĂŒber die Dynamik des Fluges unseres Balls erzĂ€hlen. Und fĂŒr all dies gibt es einen alten Trick, wahr und zuverlĂ€ssig, der einst fĂŒr Berechnungen auf Computern und bevor sie erscheinen, obligatorisch ist und jetzt optional und oft mit Magie und Kunst verbunden ist - Gleichungen in eine dimensionslose Form und ihre eigenen MaßstĂ€be zu bringen . Ich werde das Problem der Luftfahrt als Beispiel verwenden und zeigen, wie die Analyse des Problems mit dieser Technik aussagekrĂ€ftiger und eleganter wird. Und dann werde ich erklĂ€ren, warum dies fĂŒr Programmierer wichtig sein kann und warum dieser Artikel im Hub „Functional Programming“ landete.

Das Wesentliche beim Reduzieren von Gleichungen auf ihre eigenen Skalen besteht darin, solche Maßeinheiten fĂŒr Zeit, Entfernungen, Massen, Ströme und andere dimensionale Variablen zu finden und einzufĂŒhren, in denen die Aufgabe die einfachste und eleganteste Form annimmt. Solche Einheiten werden als charakteristische oder geeignete Skalen des Problems bezeichnet. Gleichzeitig wird die Anzahl der Parameter, die sich auf die Lösung auswirken, erheblich reduziert. Wenn Sie das GlĂŒck haben, auf eine selbstĂ€hnliche Lösung zu stoßen, verschwinden die Parameter möglicherweise vollstĂ€ndig!

Normalerweise lernt man diese Technik kennen, wenn man die Dynamik eines harmonischen Oszillators untersucht und die Bewegungsgleichung in eine kanonische Form bringt. UnabhĂ€ngig vom Oszillator (groß oder klein, nieder- oder hochfrequent, mechanisch oder elektromagnetisch) messen Sie die Zeit nicht in Sekunden, sondern in Perioden freier Schwingungen und die Amplitude nicht in Metern, sondern beispielsweise in der GrĂ¶ĂŸe der anfĂ€nglichen Abweichung Dann hat die Gleichung fĂŒr jeden Linearoszillator dieselbe Form:

x " + 2 z e t a x ' + x = 0 

Es reicht aus, die Eigenschaften der Lösungen dieser Gleichung zu untersuchen, um alles ĂŒber alle harmonischen viskosen Reibungsoszillatoren zu wissen. Ohne Reibung verschwinden die Parameter vollstĂ€ndig im Problem, und wir erhalten als Lösung eine beispielhafte Sinuskurve. Trotzdem sind andere Sinuskurven bis zu einer einfachen linearen Änderung der Koordinaten absolut identisch, so dass es keinen Sinn macht, sie einzeln zu analysieren.

Dies ist auch bei der Analyse von Kurven zweiter Ordnung der Fall. Nachdem wir die Parabel, Hyperbel oder Ellipse in ihrer kanonischen (kompaktesten) Form untersucht haben, haben wir alle ihre bemerkenswerten Eigenschaften gelernt. Danach erstreckt sich dieses Wissen auf jedes nicht triviale Quadrat. DarĂŒber hinaus wird dieselbe Technik bei der Analyse von Gleichungen der Mathematik zweiter Ordnung (in partiellen Ableitungen) verwendet.

Das Problem in der Physik auf eine eigene dimensionslose Form zu bringen, entspricht der Suche nach der kanonischen Form oder einem Muster in der Programmierung. Und zum GlĂŒck kann es mit einem vollstĂ€ndig formalen Algorithmus ausgedrĂŒckt werden:
  1. Wir fĂŒhren formale Skalierungsfaktoren fĂŒr Variablen ein.
  2. wir teilen die ganze Gleichung durch jede GrĂ¶ĂŸe, die die Dimension ihrer Terme hat;
  3. Aus den resultierenden dimensionslosen Komplexen, einschließlich Skalierungsfaktoren, wĂ€hlen wir so viele Faktoren wie möglich aus und setzen sie der Einheit gleich.
  4. Wir lösen die resultierenden Gleichungen, indem wir Skalierungsfaktoren in Bezug auf die Parameter des Problems ausdrĂŒcken und die verbleibenden Komplexe als Ähnlichkeitskriterien verwenden.

Als Ergebnis erhalten wir Gleichungen in kanonischer Form, die Eigenwerte des Problems sowie Ähnlichkeitskriterien fĂŒr die Verallgemeinerung von Lösungen fĂŒr physikalisch Ă€hnliche Systeme. Je mehr Skalen Sie eingeben können (z. B. mithilfe von Symmetrie), desto prĂ€ziser wird die Bewegungsgleichung und desto weniger Steuerparameter bleiben im Problem. Der wahre Schatz fĂŒr den Forscher ist die Situation, in der es möglich ist, alle Parameter des Problems auszuschließen und alle möglichen Lösungen in einer Kurve darzustellen. Solche Lösungen werden als selbstĂ€hnlich bezeichnet und vereinfachen das Leben erheblich, indem sie partielle Differentialgleichungen in gewöhnliche Differentialgleichungen oder sogar in algebraische umwandeln. Der zweite und dritte Schritt des obigen Algorithmus erfordern Auswahl und Argumentation, sie sind am wenigsten formal, aber selbst wenn Sie die Brute-Force-Methode verwenden, können Sie in diesem Stadium ein sehr tiefes systematisches VerstĂ€ndnis des Problems erhalten.

Wenden wir uns der ursprĂŒnglichen Bewegungsgleichung zu, die im Artikel ĂŒber Flugzeuge angegeben ist, und zeigen wir anhand ihres Beispiels, wie es auf seinen eigenen Skalen in eine dimensionslose Form umgewandelt werden kann. Die Gleichung hat die Form:

m fracd2hdt2=−mg+gW rho0e−bh− frac12cS rho0e−bh operatornameZeichen left( fracdhdt right) left( fracdhdt right)2,

mit Anfangsbedingungen

h(0)=hâ€Č(0)=0.

Hier h - die Höhe des Balls, m - Masse des gesamten Flugzeugs mit Fracht, g - Erdbeschleunigung, W - das Gasvolumen in der Kugel, c - Luftwiderstandsbeiwert, S - charakteristischer Widerstandsbereich, ρ0 - Luftdichte in Nullhöhe, b - Koeffizient in der Boltzmann-Verteilung.

Erster Schritt. Wir fĂŒhren die formalen Skalen fĂŒr Zeit und Entfernungen ein:

h=h0y, quadt=t0 tau qquad(1)

und schreiben Sie die Bewegungsgleichung unter Verwendung von Strichen neu, um die Ableitungen zu bezeichnen:

m frach0t20y″=−mg+gW rho0e−bh0y left[1− fraccS2Wg frach20t20 operatornamesign(yâ€Č)(yâ€Č)2 right].

Die Anfangsbedingungen in unserem Fall sind trivial, so dass sie weggelassen werden können, aber im Allgemeinen mĂŒssen wir sie auch neu schreiben.

Der zweite Schritt ist in der Tat die Nichtmessung der Gleichung. Alle darin enthaltenen Begriffe haben die Dimension der Kraft, und wir können sie in jede Kraft aufteilen. Normalerweise geteilt durch die TrĂ€gheitskraft - durch einen Faktor in der zweiten Ableitung der Entfernung. In diesem Fall werden als Parameter des Problems in der Regel bekannte Kriterien fĂŒr die dynamische Ähnlichkeit wie die Reynolds- oder Euler-Zahlen erhalten. In unserer Aufgabe ordnen wir jedoch alle in der Aufgabe enthaltenen KrĂ€fte der Schwerkraft zu mg und deshalb. Uns interessiert vor allem die Position des statischen Gleichgewichts - die maximale Höhe der Kugel bei gegebener TragfĂ€higkeit und die Übergangszeit dazu. Das statische Gleichgewicht hĂ€ngt nicht von den TrĂ€gheitseigenschaften des Systems ab, sondern direkt von der Schwerkraft. Also teilen und reduzieren wir, was möglich ist:

 frach0gt20y″=−1+ fracW rho0me−bh0y left[1− fraccS2Wg frach20t20 operatornamesign(yâ€Č)(yâ€Č)2 right].

Alles, die Gleichung ist dimensionslos, jetzt sind alle Variablen und alle darin enthaltenen Begriffe nur noch Zahlen. Und jetzt können wir solche LÀngen- und Zeitskalen frei wÀhlen, um die Anzahl der Aufgabenparameter zu minimieren. Wir haben zwei Unbekannte h0 und t0 und vier dimensionslose Komplexe:

 frach0gt20, quad fracW rho0m, quadbh0, quad fraccS2Wg frach20t20

Das heißt, wir können zwei von ihnen verschwinden lassen, indem wir sie einfach mit der Einheit gleichsetzen. DarĂŒber hinaus hĂ€ngt der zweite Komplex nicht von großen Faktoren ab, und wir mĂŒssen die beiden verbleibenden fĂŒr die Zerstörung auswĂ€hlen. Und wieder wenden wir uns dem Argument ĂŒber das statische Gleichgewicht zu, das uns interessiert. Die Gleichgewichtsposition wird durch den Ausgleich der Nullbeschleunigung bestimmt, dh es spielt fĂŒr uns keine Rolle, welcher Faktor in der zweiten Ableitung der Höhe enthalten ist, und wir können die Anzahl der Parameter auf der rechten Seite der Gleichung minimieren. Wir kommen also zu folgender Lösung: Wir wĂ€hlen die Skalierungsfaktoren so, dass der dritte und vierte der von uns aufgelisteten Komplexe aus der Gleichung verschwinden. DafĂŒr nehmen wir an

bh0=1, quad fraccS2Wg frach20t20=1

und erhalten Sie unser eigenes Ausmaß des Problems:

h0= frac1b, quadt0= frac1b sqrt fraccS2Wg. qquad(2)

Die ĂŒbrigen Parameter werden wie folgt bezeichnet:

 frach0gt20= frac1 gamma, quad fracW rho0m=B.

Dies ist wahrscheinlich die magischste Phase unserer Transformationen, die der Kunst am nĂ€chsten kommt. Erfahrung und einige Überlegungen helfen jedoch bei der Auswahl der richtigen Skala. Und diese Erfahrung ermöglicht es uns, Ă€hnliche PhĂ€nomene in verschiedenen Bereichen der Wissenschaft zu beobachten und die charakteristischen Eigenschaften komplexer Systeme zu erraten.

Ich werde mir erlauben, die Analyse der physikalischen Bedeutung der Skalen und Parameter, die wir erhalten haben, zu verschieben, obwohl dies auch sehr angenehm und interessant ist, aber ich werde mich sofort dem köstlichsten zuwenden - der dimensionslosen Gleichung auf ihren eigenen Skalen:

 frac1 gammay″=Be−y left(1− operatornamesign(yâ€Č)(yâ€Č)2 right)−1, quady(0)=yâ€Č(0)=0. qquad(3)

Hier! Ich bin bereit, eine solche Gleichung zu lösen, zu analysieren und numerisch zu integrieren. Und wenn ich mich entscheide, kann ich leicht von meiner eigenen Skala zu Metern und Sekunden wechseln, die in den VerhÀltnissen (1) und (2) codiert sind.

Also fangen wir an. Lassen Sie uns zunÀchst herausfinden, wo unser verallgemeinerter Ballon anhalten wird. Dazu setzen wir in Gleichung (3) sowohl Geschwindigkeit als auch Beschleunigung auf Null:

0=Be−y∗−1,

Woher bekommen wir?

y∗= lnB.

Sofort schließen: Damit die maximale Höhe existiert, die Bedingung B>1​​ . Als nĂ€chstes schĂ€tzen wir, wie lange der Ball diese Höhe erreichen wird. Dazu setzen wir die Beschleunigung mit Null gleich und lösen das Cauchy-Problem erster Ordnung:

0=Seie−y left(1−(yâ€Č)2 right)−1, quady(0)=y∗.

Es wird analytisch durch die Methode der Trennung von Variablen gelöst und auf das Integral reduziert:

 tau∗= inty∗0 fracBdy sqrtBey=2 operatornamearth left( sqrt1− frac1B rechts).

Schauen Sie, hier sind sie - die FrĂŒchte der richtig gewĂ€hlten Schuppen! Sowohl die maximale Höhe als auch die charakteristische Zeit ihrer Erreichung werden nur durch den Parameter ausgedrĂŒckt B . Dies bedeutet, dass wir einen Wert festlegen können B>1​​ konstruieren Sie eine Reihe von Graphen zum Lösen von Gleichung (3) fĂŒr verschiedene Werte  gamma und damit sofort alle Möglichkeiten zur Lösung des Problems fĂŒr beliebige Werte beschreiben B !

Dies ist eine universelle Ein-Parameter-Familie von Lösungen, die durch numerische Integration von Problem (3) fĂŒr verschiedene Werte erhalten werden  gamma ::


Nach Erreichen der Gleichgewichtshöhe schwingt der Ballon einige Zeit gedĂ€mpft, die charakteristische Zeit zum Erreichen dieser Höhe wird jedoch korrekt geschĂ€tzt. Vom Kriterium  gamma nur die Schwingungsdauer und die Zeit ihres Zerfalls hĂ€ngen ab. Je grĂ¶ĂŸer dieser Parameter ist, desto „hĂ€rter“ ist unser System.

Es bleibt, diese Familie von Graphen in eine dimensionale Ansicht zu ĂŒbersetzen, indem einfach die Werte entlang der Achsen mit den entsprechenden Skalierungsfaktoren multipliziert werden. Und jetzt ist das numerische Experiment vorbei und seine Ergebnisse haben universelle Bedeutung erlangt. Sie können reale Dimensionsparameter der Aufgabe ersetzen und sofort Zahlen auf den Achsen erhalten, bereits in Metern und Sekunden! Ein solches Ergebnis kann bereits in einem seriösen Handbuch fĂŒr harte Ballonfahrer oder in einem wissenschaftlichen Artikel veröffentlicht werden, der das gesamte PhĂ€nomen in einer Grafik beschreibt.

Nun wollen wir sehen, was wir in Form von Parametern und Variablen erhalten haben. Ersetzen Sie die Masse der Kugel m Gesamtgasmasse W rhog und Nutzlastmassen M ::

m=W rhog+M=W rhog(1+ alpha),

wo  alpha= fracMW rhog - die relative TragfĂ€higkeit des Luftfahrzeugs. ZusĂ€tzlich nehmen wir den Ball kugelförmig und drĂŒcken seine FlĂ€che und sein Volumen durch den Radius aus R . In dieser Darstellung erhalten wir die Parameter des Problems:

B= frac rho0 rhog(1+ alpha), gamma= frac3cB8Rb.

Der erste ist der Auftriebskoeffizient, der vom verwendeten Gas und der angehobenen Last abhĂ€ngt. Dies ist ein sehr wichtiger Parameter, der alle Massenmengen umfasst. Die zweite zeigt, wie die GrĂ¶ĂŸe und Form des Balls mit dem Dichtegradienten in der AtmosphĂ€re zusammenhĂ€ngen, dh wie groß die atmosphĂ€rischen InhomogenitĂ€ten im VerhĂ€ltnis zur GrĂ¶ĂŸe des Balls sind.

Die Skala wird wie folgt ausgedrĂŒckt:

h0=1/b tau0= frac12b sqrt frac3cB2gR= sqrt frac gammagb

Die Entfernungsskala wird nur durch den Dichtegradienten bestimmt. Das ist absolut richtig, denn gerade wegen dieses GefĂ€lles hört der Aufstieg des Balls im Allgemeinen irgendwo auf. Die charakteristische Zeit umfasste dynamische GrĂ¶ĂŸen - Gravitationsbeschleunigung, MassenverhĂ€ltnisse und Luftwiderstand.

Die charakteristische Höhe und Zeit der AnnÀherung des Balls

h∗=y∗h0= frac1b lnB,t∗= tau∗t0=2 sqrt frac gammagb operatornamearth left( sqrt1− frac1B right)

auch ausgedrĂŒckt in Bezug auf die Hauptparameter und den Umfang der Aufgabe.

Lassen Sie uns zum Beispiel sehen, was mit den im Originalartikel angegebenen physikalischen Parametern passiert:

B=4,57 gamma=686h0=8000 m tau0=12,47 minh∗=12166,6 mt∗=13,72 min



Zusammenfassend. Nachdem wir ein wenig auf Papier gearbeitet hatten, bevor wir die Aufgabe der Maschine zufĂŒhrten, konnten wir ein verstĂ€ndlicheres, universelleres Ergebnis erzielen und die wichtigsten Eigenschaften der Lösung erkennen. Gleichzeitig haben wir die „ModularitĂ€t“ der Lösung nicht verloren. Hier ist was ich meine. Wir haben das Problem allgemein formuliert und dann, nachdem wir bereits eine Lösung erhalten hatten, neue „Merkmale“ hinzugefĂŒgt. So haben wir beispielsweise das Konzept der Nutzlast und die Masse des Gases, das es anhebt, geteilt. Diese Komplikation wirkte sich auf die Skalenwerte aus, Ă€nderte jedoch nichts an der Art der Lösung.

Wenn anschließend der Temperaturgradient addiert werden muss, wird der Ausdruck im Exponenten komplizierter, aber sein Wesen und vor allem die Skala Ă€ndern sich nicht:

 exp left( frac−bhT0T0−ah right)

Nach der Dimensionierung sieht es folgendermaßen aus:

 exp left( frac−y1− psiy right),

Wo ist der neue Parameter?  psi= fracabT0 zeigt, wie korreliert die Dichte- und Temperaturgradienten sind. Da dies von uns unabhĂ€ngige atmosphĂ€rische Parameter sind,  psi Ist eine Konstante gleich 0,17 . Der Wert der Konstante zeigt ĂŒbrigens die Bedeutung des Effekts des Temperaturgradienten, er ist nicht groß, aber nicht vernachlĂ€ssigbar. Die Familie der Graphen wird sich ein wenig Ă€ndern, aber vor allem bleibt sie ein Parameter.

Die Verwendung der eigenen Skalen des Problems fĂŒr Berechnungen hat ein weiteres wichtiges Plus: In diesem Fall nehmen Variablen normalerweise „moderate“ Werte an, dh nahe der Einheit. Dies ist sehr nĂŒtzlich fĂŒr Gleitkommaberechnungen: Bei Operationen mit Werten, die in der GrĂ¶ĂŸenordnung stark variieren, geht die Genauigkeit nicht verloren. DarĂŒber hinaus wird es möglich, die Rollen einzelner Effekte in einer Aufgabe korrekt zu vergleichen, indem die Werte ihrer Ähnlichkeitskriterien oder die Werte von Variablen verglichen werden. Zum Beispiel der Wert B=4,5 gibt an, wie oft die WechselwirkungskrĂ€fte mit der AtmosphĂ€re grĂ¶ĂŸer sind als die Schwerkraft. Und das Quadrat der charakteristischen dimensionslosen Anstiegsgeschwindigkeit (y∗/ tau∗)2 sim0,3 zeigt den Grad der Bedeutung des Luftwiderstands bei der vertikalen Bewegung des Flugzeugs im Vergleich zum Auftrieb, der durch eine Einheit in Klammern ausgedrĂŒckt wird.

Schließlich haben Berechnungen in dimensionslosen Variablen und Parametern eine gewisse interne Übereinstimmung mit der Tatsache, dass die Lösungen von Differentialgleichungen fast immer transzendentale Funktionen sind und nur dimensionslose GrĂ¶ĂŸen ihre Argumente und Ergebnisse sein können. Der Computer arbeitet auch ausschließlich mit Zahlen - dimensionslosen GrĂ¶ĂŸen. Die statische Typisierung ermöglicht es Ihnen im Prinzip, die Dimensionen physikalischer GrĂ¶ĂŸen auf Typenebene einzugeben und Programme wĂ€hrend der Kompilierung auf Richtigkeit zu ĂŒberprĂŒfen. In der numerischen Phase arbeiten wir jedoch immer noch nur mit den GrĂ¶ĂŸen selbst. Alle mit Einheiten und Abmessungen verbundenen Fehler gehen bei solchen Berechnungen verloren. Es ist vernĂŒnftig, die Aufgabe fĂŒr Berechnungen vorzubereiten, ohne das ÜberflĂŒssige auszuschließen und dem Löser nur das Wesentlichste und NatĂŒrlichste zu ĂŒberlassen.

Und was wĂŒrde passieren, wenn wir andere Komplexe wĂ€hlen oder alle KrĂ€fte nicht der Schwerkraft, sondern beispielsweise der TrĂ€gheit zuschreiben wĂŒrden? Zwei Parameter wĂŒrden in der Gleichung verbleiben, aber die Kurvenfamilie wĂŒrde zu zwei Parametern, und sie könnte nicht in einem Diagramm gezeigt werden. Ich gebe zu, zuerst ist es mir einfach passiert, als die LĂ€ngenskala den Radius des Balls bekam. Aber nachdem ich mit diesen Kurven gespielt hatte, sah ich ihre geometrische Ähnlichkeit (Sie sehen eine in allen Parabeln), und eine weitere flĂŒchtige Analyse der erhaltenen Kriterien und Gleichungen fĂŒhrte mich zu versteckter Symmetrie und schlug vor, wie die „kanonische Form“ unserer Gleichungen aussehen sollte. Dies ist jedoch eine schöne BeschĂ€ftigung! Die Aufgabe selbst beginnt ĂŒber sich selbst zu erzĂ€hlen. Es macht mir so viel Freude, ein System von Typen und Datenstrukturen in einem Programm in Haskell oder C # aufzubauen: Wenn die Architektur des Programms der internen Struktur der Aufgabe entspricht, wird alles ĂŒberraschend natĂŒrlich, elegant, SonderfĂ€lle werden „automatisch“ ausgearbeitet und die Anzahl der Abstraktionsebenen nimmt ab.

Die Dimensionen physikalischer GrĂ¶ĂŸen an sich sind sehr interessant. Sie bilden einen linearen Raum, und die Suche nach Ähnlichkeitskriterien kann auf das Problem reduziert werden, einen Kern in einem dimensionalen Raum zu finden, wodurch dieser Prozess formalisiert wird. Sie spielen zum Teil die Rolle von Typen im physischen Computing. Da der Compiler statische Eingaben verwendet, um die Richtigkeit des Programms zu ĂŒberprĂŒfen, verwendet der Physiker Dimensionen, um seine Berechnungen und Ergebnisse zu ĂŒberprĂŒfen.Wie in einer streng typisierten reinen Funktionssprache (zum Beispiel in Haskell) kann ein Funktionscode aus seinem Typ abgeleitet werden. Ebenso kann man auf der Grundlage der Dimension physikalischer GrĂ¶ĂŸen dimensionslose Komplexe und charakteristische GrĂ¶ĂŸen in physikalischen Systemen konstruieren und Ă€ußerst nĂŒtzliche und universelle Ergebnisse erzielen. Es gibt viele Beispiele dafĂŒr in der Mechanik, Gas- und Thermodynamik, Quantenmechanik usw. Ich empfehle Ihnen, sich mit einer wunderbaren Arbeit vertraut zu machen , die eine Reihe schöner Beispiele fĂŒr die Anwendung der Dimensionsanalyse auf Probleme aus dem Satz von Pythagoras auf die Schwingungen von Sternen und die Rayleigh-Streuung am Himmel bietet. Diese Arbeit zitiert die Worte von John Wheeler, dem Lehrer Richard Feynman, der den Namen "Wheeler Rules" erhielt:
« , . : (! ! !) , ; . : , . , . . ».

Dieser Rat fĂŒr Programmierer kommt mir sehr bekannt vor: Schreiben Sie keinen Funktionscode, ohne sich fĂŒr seine Signatur (Typ) und sein Verhalten (Tests) entschieden zu haben. Bevor Sie Code schreiben, sollten Sie Typen, Datenstrukturen und deren Beziehungen berĂŒcksichtigen. Genau dafĂŒr sind OOP und funktionale Programmierung stark - diese Prinzipien funktionieren nicht nur dort, sie schlagen bei geschickter Anwendung selbst die natĂŒrlichsten und elegantesten Lösungen vor, und im Fall von FP tun sie dies auf einer tiefen mathematischen Ebene, wodurch es möglich wird, die Eigenschaften von Programmen zu beweisen und einige zu berechnen Arbeiten Sie an der Ausgabe von Programmeigenschaften an den Compiler.

Mathe lernen, schön programmieren und Spaß haben!

Source: https://habr.com/ru/post/de416151/


All Articles