AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Numerische Integration (inkl. flexibler Plotter-Komponente)

Numerische Integration (inkl. flexibler Plotter-Komponente)

Ein Thema von heiopei · begonnen am 23. Jul 2008 · letzter Beitrag vom 24. Okt 2008
 
heiopei
(Gast)

n/a Beiträge
 
#1

Numerische Integration (inkl. flexibler Plotter-Komponente)

  Alt 23. Jul 2008, 14:04
Hallo,

Numerische Integration 1.0

Das hier vorgestellte Programm hatte ich für meine Facharbeit geschrieben. Da ich nicht viele Programme gesehen habe (v.a. ohne Quellcode), die Funktionen grafisch schön darstellen und flexibel erweiterbar sind, war ich "gezwungen" eine solche Komponente zu entwickeln.
Ich habe das Programm jedoch nicht umbedingt wegen der Veranschaulichung von Numerischen Verfahren hier reingestellt (das interessiert vermutl. nicht all zu viele), sondern eher wegen des für meine Begriffe flexiblen Plotters (siehe weiter unten).

Zum Programm:

Das Programm stellt eine Oberfläche zur Verfügung, mit der Numerische Integrationsverfahren veranschaulicht werden sollen.
Dabei gibt es drei Module:
- ein Verfahren an verschiedenen Funktionen testen
- meherere Verfahren an einer Funktion testen
- ein Verfahren an einer Funktion testen, wobei eine Große Oberfläche zum detailierten Betrachten zur Verfügung steht (Hier kann
man auch Graphen als JPEG/BMP-Dateien speichern

Es werden die folgenden Verfahren unterstützt:
- Left/Right-Riemann
- Trapezregel
- Simpson
- Monte-Carlo

Dabei kann eine beliebige (sinnvolle) Zahl an Stützstellen eingestellt, sowie beliebige Integrationsgrenzen definiert werden.
Durch die Verwendung eines Funktionenparsers - hier sei darauf hingewiesen, dass ich die Komponente "TCQParser" von Fabian Kleuss in abgewandelter Form verwendet habe - ist die beliebige Eingabe von Funktionen möglich!

Zur Komponente "TPlotter":

TPlotter stellt eine einfache TWinControl-Komponente dar, die einen Graph (TGraph) und beliebig viele Zeichenelemente (TPlotItem) enthält. Der Plotter regelt den Event-"Verkehr", d.h. er nimmt "ich will mich Neu-Zeichnen"-Ereignisse entgegen und leitet diese entsprechend weiter.

Der Graph (TGraph) ist frei skalierbar, per Maus zoom- und bewegbar, die Anzeige des Koordinatensystems kann eingestellt werden (Gitterlinien, Skala, Achsen, Farben...) und ist direkt von TGraphicControl abgeleitet.

Die Klasse TPlotItem stellt eine TObject-Klasse dar, die in der Grundform nur Funktionen zur Zusammenarbeit zwischen TGraph und TPlotter enthält. TPlotItem kann an den Plotter melden, dass sich das PlotItem neu auf den Graph zeichnen muss und TPlotter kann das PlotItem anweisen, sich neu auf den Graph zu zeichnen. Leitet man diese Klasse ab, so kann man beliebige Klassen erzeugen, die irgendwelche Daten auf dem Graph ausgeben können, wie z.B. Funktionen (+ deren Ableitungen, etc), Diagramme, usw.

Für das oben beschriebene Programme habe ich dazu die Klassen TPlotableFunction und TNumIntegrator von TPlotItem implementiert.
TPlotableFunction zeichnet eine beliebige Funktion auf den Graph und TNumIntegrator die Integral-"Fläche" einer beliebigen Funktion.

Zur Demonstration der Anwendung dieser Komponenten gibt es zwei extra Demoprogramme. Möchte man sich weiter damit beschäftigen, so kann man auch die relativ ausführliche Dokumentationen im Quellcode lesen - so wird das System evtl. noch besser klar...


Bekannte Fehler:
- vermutl. ist die Oberfläche bei einigen Bildschirmen zu groß (ist mir grad eingefallen), ich wäre also dankbar wenn mir da jemand möglichst bald bescheid sagt
- der Parser kann nicht kürzen, daher gibt es Probleme bei X durch X.
- Falsche Berechnung bei X hoch X im Negativen Bereich
- evtl. fehlerhafte Fehlerabschätzung (klingt komisch, is aber so...)
- Probleme beim numerischen Ableiten

So, ich hoffe das waren erstmal ausreichend viele Informationen...
Viel Spass beim Testen!
Angehängte Dateien
Dateityp: zip screenshots_845.zip (188,2 KB, 101x aufgerufen)
Dateityp: zip programm-quellcode_189.zip (96,6 KB, 92x aufgerufen)
Dateityp: zip nur_komponenten_192.zip (58,3 KB, 56x aufgerufen)
Dateityp: zip numerische_integration_-_programm_208.zip (330,0 KB, 110x aufgerufen)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz