[QUIZ#16] Lisas Ableitungen

OnlyFoo

Erfahrenes Mitglied
Quiz #16
Lisas Ableitungen

Regeln
Die Regeln und der Ablauf der Quizrunde können in der entsprechenden Ankündigung eingesehen werden. Bitte lest sie euch aufmerksam durch, da sie alle wichtigen Informationen enthält. Es ist erlaubt und erwünscht, dass ihr euch direkt in diesem Thema über die Aufgabe austauscht. Also stellt bei Unklarheiten in der Aufgabenstellung oder Problemen bei der Umsetzung Fragen, versorgt uns mit nützlichen oder weiterführenden Links, diskutiert mögliche Lösungsansätze. Macht bei Beiträgen, die allzu viel verraten, aber bitte trotzdem Gebrauch vom [spoiler]-Tag.

Abgabe
Die Abgabe erfolgt wie immer im Abgabeforum. Abgabefrist ist Sonntag, der 23. Mai 2010 um ca. 18 Uhr (Das ist dieses Mal in zwei Wochen).

Die Aufgabe
Lisa sitzt in ihrem Mathekurs und muss für die Hausaufgaben ganz viele partielle Ableitungen von irgendwelchen Funktionen machen. Mensch wie sie sich darauf freut - ach warte, tut sie doch nicht. Klug wie sie ist weiß sie, dass das Ableiten einer Funktion relativ direkt simplen Gesetzmäßigkeiten folgt - und da sie in Informatik gut aufgepasst hat, weiß sie natürlich, dass solche Aufgaben gut mit dem PC umsetzbar sind.
Jedoch hat Lisa kein Geld für teure Produkte, also denkt sie sich: Das kann ich - mit ein wenig Hilfe von euch - selber schreiben!

Also hilf Lisa ein Programm zu schreiben, welches zuerst in einer Zeile die Formel erwartet, und in einer zweiten dann die Variable, nach der die Formel abgeleitet werden soll. Daraufhin gibt das Programm die Ableitung aus.

Beispiel
Code:
> 5 * a^2 + b
> a
< 5 * 2 * a^1

oder, etwas komplizierter
Code:
> 5 * (3*x+a)^2
> x
< 5 * 2(3*x+a) * 3

Wenn Lisa's Programm das könnte, dann wäre sie schon recht zufrieden.
Es wäre natürlich optimal, wenn es z.B. [Erweiterung 1] die Terme noch vereinfacht. 5 * 2 * x sieht ja nicht so schön aus wie z.B. 10 * x.
Es wäre natürlich auch Klasse, wenn sie ihre Funktionen [Erweiterung 2] graphisch ausgegeben bekommen würde.

Tipp
Wem das korrekte Parsen von Ausdrücken erstmal zu kompliziert ist, kann ja auch bereits geparste Ausdrücke direkt in seinen Code einsetzen und damit den ganzen Schritt überspringen .

Und jetzt ran an die Tasten und viel Spaß beim Programmieren!
 
Zuletzt bearbeitet:

vop

Erfahrenes Mitglied
Müsste es statt
Code:
> a * x^(b * x^2)
> x
< a * x^(b * x^2) * (b * 2 * x)
nicht so aussehen:
Code:
> a * x^(b * x^2)
> x
< a * (b*x^2) * x^(b * x^2 -1) * (b * 2 * x)
(äußere Ableitung mal innere Ableitung?)
vop
 
Zuletzt bearbeitet:

OnlyFoo

Erfahrenes Mitglied
Oops,sorry. Ich hab irgendwie versagt als ich die Beispiele geschrieben habe. Habs ausgebessert!
 

CookieBuster

Erfahrenes Mitglied
Sollte ich mich nicht irren, dann wurde hier eine äußerst geschickte Aufgabe gewählt.

Das Problem hier ist, dass man z.B. a^x nicht einfach Ableiten kann.

Hier kommt die eulerische Zahl in's Spiel

Code:
-- Es gilt
e^(ln(y)) = y

-- außerdem gilt
für f(x) = e^x
ist f'(x) = e^x

--Somit kann man a^x wie folgt umschreiben
y = a^x
g(x) = e^(ln(a^x))

-- Mit Hilfe der Potzenzgesetzt gilt
g(x) = e^(x * ln(a))

-- Und damit ist es für ottonormal Verbraucher möglich a^x abzuleiten. (Kettenregel wird angewandt)
g'(x) = e^(x * ln(a)) * ln(a)

Jetzt zu der oben gestellten Aufgabe. Wir haben hier ein quasi ein x^x stehen. Somit ein wenig ungeschickter, aber möglich durch selbige Regel

Code:
f sei eine Funktion mit x -> a * x^(b * x^2)

-- mit obiger Regel
f(x) = a * e^(ln(x^(b * x^2))

-- Wieder Potzengesetze
f(x) = a * e^(ln(x) * (b * x^2))

-- So ist die Ableitung dann möglich, der rot markierte Teil ist im gesamten die Kettenregel für die Potenz von e. 
-- Innerhalb dieser Klammer wurde die Produktregel angewendet
f'(x) = a * e^(ln(x) * (b * x^2)) *  [ (1/x) * (b * x^2) + ln(x) * 2 * b * x]

Ich hoffe, dass ich keinen Fehler gemacht habe.


Ich denke ich spreche für die meisten Leute die sich an dieser Aufgabe versuchen. Gemäß dem Fall, dass ich recht habe (wovon ich ausgehe :p), sollte ein x^x -Fall ausgeschlossen werden *g*. Bzw ein a^x -Fall.
Beides zwar auch relativ "einfach" lösbar, aber für den "normalen" Bürger schon etwas komplexer.

Könnte man vielleicht einfach als eine Erweiterung ansehen.
 
Zuletzt bearbeitet:

vop

Erfahrenes Mitglied
Stimmt.

Ich denke auch, die Aufgabe sollte sich zunächst auf ganzrationale Funktionen beschränken.

Produkt, Quotienten und Kettenregeln sowie besondere Ableitungen für sin, cos, e^x, ln(x) können ja zunächst vernachlässigt werden.
 

OnlyFoo

Erfahrenes Mitglied
die Schulzeit ist bei mir schon etwas länger her und in letzer Zeit habe ich ziemlich selten differenzieren müssen. Ich hab meinen Fehler entdeckt und ich meinte eigentlich auch nur verhältnismäßig einfache Ableitungen. Dabei hab ich jedoch irgenwo falsch gedacht und dann kamm das da unten dabei raus. Ich werd die Beispiele jetzt sofort ändern... *versagt hab, schäm*

So, geändert. Wenn das nochmal jemand überprüfen mag? ^^
 
Zuletzt bearbeitet:

CookieBuster

Erfahrenes Mitglied
Beim zweiten Beispiel hat sich leider wieder ein kleiner Fehler eingeschlichen. Jaja man wird alt :p

Code:
5 * 2(3*x+a) * 3

Kettenregel.
Außere Ableitung [ Klammer^1 * 2 ]
Mulitipliziert mit der inneren Ableitung [ 3 * x^0 ]