Programmierung von Methoden der numerischen Integration geschlossen 

  • Ersteller Ersteller KingZhead
  • Erstellt am Erstellt am
Status
Für weitere Antworten geschlossen.
K

KingZhead

hy, ich werde in ca. 3-4 wochen ein referat in Mathe über die Methoden der numerischen Integration halten.
Da mein Mathe-Lehrer Informatik studiert hat hat er mir angeboten, das ich versuchen könnte, diese Methoden auf Computertechnisch umzusetzen.
Ich bin vertraut mit Delphi, das heist die neue Ausgabe von Pascal, würde jedoch auch auf C umdisponieren,da es wie ich gehört habe ähnlich sein soll.

Mein Problem ist jedoch das ich absolut nocht weiß wie ich diese Regeln umsetzetzen soll.
Geimeint ist zum bespiel die Trapezregel.
Hat vielleicht einer von euch Ahnung davon?
wie kann ich dies in ein Programm umsetzen?

mfg Markus
 
Hi KingZhead,

Numerisches Integrieren ist natürlich nicht nur die Trapezregel...

Gesucht ist eine Näherung für \int_a^b f(x) dx

Trapezregel: Der Integrationsbereich x \in [a,b] wird in kleinere Intervalle aufgeteilt. Die Integrandenfunktion wird jeweils an den Endpunkten eines jeden Intervalls ausgewertet.
Mit je zwei Endpunkten und den dazugehörigen Funktionswerten können nun Trapeze gebildet werden.
Das Integral ist dann näherungsweise die Summe über die Flächeninhalte aller so entstandenen Trapeze.

Wie man das programmiertechnisch umsetzen könnte, nun ja:
  • Teile den Integrationsbereich auf -> Array mit x-Werten
  • Werte die Integrandenfunktion an je zwei aufeinander folgenden x-Werten aus -> Array mit den Funktionswerten
  • Für je zwei aufeinanderfolgende x-Werte mit zugehörigen Funktionswerten kann eine Trapezfläche ausgerechnet werden
  • Addiere die Flächeninhalte

Schau dir doch einfach noch den Wikipedia-Artikel zu der Numerischen Integration an. Dort findest du ein paar Anhaltspunkte, welche Methoden es noch gibt und wie sie zusammenhängen.

Interessant wäre dann sicherlich ein kleines Programm, dass verschiedene Newton-Cotes-Formeln benutzen kann.

Viel Erfolg und viele Grüße
underattack
 
danke für die Antwort.
mit dem methoden kenne ich mich aus, das problem liegt momentan ausschließlich in der programmierung.
diese ist in meinem refarat zwar keine pflicht, wenn ich sie aber habe dann wird die note wie eine klausur gewertet und das wäre sehr vorteilhaft.
 
also eigendlich wurde es dir schon gesagt,
aber ich versuchs mal noch etwas ausführlicher
du hast als eingang
eine beliebige funktion, f(x) z.b. f(x)=x²
und eine integrationsgrenze (invervall) [a,b] z.b. [0,1]
desweiteren müssen die unterteilungen gegeben sein: u

dann kannst du anfangen rechnen zu lassen:
deklariere variable fläche=0
und noch variable linke_seitenlänge=f(a)
und dann noch die schrittweite: h=(b-a)/u

dann ne schleife, wobei i von 1 bis u (unterteilungen) läuft
rechte_seitenlänge=f(a+ih)
fläche=fläche + (rechte_seitenlänge+linke_seitenlänge)*h/2
linke_seitenfläche=rechte_seitenfläche


und dann ist fläche das integral darüber
wobei bei der methode einiger speicherplatz und auch einige rechenschritte vom vorposter wegfallen ;)
ach und wenn es egal ist, welche sprache man benutzt, würde ich dir matlab vorschlagen, das ist gerade dafür konzipiert, mathematische algorithmen zu programmieren, und ist im grunde kinderleicht in der bedienung
c ist da ja etwas bockiger, gerade wenn man ne variable als integer deklariert hat, aber man mit floats arbeitet, oder generell das ganze unwichtige drumrum
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten