AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mathe-Unit mit math. Konstanten ?

Ein Thema von Bastler · begonnen am 27. Aug 2007 · letzter Beitrag vom 27. Aug 2007
Antwort Antwort
Seite 1 von 2  1 2      
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#1

Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:01
Hallo;

Ich bin auf der Suche nach einer Art Mathe-Unit für Delphi.
Ich brauche nämlich in meinem Programm neben Pi und e auch i (den Imaginärteil komplexer Zahlen). Bislang habe ich mir Pi und e, wenn ich es gebracht habe, immer definiert, aber vllt. gibts ja auch ne Unit, die diese Sachen (und am besten noch vieles mehr ) schon hat.
Oder ist es sogar in der Math-Unit von Delphi enthalten und ich habe es nur noch nicht gesehen?

Danke!
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:07
Für das Rechnen mit komplexen Zahlen wird dir eine Konstante nicht reichen. Da müsstest du eine Klasse dafür erzeugen, wofür sich aber eher neuere Delphiversionen (ab D10, wg. Klassenoperatoren) eignen.
Markus Kinzler
  Mit Zitat antworten Zitat
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#3

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:09
Naja, ich will nicht mit imaginären Zahlen sondern "nur" mit komplexen Zahlen rechnen... aber ich glaube, da steh ich vor dem selben Problem, oder?
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#4

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:20
Folgende Konstanten sind aus der Unit JclMath aus der Jedi Code Library kopiert.

Delphi-Quellcode:
{ Mathematical constants }
const
  Bernstein: Float = 0.2801694990238691330364364912307; // Bernstein constant
  Cbrt2: Float = 1.2599210498948731647672106072782; // CubeRoot(2)
  Cbrt3: Float = 1.4422495703074083823216383107801; // CubeRoot(3)
  Cbrt10: Float = 2.1544346900318837217592935665194; // CubeRoot(10)
  Cbrt100: Float = 4.6415888336127788924100763509194; // CubeRoot(100)
  CbrtPi: Float = 1.4645918875615232630201425272638; // CubeRoot(PI)
  Catalan: Float = 0.9159655941772190150546035149324; // Catalan constant
  Pi: Float = 3.1415926535897932384626433832795; // PI
  PiOn2: Float = 1.5707963267948966192313216916398; // PI / 2
  PiOn3: Float = 1.0471975511965977461542144610932; // PI / 3
  PiOn4: Float = 0.78539816339744830961566084581988; // PI / 4
  Sqrt2: Float = 1.4142135623730950488016887242097; // Sqrt(2)
  Sqrt3: Float = 1.7320508075688772935274463415059; // Sqrt(3)
  Sqrt5: Float = 2.2360679774997896964091736687313; // Sqrt(5)
  Sqrt10: Float = 3.1622776601683793319988935444327; // Sqrt(10)
  SqrtPi: Float = 1.7724538509055160272981674833411; // Sqrt(PI)
  Sqrt2Pi: Float = 2.506628274631000502415765284811; // Sqrt(2 * PI)
  TwoPi: Float = 6.283185307179586476925286766559; // 2 * PI
  ThreePi: Float = 9.4247779607693797153879301498385; // 3 * PI
  Ln2: Float = 0.69314718055994530941723212145818; // Ln(2)
  Ln10: Float = 2.3025850929940456840179914546844; // Ln(10)
  LnPi: Float = 1.1447298858494001741434273513531; // Ln(PI)
  Log2: Float = 0.30102999566398119521373889472449; // Log10(2)
  Log3: Float = 0.47712125471966243729502790325512; // Log10(3)
  LogPi: Float = 0.4971498726941338543512682882909; // Log10(PI)
  LogE: Float = 0.43429448190325182765112891891661; // Log10(E)
  E: Float = 2.7182818284590452353602874713527; // Natural constant
  hLn2Pi: Float = 0.91893853320467274178032973640562; // Ln(2*PI)/2
  inv2Pi: Float = 0.159154943091895; // 0.5 / Pi
  TwoToPower63: Float = 9223372036854775808.0; // 2^63
  GoldenMean: Float = 1.618033988749894848204586834365638; // GoldenMean
  EulerMascheroni: Float = 0.5772156649015328606065120900824; // Euler GAMMA

