2017-09-27 1 views
-2
import numpy as np 
import math 

y = 0. 
m = 9. 
A = 0.3 
k = 4. 
gamma = 0.15 
t = 0 

n = 101 

t_array = np.zeros(n) 
y_array = np.zeros(n) 
dt = 25/n 
for i in range(n): 
    t_array[i] = 0 + dt * i 
    y_array[i] = A * math.exp(-gamma * t) * math.cos * (math.sqrt(k/m) * t) 
    print("%5.2f %5.2f" % (y_array[i], t_array[i])) 

je ne peux pas pour l'amour de ma figure de vie pourquoi je reçois le message: « type d'opérande non pris en charge (s) pour *: « float 'et' builtin_function_or_method '". J'ai regardé à peu près toutes les suggestions sur ce site. S'il vous plaît aider!type d'opérande non pris en charge (s) pour *: 'float' et 'builtin_function_or_method'

+2

'* math.cos' ?? –

+1

'math.cos' est une fonction. Vous ne pouvez pas l'utiliser comme s'il s'agissait d'un entier. Qu'est-ce que vous essayez de faire exactement? –

+0

'math.cos?' C'est une fonction. – 0xGiddi

Répondre

0

math.cos est une fonction, en particulier builtin_function_or_method - qui explique le message d'erreur. Cela signifie que vous devez l'appeler avec un argument pour obtenir un nombre, comme vous l'avez fait avec math.exp et math.sqrt.