Temat 21: Całkowanie numeryczne

Wstecz; Ostatnia modyfikacja: 22.05.2015
  • Ćwiczenie 1: zaimplementuj funkcję integrate(f,a,b,h=0.0001), która całkuje funkcję na przedziale (a,b), apkoksymując funkcję f przy pomocy (i) prostokątów, (ii) trapezów, (iii) parabol (metoda Simpsona).
  • Ćwiczenie 2: wykorzystaj do całkowania numerycznego funkcję quad z modułu scipy.integrate
  • . Porównaj wyniki dla całek:
    • $\int_0^2e^xdx$, $\int_{98}^{100}e^xdx$, $\int_{0}^{\pi} sin(x)dx$, $\int_{-\pi}^{\pi} sin(x)dx$
  • Ćwiczenie 3: zoptymalizuj następującą funkcję liczącą całkę numeryczną metodą trapezów. Uwaga: kod działania poniższego programu da się zredukować ponad pięciokrotnie.
  • def integrate2(f, a, b, n=200000):
      x = np.linspace(a,b,n)
      h = x[1]-x[0]
      fs = 0.0
    
      for i in range(n-1):
        fs += (f(x[i]) + f(x[i+1]))
      fs *= h / 2
    
      return fs
    
    r2 = integrate2(f, 0, 2, n=1000000)
    print(r2)
    
  • Kod z ćwiczeń