Dokumentation Integralberechnung mittels Trapezregel und Threads

Einleitung

Aufgabe unseres Teams war es, die Fläche der Funktion f(x)=sin(ecos(x)) mit Hilfe von parallelisiert ablaufenden Threads zu ermitteln.  Dies wollten wir mit Hilfe der Trapezregel realisieren. Das mathematische Verfahren beschreibt wie man das Integral einer Funktion f(x)  im Intervall [a,b] numerisch annähert. Dazu ersetzt man die Fläche unter der Kurve y=f(x) im gegebenen Intervall durch ein Trapez oder mehrere gleich breite Trapeze. Die Fläche eines Trapez lässt sich mit T(f)=(b-a) f(a)+f(b)2 berechnen.

 

Umsetzung

Om8bu1-a3HlK3u_pbjFxefreQJ-oRLBRQSqBKb1gLMOreV0zzFQsqdHXZv8uXregsQuBAQ=s2048

Die Umsetzung unseres Programmes entspricht der obigen Darstellung. Uns war bei der Arbeit wichtig viele Programmteile zu Modularisieren, damit das Projekt später leicht verändert werden kann. Zum Bespiel könnte ein Master – Worker Prinzip in unser Programm einfach eingebaut werden.

 

Erkenntnisse und abschließende Gedanken

Unser Programm gibt nach kleinen Anlaufschwierigkeiten  einen guten Näherungswert an die Fläche aus. Wir haben keinen großen Unterschied gemerkt beim einbinden mehrerer bzw. weniger Threads. Wir haben uns bei 10 Threads die alle ca 5000 Trapeze berechnen eingependelt. Wenn man zu viele Threads benutzt bzw die Stützpunkte zu klein wählt kann es passieren das wieder eine Ungenauigkeit durch Rundungfehler auftritt.

 

Dokumentation:
von Torben Binder, Ann-Christin Müller