const
  MaxAngle: Float = 9223372036854775808.0; // 2^63 Rad

  {$IFDEF MATH_EXTENDED_PRECISION}
  MaxTanH: Float = 5678.2617031470719747459655389854; // Ln(2^16384)/2
  MaxFactorial = 1754;
  MaxFloatingPoint: Float = 1.189731495357231765085759326628E+4932; // 2^16384
  MinFloatingPoint: Float = 3.3621031431120935062626778173218E-4932; // 2^(-16382)
  {$ENDIF MATH_EXTENDED_PRECISION}
  {$IFDEF MATH_DOUBLE_PRECISION}
  MaxTanH: Float = 354.89135644669199842162284618659; // Ln(2^1024)/2
  MaxFactorial = 170;
  MaxFloatingPoint: Float = 1.797693134862315907729305190789E+308; // 2^1024
  MinFloatingPoint: Float = 2.2250738585072013830902327173324E-308; // 2^(-1022)
  {$ENDIF MATH_DOUBLE_PRECISION}
  {$IFDEF MATH_SINGLE_PRECISION}
  MaxTanH: Float = 44.361419555836499802702855773323; // Ln(2^128)/2
  MaxFactorial = 33;
  MaxFloatingPoint: Float = 3.4028236692093846346337460743177E+38; // 2^128
  MinFloatingPoint: Float = 1.1754943508222875079687365372222E-38; // 2^(-126)
  {$ENDIF MATH_SINGLE_PRECISION}

const
  PiExt = 3.1415926535897932384626433832795;
  RatioDegToRad : Extended = PiExt / 180.0;
  RatioRadToDeg : Extended = 180.0 / PiExt;
  RatioGradToRad : Extended = PiExt / 200.0;
  RatioRadToGrad : Extended = 200.0 / PiExt;
  RatioDegToGrad : Extended = 200.0 / 180.0;
  RatioGradToDeg : Extended = 180.0 / 200.0;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:36
Zitat von Bastler:
Naja, ich will nicht mit imaginären Zahlen sondern "nur" mit komplexen Zahlen rechnen... aber ich glaube, da steh ich vor dem selben Problem, oder?
Du hast das Problem, dass der Rechner (bzw. hier: die FPU) nur mit reellen (eigentlich realen) Zahlen rechnen kann. Der Versor i ist ja keine Konstante in dem Sinne. Eine komplexe Zahl setzt sich immer aus zwei reellen Zahlen zusammen (Realteil, Imaginärteil) oder (Betrag, Phase), und genauso musst du es auch handhaben. Da hilft keine Konstante.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#6

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 11:44
Zitat von Bastler:
Naja, ich will nicht mit imaginären Zahlen sondern "nur" mit komplexen Zahlen rechnen
Hat mkinzler etwas anderes gesagt ? Und "nur"? Komplexe Zahlen sind eine Obermenge der imaginären.

Mit imaginären Zahlen könntest du noch teilweise "normal" rechnen, nämlich bei der Addition und Subtraktion - mit anderen Operationen verlässt du sowieso die imaginären Zahlen. Da dir das wohl nicht genügen wird, musst du die bekannten Formeln entweder direkt in den Quelltext einbetten oder du abstrahierst das eben durch eine neuere Delphiversion, die Records mit Methoden kennt.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#7

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 12:14
Danke an euch alle

@Khabarakh: Ja, mkinzler hatte da mal was von Imaginären Zahle vor dem Edit stehen...

Ja das i nicht einfach ne Konstante ist ist mir klar, aber es hätt ja ne Methode geben können, die diese ganze Problematik aufgreift...

Naja, danke für eure Mühen, ich werde dann man schauen, wie ich das Problem löse.
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 13:35
Zitat von Bastler:
... aber es hätt ja ne Methode geben können, die diese ganze Problematik aufgreift...
In der JCL gibt es die Unit JclComplex zum Rechnen mit komplexen Zahlen.
Dabei sind nicht nur die Grundrechenarten, sondern auch trigonometrische und logarithmische Funktionen vorhanden. Es bleiben keine Wünsche offen.
Andreas
  Mit Zitat antworten Zitat
Bastler

Registriert seit: 15. Aug 2006
153 Beiträge
 
Delphi 7 Personal
 
#9

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 14:43
perfekt
Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher
(A. Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Mathe-Unit mit math. Konstanten ?

  Alt 27. Aug 2007, 14:48
Zitat von shmia:
Folgende Konstanten sind aus der Unit JclMath aus der Jedi Code Library kopiert.

Delphi-Quellcode:
{ Mathematical constants }
const
  Bernstein: Float = 0.2801694990238691330364364912307; // Bernstein constant
  Cbrt2: Float = 1.2599210498948731647672106072782; // CubeRoot(2)
  Cbrt3: Float = 1.4422495703074083823216383107801; // CubeRoot(3)
 //...
Ich will ja jetzt nicht meckern, aber ist es nicht Verschwendung, die Konstante auf 31 Nachkommastellen zu spezifizieren, und sie in einen Float zu quetschen, der nur 6 Stellen packt?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 Uhr.
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