Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Nullstellen (https://www.delphipraxis.net/141091-nullstellen.html)

leddl 2. Okt 2009 15:03

Re: Nullstellen
 
Zitat:

Zitat von mkinzler
Nein, Mitternachtsformel heisst, diese ja nur, da man diese aufsagen können sollte, wenn man um Mitternacht geweckt wird, über den Weg sagt das ja nichts aus

:gruebel: Und? Was hat die Herkunft des Namens damit zu tun? :gruebel:

Gut, wir können da jetzt noch ewig diskutieren, aber im Allgemeinen wird nunmal der Name Mitternachtsformel für die ABC-Formel benutzt. Der spezielle Fall a=1 wird entsprechend normalerweise nur als PQ-Formel bezeichnet. Ich konnte jetzt auch gerade bei einer kurzen Google-Suche keinen Fall entdecken, in der die PQ-Formel als Mitternachtsformel bezeichnet wird. Das deckt sich absolut mit meinen Erfahrungen ;)

sx2008 2. Okt 2009 19:55

Re: Nullstellen
 
Ich würde das Ganze noch mit Out-Parametern und Anzahl der Lösungen aufhübchen:
Delphi-Quellcode:
function BerechneNullstellen(a{*x^2 + }, b{*x + }, c: Double; out Null1,Null2:Double):integer;
var
  discrim : double;
begin
  if a = 0.0 then
  begin
    if b = 0.0 then
    begin
      if c = 0.0 then
        result := 4  // unendlich viele Nullstellen
      else
        result := -1; // keine Lösung
    end
    else
    begin
      Null1 := -c / b; // Funktion ist eine Gerade
      result := 1; // mit einer Nullstelle
    end;
  end
  else
  begin


  //Variablen durch a teilen, damit PQ-Formel anwendbar
  b := b / a;
  c := c / a;

  discrim := sqr(b/2)-c;
  //Prüfen, ob Diskriminante > 0
  if discrim > 0.0 then
  begin
    //Nullstellen ausrechnen
    Null1 := (-b/2.0) + Sqrt(discrim);
    Null2 := (-b/2.0) - Sqrt(discrim)
    result := 2; // 2 Lösungen
  end
  else if discrim < 0.0 then
    result := 0; // keine Lösung bzw. Lösung ist im komplexen Zahlenraum
  else
  begin
    Null1 := -b/2.0;
    Null2 := Null1;
    result := 1; // doppelte Nullstelle
  end;
  end;
end;

Wolfgang Mix 2. Okt 2009 20:26

Re: Nullstellen
 
Da beide Formeln absolut identisch sind, ;-) können wir hier in diesem Thread noch ein Jahr weiter diskutieren. Ich nehme die pq-Formel seit 45 Jahren, auch im komplexen Zahlenraum zur Berechnung von z.B. analoger Filterschaltungen und sehe keine Vorteile weder in der einen noch in der anderen Lösungsmöglichkeit.

Seid gegrüßt

Wolfgang


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 Uhr.
Seite 2 von 2     12   

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