2018-05-29
Forschungswebsite von Vyacheslav Gorchilin
Einfache Methoden der numerischen Lösung von differentialgleichungen
Eine große Anzahl von Methoden der numerischen Lösung von differentialgleichungen in allgemeiner Form [1,2]. Viele von Ihnen реальзованы programmatisch und sind in Form von fertigen Modulen. Leider generalisierte Methoden nicht immer genügend genaues Ergebnis, da gibt es eine Natürliche Begrenzung der Rechenleistung. Auch die Verwendung von fertigen Modulen Häufig zeigt den Prozess der Entscheidung außerhalb der Wortlänge des Prozessors, die stark begrenzt Eingabebereich.
In diesem Artikel zeigen wir mehr einfache und schnelle algorithmen, um einige diff. Gleichungen. Die wichtigsten Unterschiede von der traditionellen in Ihnen ist eine Optimierung für eine bestimmte Aufgabe und bietet Durchgang nur ein Algorithmus für einen Zyklus, eine geringere Anzahl von Iterationen, einen nachhaltigeren Rechenvorgang und ein einfaches Verfahren zu Ihrer Herstellung. Es genügt zu sagen, dass ein solcher Ansatz ist auch für die Schüler der Oberklassen der Realschule — Suche-Algorithmus reduziert sich auf die Lösung einfacher algebraischer Gleichungen.
Zur Prüfung der vorgeschlagenen Methode ist es notwendig, daran zu erinnern, dass der Prozess der numerischen Lösung besteht aus Iterationen — vielfachen Wiederholungen einiger Berechnungen [3], und die Zahl solcher Schritt der Iteration wird durch ein \(i\). Sofort betrachten wir ein Beispiel in Form der nächsten diff. Gleichung: \[\dot Y = f(x)\,Y + a \qquad (1)\] Hier: \(Y=Y(x)\), \(\dot Y\) — etwas Inkrement \(Y(x)\) an den Koordinaten \(x\), d.h. \[\dot Y = {dY \over dx} \approx {\Delta Y \over \Delta x}\] \(f(x)\) — irgendeine Funktion dieser Koordinaten, und \(a\) eine Konstante ist. By the way, wenn \(f(x)\) wird eine ziemlich schwierige sucht, ist die analytische Lösung dieser Gleichung wird unmöglich sein, aber die Lösung der numerischen Methoden — und immer mit beliebiger Genauigkeit.
Dazu stellen wir uns vor \(\Delta Y\), wie die Differenz zwischen dem aktuellen Wert und dem Wert im vorherigen Schritt der Iteration: \[\Delta Y = Y(x_i) - Y(x_{i-1}) \qquad (2)\] dabei ist die Koordinate ändern auf \(\Delta x = x_i - x_{i-1}\), und diese änderung der Koordinaten konstant auf jedem Schritt. Von \(\Delta x\) hängt die Genauigkeit der Methode und der Anzahl der Iterationen: \(i \in 1, 2, 3, ..., N\), wobei die eigentliche Bedeutung der Koordinaten ist einfach: \(x_i = i\,\Delta x\).
Dann wird unsere Gleichung so geschrieben: \[{Y(x_i) - Y(x_{i-1}) \over \Delta x} = f(x_{i})\,Y(x_{i}) + a \qquad (3)\] nur um die aktuellen Werte der Funktion, und die wird ein Impressum numerische Lösung für jeden Schritt der Iteration: \[Y(x_i) = {Y(x_{i-1}) + a\,\Delta x \over 1 - f(x_i)\,\Delta x} \qquad (4)\] Außerdem müssen Sie entscheiden, mit dem Wert \(Y(x_{i-1})\) auf der ersten Schritt, d.h. wenn \(i=1\) und \(x_0=0\). Es wird ein Anfangswert der Funktion, die in Mat. Analyse обознается, wie \(Y(0)\). Dann ist die gesamte Aufnahme der numerischen Lösung wird dies: \[Y(x_i) = {Y(x_{i-1}) + a\,\Delta x \over 1 - f(x_i)\,\Delta x}, \quad Y(x_0) = Y(0) \qquad (5)\] Bei aller Einfachheit der gefundenen Funktion ist der Schnellste und stabile Algorithmus für die numerische Lösung dieser Gleichung!
Ein etwas komplexeres Beispiel
Fans der freien Energie wäre interessant zu wissen, was in der linearen Bernoulli-Gleichung versteckt ist eine Möglichkeit, es zu erhalten. Finden die numerische Lösung dieser Gleichung: \[g(x)\,\dot Y = f(x)\,Y + h(x) \qquad (6)\] am Anfang wir bieten einen Blick auf den analytischen Ansatz [4] und dann die oben vorgeschlagene Methode, eine numerische Lösung. Nachdem dies erledigt fast die gleichen Schritte тожно am Ausgang erhalten den folgenden Algorithmus: \[Y(x_i) = {g(x_i)\,Y(x_{i-1}) + h(x_i)\,\Delta x \over g(x_i) - f(x_i)\,\Delta x}, \quad Y(x_0) = Y(0) \qquad (7)\] Für den Vergleich, wenn man die numerische Lösung dieser Gleichung mit Hilfe des Ansatzes [4], dann wird es so Aussehen: \[Y(x_i) = \left[ Y(x_{i-1}) + \frac{h(x_i)}{g(x_i)} \Delta x \right] \left[ 1 + \frac{f(x_i)}{g(x_i)} \Delta x \right], \quad Y(x_0) = Y(0) \qquad (8)\] es ist Interessant, dass in der Praxis, Programmierung mit Hilfe des Algorithmus (7) gibt genauere Werte am Ausgang, als (8), und der Prozess der Berechnung erweist sich als nachhaltig.
Funktion im Satz Grad
Diese Entscheidung muss offenlegen alle Stärke dieser Methode. Dazu nehmen wir die folgende Gleichung: \[\dot Y = f(x) \exp(a\,Y) + h(x) \qquad (9)\] und versuchen, ihn zu finden eine numerische Lösung für die vorgeschlagene Methodik. Aber zuerst erinnern wir uns daran, dass die Exponentialfunktion, die bei kleinen änderungen, kann zerlegt werden in eine Reihe von Taylor [5]: \[\exp(a\,Y_i) = \exp(a\,Y_{i-1})\exp(a\,\Delta Y) = \exp(a\,Y_{i-1})(1 + a(Y_i-Y_{i-1})) \qquad (10)\] Hier für eine bessere Wahrnehmung eingeführt solche Vereinfachung: \(Y_i = Y(x_i), Y_{i-1} = Y(x_{i-1})\). Jetzt, nach der vorgeschlagenen Methodik, erstellen Allgemeine Gleichung: \[{Y_i - Y_{i-1} \over \Delta x} = f(x_i) \exp(a\,Y_{i-1})[1 + a(Y_i-Y_{i-1})] + h(x_i) \qquad (11)\] und leiten daraus die gewünschte Funktion: \[Y_i = Y_{i-1} + {f(x_i) \exp(a\,Y_{i-1}) + h(x_i) \over 1 + a\,f(x_i) \exp(a\,Y_{i-1}) \Delta x } \Delta x \qquad (12)\]
Auf der nächsten Seite informieren wir über die numerische Lösung einiger diff. Gleichungen zweiter Ordnung.
 

© Горчилин Wjatscheslaw, 2018
* Nachdruck des Artikels ist möglich mit der Bedingung der Linksetzung auf diese Website und Einhaltung des Urheberrechts

2009-2018 © Vyacheslav Gorchilin