![]() |
Sinus-Problem
Hallo zusammen,
ich habe ein kleines (Großzahligs Problem). Und zwar möchte ich SinusCosinus-Werte für große Frequenzen ausgeben lassen. Heisst dass das Argument vom Sinus auch den Wert von 1E+15 übersteigen kann. Bis zu dieser Grenze sind alle Sinuswerte zwischen -1 und +1 was ja auch richtig ist. Werte darüber liefenr jedoch Sinus-Werte, die alle Grenzen sprengen. Z.B. sin(5E+19)=5E+19. Sprich der SInus kann diese Zahlen offenbar nicht mehr verarbeiten. Gibt es nun dabei eine Beschränkung des Zahlenbereichs, den der Sinus (numerisch) verarbeiten kann? Oder gibt es vielleicht einen kleinen Trick dass man doch die richtigen Werte bekommt? Freue mich auf eure Antworten und bedanke mich schonmal im Voraus mfg [edit=Matze]Sprache von "Delphi .NET" in "Delphi Win32" geändert. Das scheint eine "Win32"-Frage zu sein. MfG, Matze[/edit] |
Re: Sinus-Problem
:gruebel:
Delphi-Quellcode:
--> -0,976...
showmessage(floattostr(sin(20e15)));
Bei Win32 kein Problem. Edit: Bei sin(5E+19) kommt bei mir 0 raus. Liegt wohl daran, dass hier die Genauigkeit von Fließkommazahlen zu Ende ist. |
Re: Sinus-Problem
Klappt bei mir auch. Aber mit
Delphi-Quellcode:
dem hier kommen falsche werte raus
procedure TFrmClient.Button1Click(Sender: TObject);
var i: integer; begin for i:=1 to 600 do begin testmemo.lines.add(FloatToStr(sin((5E+19)*1))); end; end; |
Re: Sinus-Problem
Also bei mir kommt mit showmessage bei 5E+19 auch 5E19 raus.... seltsam
Genauigkeit ist gut...der Sinus ist periodisch. Versuchs mal mit anderen großen Werten z.B. 2E+24...kommt bei mir auch 2E+24 raus. |
Re: Sinus-Problem
Bei Sinus/Cosinus sind doch nur Werte von 0 bis 2 pi bzw. 0 .. 360 Grad interesssnt.
Alles andere sind Vielfache davon. Was willst Du mit so hohen Werten? Gruß Wolfgang |
Re: Sinus-Problem
Es ist Teil eines Programms. Dabei sollen Frequenzwerte vorgegeben werden und. Mit diesen Frequenzen werden die Werte berechnet und graphisch dargestellt.
Eine Möglichkeit wäre vielleicht ein ganzzahliges Vielfaches vom Argument mit 2*PI zu mutliplizieren und das vom Argument abzuziehen. Nur irgendwie klappt das nicht, weil dieses ganzzahlige Vielfache den Integerwert übersteigt. |
Re: Sinus-Problem
Integerwerte machen bei Sinus/Cosinus sowieso keinen Sinn, denn Minimalwerte sind -1
und Maximalwerte sind +1. [Edit] Alle wirklich interessanten Werte liegen dazwischen [/Edit] Gruß Wolfgang |
Re: Sinus-Problem
Eben. Hmm... Dann schau ich mal ob ich das nicht irgendwie anders lösen kann
|
Re: Sinus-Problem
Bei so hohen Werten kann nie etwas rauskommen, denn wie schon von Wolfgang Mix gesagt wurde, interessiert nur der untere Anteil (die Wiederholungen von 2*PI).
Und da selbst beim größten Fließkommatypen nur 19-20 signifikante Stellen existieren, ist der wichtige Anteil immer praktisch nicht existent! |
Re: Sinus-Problem
Das Problem scheint eher ein elektrotechnisches zu sein.
Mach' Dich 'mal bitte über Frequenz und Periodendauer schlau. Gruß Wolfgang |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:21 Uhr. |
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