Multiplikation von 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
Curiosa
User
Beiträge: 10
Registriert: Freitag 4. März 2011, 15:04

Hallo!
Ich habe folgendes Problem:
Ich habe eine Funktion func(x1, x2, y1, y2)
Ich moechte diese fuer verschiedene x1, x2 miteinander multiplizieren, also ungefaehr so:
(x ist ein array, der floats enthaelt)

Code: Alles auswählen

func1 = lambda y1, y2: func(x[0], x[1], y1, y2)

for i in range(n-2):
  func1 = lambda y1, y2:func1(y1, y2)*func(x[i+1], x[i+2], y1, y2)
Leider bekomme ich dann immer die Fehlermeldung: maximum recursion depth exceeded.

Hat jemand von Euch eine Idee, wie ich mein Problem loesen kann?
Vielen Dank schonmal und viele Gruesse,
Curiosa
Zuletzt geändert von Anonymous am Donnerstag 17. März 2011, 13:32, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nicht die Funktionen werden multipliziert sondern zuerst ausgewertet und dann werden die Ergebnisse multipliziert.

Schau dir mal `func1` nochmal genau an. Wann genau soll der Aufruf zu einem Ende kommen?
Curiosa
User
Beiträge: 10
Registriert: Freitag 4. März 2011, 15:04

Die Funktion, die ich suche, soll ein Produkt aus Funktionen vom Typ func sein. n sollte moeglichst gross sein im Bereich von 1000.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Curiosa hat geschrieben:Die Funktion, die ich suche, soll ein Produkt aus Funktionen vom Typ func sein. n sollte moeglichst gross sein im Bereich von 1000.
Kapiere ich immer noch nicht. Was heißt denn "Produkt von Funktionen"? Produkt der Funktionswerte? Das wäre doch einfach iterativ möglich. Augenscheinlich willst Du gar nichts ausrechnen, sondern eher eine Funktionskaskade erzeugen, die später einmal Dinge berechnen kann? Du musst das glaube ich mal ein wenig besser erklären, ggf. mit einer lauffähigen Funktion. Damit könntest Du mal per Hand nachbauen, was Du als Ziel erwartest.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Curiosa
User
Beiträge: 10
Registriert: Freitag 4. März 2011, 15:04

Ja, ich moechte die Funktion haben und nicht nur Werte fuer einige Stellen. Ist das moeglich?
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Curiosa hat geschrieben:Ja, ich moechte die Funktion haben und nicht nur Werte fuer einige Stellen. Ist das moeglich?
Stellt sich mir glatt die Frage: Wozu?

Dafür bieten Programmiersprachen doch Schleifen usw.!

Vielleicht beschreibst Du doch mal genauer, was Du erreichen möchtest und auch wozu! Evtl. ist das ein XY-Problem und wir raten uns hier damit zu Tode.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Curiosa
User
Beiträge: 10
Registriert: Freitag 4. März 2011, 15:04

Hallo!
Ich habe jetzt doch einen Weg gefunden, mit dem es reicht, die Funktion nur ein wenigen Stellen zu kennen.
Vielen Dank fuer die Hilfe!
Viele Gruesse,
Curiosa
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Eventuell wäre auch numpy für deine Art von Probleme geeignet.
Antworten