Integrazione informatica con la regola trapezoidale

4

Sto cercando di implementare la regola trapezoidale a livello di codice, ma sto avendo problemi a trovare un buon modo per inserire la funzione di x e poi ho un ciclo che eseguirà un iterazione per ogni sottointervallo trovando l'area del trapezio e aggiungendo i risultati e restituendolo.

Qualsiasi aiuto sarebbe fantastico.

    
posta user80317 03.02.2013 - 07:54
fonte

1 risposta

2

L'esempio python di wikipedia funziona piuttosto bene:

#!/usr/bin/env python
from __future__ import division

def trapezoidal_rule(f, a, b, n):
    """Approximates the definite integral of f from a to b by
    the composite trapezoidal rule, using n subintervals"""
    h = (b - a) / n
    s = f(a) + f(b)
    for i in xrange(1, n):
        s += 2 * f(a + i * h)
    return s * h / 2


print trapezoidal_rule(lambda x:x**9, 0.0, 10.0, 100000)
# displays 1000000000.75

Questo esempio utilizza due funzionalità molto utili in python: funzioni anonime / passate e iterazione su intervalli. Soluzioni simili esistono in altre lingue. Un ciclo foreach sarebbe tipico nella maggior parte dei casi. Dovresti produrre qualcosa di equivalente a una funzione di prima classe per generare facilmente il parametro "f".

    
risposta data 03.02.2013 - 09:04
fonte

Leggi altre domande sui tag