Sqr mit Genauigkeitsangabe

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

Vertex

Betreff: Sqr mit Genauigkeitsangabe

BeitragSa, Apr 03, 2004 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Folgende Funktion ist ca. 300 mal langsamer als die normale sqr Funktion,
doch hier kann man die Genauigkeitsabweichung angeben.
BlitzBasic: [AUSKLAPPEN]
Function sqr2#(value#, error#)
Local a#, b#

a# = 1.0
b# = value#
Repeat
b# = (b# + a#)/2.0
a# = square#/b#
Until (b#-a#)<error#
End Function

Funktioniert nach dem Heronsche Algorithmus.
a# und b# sind die Seitenlängen eines Rechteckes. a# und b# werden
durch das arithmetische Mittel (also (b# + a#)/2.0) nach und nach
gleich gemacht, so das a# * b# = value# ist, da sqr#(value#)*sqr#(value#) = value# sein muss.
error# gibt die max. Abweichung zwischen a# und b# an.
mfg olli
vertex.dreamfall.at | GitHub
 

walski

Ehemaliger Admin

BeitragSo, Apr 04, 2004 12:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Da hat sich aber der Fehlerteufel eingescfhlichen Wink

Zitat:

Function sqr2#(value#, error#)
Local a#, b#
a# = 1.0
b# = value#
Repeat
b# = (b# + a#)/2.0
a# = value#/b#
Until (b#-a#)<error#
Return value#
End Function


Aber so geht es Wink

walski

[EDIT]
Sorry, dass die Einrückung weg ist, aber der <CODE> Tag deaktiviert leider den <B> Tag und somit musste ich den Code als Zitat einfügen... und der <QUOTE> Tag unterstützt wiederum keine Einrückung Wink
[/EDIT]
buh!

Vertex

BeitragSo, Apr 04, 2004 14:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh, sorry. Hatte das vorher noch ohne Funktion ausprobiert, und hier
beim beitrag schreiben in eine Funktion umgecodet. Wobei nicht
value# zurückgegeben werden darf, da ja die Seitenlänge a# und b#
angepasst wird.

BlitzBasic: [AUSKLAPPEN]

Function sqr2#(value#, error# = 0.00001)
Local a#, b#

a# = 1.0
b# = value#
Repeat
b# = (b# + a#)/2.0
a# = value#/b#
Until (b#-a#)<error#

Return a#
End Function

Print sqr2#(25.0)
WaitKey
vertex.dreamfall.at | GitHub
 

walski

Ehemaliger Admin

BeitragSo, Apr 04, 2004 14:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh... Embarassed das hab ich natürlich nicht bedacht...

walski
buh!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group