Gebrochenrationale Funktionen
Verfasst: Sonntag 29. September 2013, 12:51
So wie schon so oft hängts wieder bei meinem Funktionsplotter.
Mir ist aufgefallen, dass alle Funktionen ganz normal geplottet werden bis eben die gebrochenrationalen.
Wieso weiß ich nicht und ich hoffe ihr könnt mir helfen.
hier die Formelanalysegeschichte:
Mir ist aufgefallen, dass alle Funktionen ganz normal geplottet werden bis eben die gebrochenrationalen.
Wieso weiß ich nicht und ich hoffe ihr könnt mir helfen.
hier die Formelanalysegeschichte:
Code: Alles auswählen
def formel_analysieren(self, genauigkeit, startwert, endwert):
self.x = np.arange(float(startwert),float(endwert),float(genauigkeit))
x = self.x
formula_raw = self.entry_funktion.get().replace('e^x', 'exp(x)')
formula_raw_exp = formula_raw.replace('e^', 'exp')
formula_list = re.split('(\W)', formula_raw_exp)
formula_replace = [REPLACE_DIC.get(item,item) for item in formula_list]
self.formula_finish = ''.join(formula_replace)
form = parser.expr(self.formula_finish).compile()
try:
self.y = eval(form)
self.legend = self.entry_funktion.get()
except NameError:
self.y = np.sin(self.x)
self.legend = 'sin(x)'
return (self.x,self.y,self.legend)
def plotten(self):
self.formel_analysieren(self.get_genauigkeit(),self.get_startwert(),self.get_endwert())
plt.clf()
plt.plot(self.x,self.y, label=self.legend)
plt.grid('on')
plt.xlabel('x - Achse')
plt.ylabel('y - Achse')
legend = plt.legend()
legend.draggable(state=True)
plt.gcf().canvas.draw()
def get_genauigkeit(self):
if self.entry_genauigkeit.get() is "":
return 0.01
else:
return self.entry_genauigkeit.get()
def get_startwert(self):
if self.entry_startwert.get() is "":
return -5
else:
return self.entry_startwert.get()
def get_endwert(self):
if self.entry_endwert.get() is "":
return 5
else:
return self.entry_endwert.get()