Feedback

VB - Quadratwurzel ohne Sqrt() Funktion ziehen

Veröffentlicht von am 14.11.2006
(4 Bewertungen)
Nun ich weiß das es bereits eine Funktion zum Wurzeln ziehen im Framework gibt aber ich wollte es auch als eigene Funktion veröffentlichen damit man sehen kann wie das ganze funktioniert.
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

ASP.NET Core - Der Einstieg

In nur 3 Tagen lernen Sie, wie man mit ASP.NET Core und den Technologien MVC, Entity Framework, WebAPI und Razor professionelle Web-Anwendungs-Architekturen aufbaut. Diese Schulung ist der perfekte Einstieg, um datengetriebene und präsentations-orientierte Applikationen auf Basis der ASP.NET Core Plattform zu erstellen.

Public Function SquareRoot(ByVal Expression As Double) As Double
    Dim Number As Double = 1
    Dim Tmp As Double = 0

    For i As Long = 1 To CLng(Expression)
        Number = 0.5 * (Number + (Expression / Number))
        If Tmp = Number Then Return Number
        Tmp = Number
    Next
    Return Number
End Function
Abgelegt unter Wurzel, Mathe.

2 Kommentare zum Snippet

Günther Foidl schrieb am 25.09.2008:
Aus numerischer Sicht ist ein Vergleich mit = bei Gleitkommazahlen nicht unproblematisch - aufgrund der ungenauen Darstellung dieser Zahlen.

Besser wäre ein Vergleich der Art:

If (Abs(Tmp - Number) < epsilon) Then Return Number

wobei epsilon für die Maschinengenauigkeit steht.
Siehe auch http://dotnet-snippets.de/dns/maschinengenauigkeit-SID961.aspx
Harper schrieb am 11.12.2008:
Public Function SquareRoot(ByVal Expression As Double, ByVal Potenz as Byte) As Double
Dim Number as Double
Number = Expression ^ (1/Potenz)
Return Number
End Function

Ich habs mal umgeschrieben, weil es sich für Wuzelooperationen einfach gut macht ;)

Eine Wurzel ist nichts anders als eine umgekehrte Potenzierung, also muss die Potenz nur negiert werden, dabei gilt, eine Potenz von 1 gibt den natürlichen Wert zurück, während Potenzen < 1 und > 0 die Wurzel darstellt. Somit hast Du nun eine klitze kleine Funktion und fundamentales mathematisches Wissen, um alle Potenzaufgaben zu lösen.

Harper
(Kryptographischer Wahnsinn in Zahlen und Worten)
 

Logge dich ein, um hier zu kommentieren!