Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Gleitpunktzahlen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.10.2006, 10:28 Uhr
Trivalik



Im Studium mussten wir in numerik etwas Programmieren.
Dabei ist mir etwas aufgefallen.

Wenn ich eine Funkion in eine function auslagerte kam etwas anderes herraus.

C++:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

float funktion(float x)
{
return 1.0f/((x+0.13f)*(x-0.13f));
}

float ganzezeile(float x,float h)
{
return (1.0f/((x+0.13f+h)*(x-0.13f+h))-1.0f/((x+0.13f)*(x-0.13f)));
}

int main()
{
float h,d1,d2,d3,i,x=1.0f,f;
f=-(1.0f/(((1.0f+0.13f)*(1.0f-0.13f))*((1.0f+0.13f)*(1.0f-0.13f)))) * 2.0f;
printf("%-15s%-15s%-15s%-15s\n","h","d1","d2","d3");
for(i=0;i<=22;i++)
{
h=powf(10.0f,-i/2.0f);
d1=(1.0f/h)*(1.0f/((x+0.13f+h)*(x-0.13f+h))-1.0f/((x+0.13f)*(x-0.13f)));
d2=(1.0f/h)*ganzezeile(x,h);
d3=(1.0f/h)*(funktion(x+h)-funktion(x));
printf("%-15g%-15g%-15g%-15g\n",h,d1,d2,d3);
}
system("Pause");
}



Ich schätze das es daher kommt das wenns auf einer Zeile steht mit höherer Genauigkeit gerechnet wird und somit die ganze Zahl genauer ist. Wenn ich eine function benutze wird in der function schon wieder auf float normalisiert, daher ungenau.

Seh ich das so richtig?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.10.2006, 12:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Naja wenn du den Datentypen noch nicht angibst rechnet er halt erst noch mit double-precision... Daher imho der unterschied
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.10.2006, 13:50 Uhr
Trivalik




Zitat von Windalf:
Naja wenn du den Datentypen noch nicht angibst rechnet er halt erst noch mit double-precision... Daher imho der unterschied


Wo sollte ich den noch Datentypen angeben?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: