Autor Beitrag
ImbaPanda
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 98

Windows XP/Vista
Delphi 7 Professional/ Rad Studio 2009
BeitragVerfasst: Mi 02.01.08 19:23 
Also mein Problem sieht wie folgt aus, ich habe diverse Funktionen wie zB:
f(x)=x^2+4x

Nun will ich herausfinden wann dieser Term null wird, ich setze ihn also gleich null
x^2+4x=0

Bei solch einfachen Funktionen ist das ganze kein Problem, aber bei etwas komplizierteren Funktionen bleib ich da stecken:
zB: f(x)=(ln(x)+4x) / sin(x^2)

Kennt jemand zufällig einen Algorithmus bzw. ein Verfahren mit dem man derartige Gleichungen lösen kann?

Schonmal danke für alle Ideen
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mi 02.01.08 19:31 
Da gibt es diverse Verfahren. such mal nach 'Newton', 'Regula Falsi'. Regula Falsi ist sehr leicht zu implementieren, allerdings benötigt man zwei X-Werte (X1 und X2), wobei f(x1) < 0 und f(x2) > 0 sein muss. Oder umgekehrt.

Beim Newton-Verfahren benötigst du die 1.Ableitung, die Du jedoch sehr leicht ausrechnen kannst. Z.B. so

ausblenden Quelltext
1:
f'(x) = [f(x+dx) - f(x) ] / dx					

Wobei dx irgendwas Kleines sein sollte. 10^-5 z.B. Kommt aber auf die Funktion an.

_________________
Na denn, dann. Bis dann, denn.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19321
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 02.01.08 23:49 
Was die Ableitung angeht: Eine symbolische Ableitung ist eigentlich relativ einfach, ich habe das selbst schon in Delphi implementiert (genau wie die ein wenig kompliziertere Integration), und es gibt dafür auch Freeware Quelltexte für Delphi, zum Beispiel hier: www.aidaim.com/produ...ponents/difr_spc.php

Und damit kannst du ja dann das Newton-Verfahren durchführen. Units mit Parsern zur Auswertung von Mathematischen Ausdrücken gibt es ja fast wie Sand am Meer, dies hier ist ein bei vielen Auswertungen der selben Funktion sehr schnelles Exemplar: www.delphipraxis.net/topic49639.html