Cómo hacer una sum en python

Me preguntaba cómo se puede representar una sum en python sin bucles como aquí

donde tenemos:

def rosen(x): """The Rosenbrock function""" return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0) 

Mi función es la siguiente: V(theta) = Sum(i=1->N)[a0*(cos(i*theta)]

Gracias de antemano por su ayuda :):)

    algo como:

     def V(theta,N): return sum(a0*(cos(i*theta) for i in range(1,N+1)) print V(theta,N) 

    o puedes usar lambda :

     V =lambda theta,N : sum(a0*(cos(i*theta) for i in range(1,N+1)) print V(theta,N) 

    Tu fórmula es:

    V (theta) = Suma (i = 1-> N) [a0 * (cos (i * theta)]

    lo que significa: sumr todos los valores de a0*(cos(i*theta) para un valor theta dado en el rango de 1 a N incluido.

    Esto se convierte en algo así en Python:

     def V(theta, N): return sum(a0*(cos(i*theta)) for i in range(1, N + 1)) 

    Tenga en cuenta que debe pasar theta y N a la función. También tenga en cuenta que estamos usando N + 1 para asegurarnos de que se incluya N (ya que el range repite en los valores hasta, pero sin incluir, el último valor).

    El ejemplo que se muestra no utiliza funciones matemáticas, solo operaciones aritméticas básicas. Es por eso que funciona como se muestra, pero math.cos no admite listas y, por lo tanto, no funcionará de esta manera.
    Si realmente quieres moverte sin ninguna, deberías usar numpy. Las funciones matemáticas de Numpy admiten listas (en realidad matrices).
    De esta manera puedes escribir algo como:

     from numpy import * def fun(theta): return a0*sum(cos(arange(1,N+1)*theta)) 

    Si está haciendo muchos de estos cálculos, es mejor usar numpy.