AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ableitung programmieren

Ein Thema von TM. · begonnen am 26. Nov 2009 · letzter Beitrag vom 26. Nov 2009
Antwort Antwort
TM.

Registriert seit: 22. Jul 2006
42 Beiträge
 
#1

Ableitung programmieren

  Alt 26. Nov 2009, 15:29
Hallo,

habe vor einiger Zeit angefangen, ein Funktions-Programm zu schreiben.
Eingebaut habe ich mittlerweile einen Parser, graphische Darstellung mit möglicher Zoom- und Genauigkeitänderung plus "Markierung" eines bestimmten Punktes der Funktion.

Nun habe ich mich an die Ableitung gewagt, die für verschiedene nächste Schritte benötigt wird.
Dazu lese ich alle Werte der eingegebenen Funktion - durch Rechenzeichen etc. getrennt - aus, leite diese dann einzeln ab und setze sie wieder in die Funktion ein.
Bsp. f(x) = x²+22x+5
Werte: x^2; 22x; 5;
Ableitungen: 2x; 22; 0;
Eingesetzt: 2x+22+0

Allerdings kann ich so nur "einfache" Funktionen wie diese ableiten. Für verkettete Funktionen wie bspw. sin(x²) müsste ich dazu nun anders vorgehen; Ableitung hier wäre ja cos(x²) * 2x.

Welche Systematik kann ich hier anwenden? Genügt es, einfach den Inhalt einer Klammer getrennt zu behandeln? Würde das auch mit mehreren Verkettungen funktionieren?

Habe jetzt eine ganze Weile herumgesucht; allerdings nichts Brauchbares finden können.

Vielleicht hat jemand hier eine Idee.

TM.
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#2

Re: Ableitung programmieren

  Alt 26. Nov 2009, 15:33
Hi! Würde sagen, wenn du es analytisch rechnen willst, muss dein Programm die Ableitungen der Grundfunktionen kennen, also z.B:

sin(x)->cos(x)
cos(x)->-sin(x)
exp(x)->exp(x)

usw...


Dann wendest du die Kettenregel an, also dein Programm schaut sich erst den ausdruck in der klammer an, leitet den ab und multipliziert das ergebnis mit der ableitung der äußeren funktion.

Wenn dein Parser gut ist bzw. dein Programm die Definitionen von sin, cos, tan etc. über die exp funktion kennt, würde es theoretisch auch reichen, wenn du die ableitungsregeln für die exp funktion implementierst und dann aus dem ergebnis den sin, cos etc. "herraussuchst"...
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
TM.

Registriert seit: 22. Jul 2006
42 Beiträge
 
#3

Re: Ableitung programmieren

  Alt 26. Nov 2009, 16:17
Hallo,

habe deinen letzten Satz leider nicht ganz verstanden. Was meinst du mit dem heraussuchen nach dem Implementieren?

Danke für deine Antwort, ich versuche es jetzt einmal mit den Klammern als Kriterium.

TM.
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Ableitung programmieren

  Alt 26. Nov 2009, 16:39
Hey!

Also du kannst ja cos und sin über die komplexe Exponentialfunktion ausdrücken:

http://upload.wikimedia.org/math/7/1...ff68c330f4.png
http://upload.wikimedia.org/math/f/3...a3949e366c.png

D.h. wenn dein Programm die Ableitung der exponentialfunktion beherrscht, kannst du vor dem Ableiten die Sinus und Kosinus Funktion in Exponentialfunktionen umformen (mithilfe der zwei Gleichungen), dann ableiten und anschließend müsste dein Programm aus den Abgeleiteten Exponentialfunktionen dann wieder den Sinus bzw. Kosinus "erkennen"... also quasi das selbe, wie vor dem Ableiten, nur in umgekehrter Reihenfolge...
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
TM.

Registriert seit: 22. Jul 2006
42 Beiträge
 
#5

Re: Ableitung programmieren

  Alt 26. Nov 2009, 17:39
Hi,

danke für die Erklärung...
Im Moment hänge ich allerdings an anderen Probleme; da die Verkettungsfunktionen so vielfältig sein können, müsste ich erst eine Menge anderer Vorarbeit leisten... Mal sehen, ob ich so etwas überhaupt hinbekomme.

TM.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: Ableitung programmieren

  Alt 26. Nov 2009, 17:52
Richtig.

Aber wie unser Mathelehrer sage: "Differenzieren ist Arbeit, Integrieren ist Kunst"

Du kannst also zu der Funktion durch konsequenten Anwenden der 3 Regeln (Kettenregel, Produktregel, Quotientenregel) immer die Ableitung herausfinden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz