2017-03-10 1 views
0

J'ai besoin d'intégrer la fonction: y (x) = e -ax cos (x) sans utiliser SciPy/NumPy etc. Je me bats un peu. Je sais que cela:Intégration numérique Python sans SciPy?

def integrand(x): 
       return 

Pour le bit de retour, je veux utiliser cette équation: la somme i=1-N de y (xi) (xi - x (i-1))

Comment pourrais-je écrire cela?

+0

La somme est probablement à '1' ** 'N-1' **? –

Répondre

2

définie simplement comme:

from math import cos, e 

def y(x): 
    return (e**(-a*x))*cos(x) 

def integrand(x): 
    return sum(y(x[i])*(x[i]-x[i-1]) for i in range(1,len(x)))

Les range(1,len(x)) est compris entre 1 (inclus) à la longueur de x (exclusif).

Ou utilisez:

from math import exp, cos 

def y(x): 
    return exp(-a*x)*cos(x)
+0

@Kasramvd: merci, modifié. –

+0

Merci. Cependant, je suis maintenant perdu quant à la façon de procéder. Je suis tellement habitué à pouvoir utiliser SciPy. Je veux qu'il imprime les valeurs de l'intégrale quand 'a' = 0. – dtfd1998

+0

@webberwizard: eh bien, vous devez d'abord mettre 'a' globalement à' a = 0' ... –