AGB  ·  Datenschutz  ·  Impressum  







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

Sinus-Problem

Ein Thema von Socke_SG · begonnen am 13. Okt 2009 · letzter Beitrag vom 13. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#1

Sinus-Problem

  Alt 13. Okt 2009, 17:44
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]
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

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

Re: Sinus-Problem

  Alt 13. Okt 2009, 17:48

showmessage(floattostr(sin(20e15))); --> -0,976...
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.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#3

Re: Sinus-Problem

  Alt 13. Okt 2009, 17:51
Klappt bei mir auch. Aber mit

Delphi-Quellcode:
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;
dem hier kommen falsche werte raus
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#4

Re: Sinus-Problem

  Alt 13. Okt 2009, 17:56
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.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Sinus-Problem

  Alt 13. Okt 2009, 17:58
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
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#6

Re: Sinus-Problem

  Alt 13. Okt 2009, 18:01
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.
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#7

Re: Sinus-Problem

  Alt 13. Okt 2009, 18:05
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
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  Mit Zitat antworten Zitat
Socke_SG

Registriert seit: 31. Mär 2008
47 Beiträge
 
#8

Re: Sinus-Problem

  Alt 13. Okt 2009, 18:06
Eben. Hmm... Dann schau ich mal ob ich das nicht irgendwie anders lösen kann
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#9

Re: Sinus-Problem

  Alt 13. Okt 2009, 18:08
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!
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Wolfgang Mix
Wolfgang Mix

Registriert seit: 13. Mai 2009
Ort: Lübeck
1.222 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Sinus-Problem

  Alt 13. Okt 2009, 18:11
Das Problem scheint eher ein elektrotechnisches zu sein.
Mach' Dich 'mal bitte über Frequenz und Periodendauer schlau.

Gruß

Wolfgang
Wolfgang Mix
if you can't explain it simply you don't understand it well enough - A. Einstein
Mein Baby:http://www.epubli.de/shop/buch/Grund...41818516/52824
  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 08:59 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