Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » If-anweisung wird ignoriert...

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 ] > 2 < [ 3 ]
010
07.01.2004, 19:49 Uhr
Lumina



ja, sowas gibts doch in Mathe auch.... beim limes.

und das mit fabs und abs hab ich mir fast schon so gedacht...
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
07.01.2004, 22:31 Uhr
Pablo
Supertux
(Operator)


Ja genau, es ist wie in der Analysis, du hast da auch EPSILON Umbegungen. Und mit float oder doubles miteinander zu vergleichen muss man sich eine EPSILION Umgebung bauen. Das geällt mir, denn das sieht wie die Analysis aus, auch wenn die Analysis nicht mein Lieblingsfach ist
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
08.01.2004, 12:39 Uhr
ao

(Operator)



Zitat:
Lumina postete
und das hier liefert einen fatal error:

C++:
if (Det(matrix, Rang) != 0.00) MatrInv(matrix, Rang);



warum ?


Wie andere schon erklärt haben, wird hier versucht, die Matrix zu invertieren, auch wenn sie eigentlich nicht invertierbar ist und die Determinante nur wegen Rundungsfehlern nicht exakt 0.0, sondern 1E-20 oder irgend so was war.

Bei diesem Versuch kann es irgendwann zu einer Division durch 0 kommen -> fatal error?

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
08.01.2004, 12:46 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


deswegen ist es auch schlauer die neuere version die ich dazu geschrieben habe zu verwenden, weil man hierbei nicht mehr auf eine determinantencheck angewiesen ist....
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
08.01.2004, 13:31 Uhr
ao

(Operator)



Zitat:
Windalf postete
deswegen ist es auch schlauer die neuere version die ich dazu geschrieben habe zu verwenden, weil man hierbei nicht mehr auf eine determinantencheck angewiesen ist....


Meinst du die Geschichte mit dem Gauss-Algorithmus und der um die Einheitsmatrix erweiterten Matrix?

Da bist du aber auf den Check angewiesen, ob sich eine Spalte zu Null machen lässt oder nicht, und das ist haargenau dasselbe wie der Determinantencheck, d.h. es kann diegleichen Rundungsprobleme geben.

Du kannst das nur vermeiden, indem du dem Computer beibringst, genauso zu rechnen wie du auf dem Papier, d.h. mit Bruchzahlen. Nur das ist exakt.

Das würde ich allerdings nicht in C machen, sondern nur in C++.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
08.01.2004, 13:36 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@ao
jo hast recht, das läuft aufs selbe hinaus.
allerdings wäre das soweit ichs überblicken kann auch nicht so schlimm das mit den bruchzahlen in c zu machen...

was einem bei den brüchen aber auch nciht hilft ist wenn man irrationale zahlen hat... (wie willst du denn z.b Pi auf den rechner als bruch darstellen...)
da hast du also wieder eine ungenauigkeit über die dich die brüche auch nciht hinwegretten, in sofern kann man sich das mit den brüchen IMHO auch gleich sparen
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
08.01.2004, 17:24 Uhr
ao

(Operator)



Zitat:
Windalf postete
was einem bei den brüchen aber auch nciht hilft ist wenn man irrationale zahlen hat

Das stimmt. Ich war davon ausgegangen, dass nur Aufgaben mit rationalen Zahlen gestellt werden; bei reinen Lehrveranstaltungen ohne näheren Praxisbezug ist diese Hoffnung ja berechtigt ;-)

Und diese Epsilon-Geschichten haben immer das Risiko, dass ein an sich problemloser Algorithmus durch ein ungünstig gewähltes Epsilon auf einmal numerisch instabil wird. Darum muss man bei so was immer aufpassen, wie sich die vielen kleinen Rundungsfehlerchen fortpflanzen: ob sie sich brav wegmitteln oder irgendwie anhäufen können.

Bei 3x3-Matrizen kann nicht viel passieren, dazu sinds einfach zu wenig Operationen, aber was ist bei 100x100 oder noch mehr? Da sollte man schon mal hingucken.

ao
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
08.01.2004, 17:38 Uhr
0xdeadbeef
Gott
(Operator)


Kannst das ja mal in eine C++-Template gießen - die Algorithmen sind ja für alle Körper gleich.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
08.01.2004, 17:39 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@beefy
meinst du mich?
wenn ja was genau meinst du...einfach matrix invertieren typenunabhängig machen?
oder wie genau meinst du das?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
08.01.2004, 17:49 Uhr
0xdeadbeef
Gott
(Operator)


Ich meine sowas in der Art:

C++:
template <typename _data_t> matrix {
  //...
};


Was man dann nachher so verbauen könnte:

C++:
#include "rational.h"
#include "complex.h" //entsprechend zusammengebastelte Klassen

matrix<rational> rat_mat(3, 3); //3x3 rationale Matrix
matrix<complex> cpx_mat(4, 3); //4x3 komplexe Matrix
//...usw.


Vielleicht mach ich das bei Gelegenheit mal selbst.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ 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: