Gebrochenrationale Funktionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Jaga
User
Beiträge: 64
Registriert: Mittwoch 21. August 2013, 13:18

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:

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()
FASTER! HARDER! LOUDER!
Antworten