Delphi-PRAXiS
Seite 5 von 14   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kompilierender Matheparser (https://www.delphipraxis.net/46536-kompilierender-matheparser.html)

Dust Signs 27. Mai 2005 16:26

Re: Kompilierender Matheparser
 
Hier mal die Areafunktionen (Hauptwerte):

Code:
Arsinh z = Ln( z + sqrt(z^2 + 1)
Arcosh z = Ln( z + sqrt(z^2 - 1)
Artanh z = Ln[sqrt((1 +z)/(1-z))]
Wobei alle vorkommenden Funktionen komplex sind, d.h. zB beim Artanh, dass Ln und Sqrt ein komplexes Ergebnis liefern müssen. Wegen den inversen Kreisfunktionen such ich noch. Hier noch die Hyperbelfunktionen, falls du sie noch nicht hast:

Code:
sinh z = sinh(x)*cos(y) + j*cosh(x)*sin(y)
cosh z = cosh(x)*cos(y) + j*sinh(x)*sin(y)
tanh z = [sinh(2x) + j*sinh(2y)]/[cosh(2x) + cos(2y)]
wobei z (komplex) = x+ jy. Hier sind die normalen Funktionen gemeint - also die normalen Hyperbelfunktionen (z.B. cos(2y) ist einfach der Cosinus vom Imaginärteil * 2)

Dust Signs

//EDIT:

Zitat:

Zum Thema 0^0: Es ist definiert: x^0 = 1 für alle x element R. Ich wüsste nicht, dass die 0 da einen Sonderfall darstellt.
Ist eine sogenannte unbestimmte Form und lässt sich durch Limesrechnung beweisen ;)

//EDIT 2:

Hab die Arcusfunktionen doch noch gefunden - der Arcustangens fehlt noch, aber den treib ich noch irgendwo auf ;)

Code:
Arcsin z = -j * Ln(j*z + Sqrt(1 - z^2))
Arccos z = -j * Ln(z + Sqrt(z^2 - 1))
wobei hier Ln und Sqrt auch wieder komplex arbeiten müssen

dizzy 27. Mai 2005 16:35

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dust Signs
Zitat:

Zum Thema 0^0: Es ist definiert: x^0 = 1 für alle x element R. Ich wüsste nicht, dass die 0 da einen Sonderfall darstellt.
Ist eine sogenannte unbestimmte Form und lässt sich durch Limesrechnung beweisen ;)

Der Beweis würde mich interessieren!


Zitat:

Zitat von Dust Signs
Hab die Arcusfunktionen doch noch gefunden - der Arcustangens fehlt noch, aber den treib ich noch irgendwo auf ;)
Code:
Arcsin z = -j * Ln(j*z + Sqrt(1 - z^2))
Arccos z = -j * Ln(z + Sqrt(z^2 - 1))
wobei hier Ln und Sqrt auch wieder komplex arbeiten müssen

Komplexe Ln und Sqrt sind drin. Danke dir ganz kräftig für die Formeln! Ich nehme die Anwendbarkeit auf zerlegte Quaternionen einfach mal an - es geht mit eigentlich jeder anderen Funktion/Operator ja auch ;).

OT: Woher kannst du das mit 18 schon alles? Ich hatte damals keinen Lehrer an unserer Schule der mir grad mal das Wesen der komplexen Zahlen erklären konnte. Ich musse leider komplett autodidaktisch ran :?.


\\EDIT: Deine Signatur is mal geil ^^

\\EDIT2: Die komplexen hyperbolischen Funktionen sind drin - jedoch nicht die inversen dazu.

Dax 27. Mai 2005 16:42

Re: Kompilierender Matheparser
 
So, neue Echsen und Soßen gegen jim's AV-Problem sind oben, aber gegen DS' tan hab ich leider nich nix tun können :?

Ich geh jetzt rasen mähen *bäh* Dann implementier ich nach möglichkeit die Arcusfunktion usw und mach die CaseSensitivity weg

Dust Signs 27. Mai 2005 16:44

Re: Kompilierender Matheparser
 
Zitat:

Zitat von dizzy
Zitat:

Zitat von Dust Signs
Zitat:

Zum Thema 0^0: Es ist definiert: x^0 = 1 für alle x element R. Ich wüsste nicht, dass die 0 da einen Sonderfall darstellt.
Ist eine sogenannte unbestimmte Form und lässt sich durch Limesrechnung beweisen ;)

Der Beweis würde mich interessieren!

Müsst ich suchen, hab ich nicht da atm.

Zitat:

OT: Woher kannst du das mit 18 schon alles? Ich hatte damals keinen Lehrer an unserer Schule der mir grad mal das Wesen der komplexen Zahlen erklären konnte. Ich musse leider komplett autodidaktisch ran :?.
In der Schule (Gymnasium) haben wir nie komplexe Zahlen gemacht, aber jetzt in der FH machen wir das schon fast ein ganzes Semester lang (bin jetzt im 2. Semester)

Zitat:

\\EDIT: Deine Signatur is mal geil ^^
Thx :mrgreen:

