4.1. Trapezfunktion#
In dieser Aufgabe sollen Sie die in der Vorlesung vorgestellte Trapezfunktion selbst programmieren.
Aufgabenstellung#
Aufgabenteil A#
Schreiben Sie eine Funktion, die die in der Vorlesung vorgestellte Trapezregel zum numerischen Integrieren von Funktionen implementiert. Die Funktion soll ein Numpy Array an Funktionswerten und eine Schrittweite \(\Delta x\) entgegen nehmen und daraus den Flächeninhalt bestimmen. Gehen Sie davon aus, dass für die zu den Funktionswerten gehörigen x-Werte gilt: \(x_0, x_0+\Delta x, x_0 + 2\Delta x, ...\).
Aufgabenteil B#
Wählen sie eine beliebige Funktion und überprüfen Sie die von Ihnen erstellte Funktion mit der Trapezfunktion des Scipy Moduls.
Lösungsvorschlag#
Show code cell content
import matplotlib.pyplot as plt
import numpy as np
import scipy as sp
from scipy import integrate
def fkt(xi):
yi = np.sin(xi)
return yi
def trapez(werte, schrittweite):
flaeche = 0
for i in range(len(werte)-1):
flaeche += werte[i] * schrittweite
flaeche += (werte[i+1] - werte[i]) * schrittweite / 2
return flaeche
xi = np.arange(0,2*np.pi,0.2)
yi = fkt(xi)
flaeche_sp = sp.integrate.trapz(yi, xi)
flaeche_selbst = trapez(yi, 0.2)
print('Eigene Trapezfunktion:', flaeche_selbst)
print('Scipy:', flaeche_sp)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[1], line 20
17 xi = np.arange(0,2*np.pi,0.2)
18 yi = fkt(xi)
---> 20 flaeche_sp = sp.integrate.trapz(yi, xi)
21 flaeche_selbst = trapez(yi, 0.2)
23 print('Eigene Trapezfunktion:', flaeche_selbst)
AttributeError: module 'scipy.integrate' has no attribute 'trapz'