2017-09-28 1 views
0

Ich habe eine Funktion definiert, die ich jetzt zeichnen möchte:Plotten definierte Funktion

import numpy as np 
from math import pi, sqrt 
import matplotlib.pyplot as plt 

def f(x: float) -> float: 
    return pi * x * sqrt(x**2 + 400) + pi * x**2 - 1200 

plt.plot(f(x)) 
plt.show() 

Wenn dieser Code ausgeführt wird, erhalte ich „Nameerror: name‚x‘ist nicht definiert“.

+0

Sie müssen 'x' mit einem Wert initialisieren – MrPyCharm

Antwort

1

Es ist oft nützlich, numpy in Verbindung mit Matplotlib zu verwenden. Wenn Sie dann eine Funktion definieren, können Sie sie so schreiben, dass sie sowohl einzelne Gleitkommazahlen als auch numpige Felder als Eingabe benötigt.

import numpy as np 
import matplotlib.pyplot as plt 

def f(x): 
    return np.pi * x * np.sqrt(x**2 + 400) + np.pi * x**2 - 1200 

x = np.array([1,2,3,4]) 
plt.plot(x, f(x)) 
plt.show() 

Natürlich könnte man jetzt auch die Funktion für einen einzelnen Schwimmer

print(f(9.2)) 

oder

y = [f(i) for i in x] 
plt.plot(x,y) 

Aber wenn Sie wissen, über für jedes Element einer Liste oder Array auszuwerten verwenden Die Tatsache, dass mathematische Operationen leicht auf numplige Arrays angewendet werden können, möchten Sie sich wahrscheinlich nicht mehr für letztere entscheiden.