Zitat:

\\EDIT2: Die komplexen hyperbolischen Funktionen sind drin - jedoch nicht die inversen dazu.
Die hab ich doch gepostet, das sind die Areafunktionen

Dust Signs

//EDIT: @Dizzy: Zu OT (18 und komplexe Zahlen): können uns gerne über Messenger (dustsigns@hotmail.com) weiter darüber unterhalten, damit wir das Topic hier nicht zuspammen. Und zwecks Eigennutzen :mrgreen: <werbung> http://www.dustsigns.de.vu/cmpxcalc.html </werbung>

jim_raynor 27. Mai 2005 17:05

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dax
So, neue Echsen und Soßen gegen jim's AV-Problem sind oben, aber gegen DS' tan hab ich leider nich nix tun können :?

Ich geh jetzt rasen mähen *bäh* Dann implementier ich nach möglichkeit die Arcusfunktion usw und mach die CaseSensitivity weg

Der Fehler ist behoben, nur hab ich gemerkt, dass das Ergbnis völlig falsch war. Recherchen haben ergeben, dass meine Formel falsch war und nun korrigiert habe. Leider bekomme ich mit der neuen Formel (A*B/100*(1/(C*C))*(D*D)) beim zweiten Berechne (dann ist es egal welche Formel) wieder eine AV :(

Sieht so aus, als ob er bei komplexeren Formeln Probleme hätte :( Hoffentlich bekommst du das in den Griff ;) Aber auf jeden Fall bisher gute Arbeit, vor allem weil dies der Anfang für einen Compiler größerer Art ist ;)

Dust Signs 27. Mai 2005 17:06

Re: Kompilierender Matheparser
 
Hier ein Beispiel für 0^0, wo nicht 1 herauskommt. Ist zwar kein Beweis, aber immerhin ein Beispiel dafür, dass 0^0 nicht immer 1 ist:

Code:
f(x) = x^(r / ln(x))
für r Element R (rationale Zahlen)

Code:
lim x->0+ f(x)
Anmerkung: gegen 0+ deshalb, weil der Ln einer negativen Zahl ja komplex wäre

Hier haben wir eine unbestimmte Form 0^0. Lösen kann man das Ganze durch Logarithmieren:

Code:
Ln f(x) = r / ln(x) * ln(x)
wobei sich hier das ln(x) kürzt

Also im Limes:

Code:
lim x->0+ r
und da r unabhängig von x ist, kommt hier r heraus. Da wir jetzt aber die logarithmierte Funktion haben, müssen wir diese wieder e^ nehmen, also:

Code:
e^r
, wodurch sich der Limes ergibt:

Code:
lim x->0+ f(x) = e^r
, was man mit jedem besseren Taschenrechner (z.B. TI-92) nachprüfen kann

Dust Signs

dizzy 27. Mai 2005 17:09

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dust Signs
Müsst ich suchen, hab ich nicht da atm.

So dringend ist's auch nicht. Wenn es dir mal in die Hände fällt... :)
\\Edit: Dein Beispiel ist schon sehr einleuchtend! Danke dir. Wieder was gelernt :)

Zitat:

Zitat von Dust Signs
In der Schule (Gymnasium) haben wir nie komplexe Zahlen gemacht, aber jetzt in der FH machen wir das schon fast ein ganzes Semester lang (bin jetzt im 2. Semester)

Letztes OT, dann bin ich zu frieden: Okay, ich war bis 19 an der Schule (-> Vollabi und 13 Jahre lang). Dann ist das geklärt.

Zitat:

Zitat von Dust Signs
Die hab ich doch gepostet, das sind die Areafunktionen

:wall:

Zitat:

Zitat von Dust Signs
//EDIT: @Dizzy: Zu OT (18 und komplexe Zahlen): können uns gerne über Messenger (dustsigns@hotmail.com) weiter darüber unterhalten, damit wir das Topic hier nicht zuspammen. Und zwecks Eigennutzen :mrgreen: <werbung> http://www.dustsigns.de.vu/cmpxcalc.html </werbung>

Programm ist nett, Thema geklärt, und nen Messenger hab ich (noch) keinen :mrgreen:. (Wird aber immer nötiger...)

Dax 27. Mai 2005 17:23

Re: Kompilierender Matheparser
 
@kirk_raynor: Ich hab als Übeltäter den PreSolver entlarvt, wird der ausgeschaltet funktioniert deine Formel ;-) Aber besser als ausschalten ist korrigieren, und das mach ich jetzt mal.

Dax 27. Mai 2005 17:50

Re: Kompilierender Matheparser
 
So... jims Parsermörderformel funktioniert wieder, Echse und Soßen sind auf dem aktuellen (funktionierenden) Stand :)

Dax 27. Mai 2005 22:02

Re: Kompilierender Matheparser
 
Und die Bugfixes nehmen kein Ende ;) Wieder eine von jims Parsermörderformeln "ausgebügelt" :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.
Seite 5 von 14   « Erste     345 67     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz