Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Nullstellenberechnung mit Newton (https://www.delphipraxis.net/38304-nullstellenberechnung-mit-newton.html)

JasonDX 17. Jan 2005 14:46


Nullstellenberechnung mit Newton
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab ein kleines Prog geschrieben, dass eine Nullstelle einer Funktion durch das newtonsche Verfahren annähert. (War für die Schule gedacht, ich habs dann ein bisschen ausgeweitet)

Das Programm kann
Das Programm kann:
:arrow: Nullstelle einer Funktion anhand newtonschem Verfahren annähern
:arrow: Die Funktion samt Ableitung zeichnen

Wobei bei den Funktionen folgende Regeln beachtet werden müssen:

:arrow: 5x ist nicht erlaubt (5*x schreiben), auch nicht 3(x-1) (-> 3*(x-1) )
:arrow: x^x ist nicht erlaubt (d.h. x im exponenten. gibt manchmal schwierigkeiten)
:arrow: folgende Funktionen sind aufrufbar: sin, cos, tan, ln, arcsin, arccos, arctan




Ich würde mich (egal ob positive oder negative, hauptsache konstruktive) Kritik sehr freuen, über Fehlermeldungen zwar weniger, aber schreibt die trotzdem ;)





Anmerkung: Der Parser, der enthalten ist, stammt ursprünglich von Skiron und wurde (mit seiner Erlaubnis) implementiert und auch weiterentwickelt




Edit1: Neue Version
Edit2: Neue Version

Elite 17. Jan 2005 14:57

Re: Nullstellenberechnung mit Newton
 
1. Wenn man nur oft genug ein Quadrat auswählt und dieses heranzoomt, erreicht man irgendwann eine Division/0-Message
2. Wenn man etwas unkontrollierter Button klickt, verläuft sich das Programm in irgendwelchen Warte-Routinen und lässt sich nicht mehr auf der Stelle beenden. Am besten die Verzögerungen ganz rausnehmen, finde ich.

JasonDX 17. Jan 2005 15:29

Re: Nullstellenberechnung mit Newton
 
Zu 1.: Dürfte beseitigt sein. (Habs dann auch mitm rauszoomen ausgeschlossen)
Zu 2.: Ich habs bei meinem Rechner zwar nicht geschafft, aber ich hab mal trotzdem versucht, das auszuschließen

Ach ja, und wenn man eine etwas längere Funktion (oder eine ohne Nullstellen) analysieren will, kann es sein, dass es manchmal etwas länger dauert ;)
Es sollte dann aber möglich sein, mit dem Abbrechen-Button das Analysieren abzubrechen.

mirage228 17. Jan 2005 18:08

Re: Nullstellenberechnung mit Newton
 
Hi,

erstmal schönes Programm :thuimb:

Jedoch habe ich einen kleinen Fehler gefunden.

Ich habe die folgende Funktion analysieren lassen:
Zitat:

x^7+x^6-66*x^4+32^x+41
Das hat noch geklappt. Jedoch erhielt ich beim Klick auf "+" die Meldung:

Zitat:

---------------------------
Newton
---------------------------
Invalid floating point operation.
---------------------------
OK
---------------------------
mfG
mirage228

JasonDX 17. Jan 2005 18:47

Re: Nullstellenberechnung mit Newton
 
Zitat:

Zitat von mirage228
Hi,

Ich habe die folgende Funktion analysieren lassen:
Zitat:

x^7+x^6-66*x^4+32^x+41

Im 1. Post hab ich geschrieben

x^x ist nicht erlaubt (d.h. x im exponenten. gibt manchmal schwierigkeiten)


könnt daran liegen :zwinker:

mirage228 17. Jan 2005 18:48

Re: Nullstellenberechnung mit Newton
 
Ups,

das sollte eigentlch 32*x heissen. Dann habe ich mich wohl beim Schreiben vertippt, sorry :oops:

mfG
mirage228

JasonDX 17. Jan 2005 19:24

Re: Nullstellenberechnung mit Newton
 
hmmm
Ich schau mal
Bei mir kommt die Fehlermeldung zwar nicht, aber ich schau mal was es sein könnt ;)

Dust Signs 17. Jan 2005 19:42

Re: Nullstellenberechnung mit Newton
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi :)!

1.) Den Fortschrittsbalken kannst du weglassen - braucht keiner

2.) Dass ln(x) bei -26,2 eine Nullstelle hat wage ich zu bezweifeln

3.) Wenn ich tna(x) eingebe (zB weil ich mich aus Versehen vertippe) erhalte ich eine Reihe Fehlermeldungen und es geht nichts mehr

4.) Wenn ich die Ableitungsfunktion manuell eingebe ändert sich die Nullstelle. Beispiel:

Zitat:

f(x)=x*(x+ln(x))
f'(x)=1
liefert mir eine Nullstelle bei 3,6E28 (wo sie unter Garantie keine Nullstelle hat). Klicke ich nun auf "Nullstelle anzeigen" stürzt das Programm mit einer Invalid Floating Point Operation ab.

5.) Lasse ich deine Programm automatisch ableiten (nach 4.) ) sieht das Programm so aus, wie im Anhang sehen kannst. Hm, ganz nett diese Strichstärke...

6.) tan(x) wird - wenn man weit genug herauszoomt - extrem falsch dargestellt

7.) Mich würde interessieren, warum dein Programm bei Funktionen wie sin(x) keine "normale" Nullstelle, sondern zB 14,13 berechnet. Zur Erklärung: eine "normale" Nullstelle wäre zB sowas wie 0

8.) arcsin(x) liefert mir einen Invalid Floating Point Error, ebenso arccos(x)

9.) arctan(x) hat genau eine Nullstelle, und die liegt weder bei -1,3E43, noch bei -1,57

10.) Folgende Funktion erzeugt einen Stack Overflow:
Zitat:

(sin(x)/x)*tan(x)/(1+ln(x))
11.) Schön langsam hab ich keine Lust mehr auf noch mehr Fehler...

Dust Signs

JasonDX 17. Jan 2005 20:00

Re: Nullstellenberechnung mit Newton
 
wow
jetzt hab ich mal ne beschäftigung für diese und nächste woche!
thx mal! werd mir alles anschaun und korrigieren
thx nochmal! :thumb:

matrose88 9. Mai 2006 15:10

Re: Nullstellenberechnung mit Newton
 
Hallo JasonDX!
Könnte ich mal den Code von deinem Prog 'Newton'haben?
Bitte stelle ihn dann hier zum Download zur Verfügung!
Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:26 Uhr.
Seite 1 von 2  1 2      

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