import numpy as np import matplotlib.pyplot as plt a,b = 0.,1. riktig = 1.-np.cos(1.) eL = [] tL = [] dxL = [] print((np.sin(b)-np.sin(a))/2) for dx in 10.**(-np.arange(1,8)): x = np.arange(0,1,dx) integral = sum(np.sin(x))*dx # trapesmetoden trapes = integral + (np.sin(b)-np.sin(a))*dx/2 print(f"{dx:e} {integral:e} {integral-riktig:e}" ) eL.append(integral) tL.append(trapes) dxL.append(dx) #Plotter feilen ved Eulers metode (rektangler) plt.loglog(dxL,np.abs(eL-riktig),"o") # For sammenlikning, feil proporsjonal med Delta x plt.loglog(dxL,dxL) #Plotter feilen ved trapesmetoden plt.loglog(dxL,np.abs(tL-riktig),"o") # For sammenlikning, feil proporsjonal med (Delta x)^2 plt.loglog(dxL,[dx**2 for dx in dxL]) plt.show()