Bombentrichter
Archiv => Papierkorb => Topic started by: MukT4r on June 06, 2005, 07:51:09 pm
-
Ich sitze seit einigen Tagen an meinen Info Beleg füt die Aufgabe 8. Glücklicherweise hab ich jmd in meiner Familie der sich extrem gut mit Computer und Programmierung auskennt und hab ihen so zu meinen Beleg befragt. Seine antwort war...
"ich kann mir auch nicht vorstellen, das ein Anfänger in Delphi solche
Aufgaben ohne Erläuterung der Prog Delphi gestellt bekommt?
Kurvern berechnen ist ja noch ok, aber dann zeichnen und Pixel
aus der Zeichnung lesen über Mauszeige mit Umrechnug und Ausgabe?
Das dürfte wohl kein Anfänger hinbekommen !
(Zeichnung und Pixelumrechnung)
Dafür Brauche auch ich geraume Zeit. Ich habe mit Cristian gesprochen,
der Kennt das alles, aber Prog. in C und das auch schon länger, aber auch
er mußte keine Pixel einlesen und zurück umrechnen. Ist die
Aufgabenstellung wirklich für dich ? Und warum bist du denn nicht
schon mal eher gekommen. Das kann ich auch nicht an einem Tag. Von Cristian
soll ich fragen ob du auch mathematische methode wie horner schema oder
formel von cardano verwenden kannst.Die Funktion könnet wohl so
aussehen: für eine ungefähre 0-stelle ?
Procedure xxx
x1, x2, x0, Temp: real;
begin
x1:=1;
x2:=5;
repeat
// X0 ist der nächste nähere punkt an der 0-Stelle
X0 := X1 - (F(X1) * ((X2 - X1) / (F(X2) - F(X1))));
// Wie nah ist X0 an 0 ?
Temp := F(X0);
if Temp = 0 then
// gleich 0, fertig !
Break
else if Temp > 0 then
// größer 0 - also näher an X2
X2 := X0
else
// kleiner 0 - also näher an X1
X1 := X0;
// stop wenn der abstand zw. x1 und x2 kleiner als 1/1000 ist
until Abs(x2 - x1) < 0.001;
// ergebnis für di (ungefähre) 0-Stelle ausgeben
floatlabel1.caption:=x0;
end;
" :cry:
also wenn er selbst das schon sagt, kann es sein das ich da was bei der aufgabe nicht verstanden hab, oder ....
wäre echt nett wenn hier einer der ahnung hat mich mal aufklären könnte und vieleicht denkanstösse geben könnt! :D danke schonmal im Vorraus!
-
extrem gut mit Computer und Programmierung auskennt.
Sie mal nach in Deinem Schulbuch.
Buchstabe "R".
Regula Falsi.
Nebenher:
if Temp = 0 then :sick:
.....
until Abs(x2 - x1) < 0.001; :sick:
Es gibt in der Numerik keine Null!! :nudelholz:
Ein allgemein gültiges Epsilon für alle Compiler und Maschinen ?
eps = sin(pi) * 10 hoch [drei, vier...sechs, acht].
Bitte hier aber nicht so gscheit sein, und sin(pi) durch sin(0) ersetzen....
Grüße
DIGIT
:limes_0:
-
ich versteh zwar jetz nicht ganz wie mir das helfen soll! :sick: aber vieleicht steh ich auch grad nur auf m schlauch ... was soll das mit demepsilon?
-
Ich geb ja gerne zu, dass ich manchmal Schwierigkeiten habe, auf der Uni das richtige Gebäude zu finden...
Dann versuche ich, den Ist-Ort and den Plan-Ort durch sukzessive Verminderung der Differenz derart anzunähern, dass die schliesslich Differenz zwischen Plan und Ist minimal - vorzugsweise null wird.
So hab ich alle meine Hörsäle gefunden und find auch wieder aus dem Gelände raus.
Das System kann man vorzugsweise auch zum Auffinden von Kaffeeautomaten anwenden.
Echte Profis bestimmen Nullstellen damit.
Grüße
DIGIT
:limes_0:
-
Ich weiß ja nicht, was deine Aufgabe ist, aber das Newtonverfahren hatten wir in der Übung, steht auch im Buch. Es gibt im Buch ein Beispielprojekt zum Kurvenzeichnen.
aber dann zeichnen und Pixel
aus der Zeichnung lesen über Mauszeige mit Umrechnug und Ausgabe?
Das dürfte wohl kein Anfänger hinbekommen !
Graphen zeichnen musste ich auch.
Wie man Mausklicks als Punkt darstellt, steht im Buch - auch nicht schwer.
Allerdings kenn ich den Kontext nicht, kann mich also irren.
Digits Ausführungen versteh ich noch nicht ganz. Der Stelzer hat mal gesagt, dass die 0 sich im PC nicht genau darstellen lässt. Oder bedeutet 0 == nil == not in list?
Ich denke Digit meint, du solltst dir die 0 ausrechnen: sin(pi) = 0, da dies so ein numerischer Ausdruck ist. Oder nur Ironie?
-
Hi n-w, alter Kämpfer :flower: :flower:
Also nochmal.
Erklär ich gerne nochmal ist nämlich wichtig und den oben genannten Trick sollte man sich wirklich gut merken.
Was passierte denn bei einer Abfrage "if (x = 0 )" ?
Wie oben ?
Nix passiert!
Weil die Wahrscheinlichkeit, dass eine Gleitkommazahl mit Rundungsfehlern und allem Drum und Dran wirklich Null ist, die ist Null.
Du wirst also nie und nimmer (bei einer Gleitkommazahl) in diesen Zweig der Abfrage kommen.
Merke: Es gibt in der Numerik keine Null und keine Abfrage auf Null, nur eine Abfrage auf "ein kleines Intervall um Null herum"
Also geht das in erster Näherung so
if (abs(x) < epsilon) )
...und dann legt man für das Epsilon, das genannte kleine Intervall um Null halt (manuell, wissentlich, geschätzt) irgendeinen Wert fest.
Oder eben wie oben mit dem allgemein gültigen Epsion.
Warum sin(pi) als kleine Grenze um Null herum?
Konkret funktioniert das so:
Pi ist in der Entwicklungsumgebung ja nur näherungsweise definiert.
In Microsoft-Produkten (VB,C, J, etc) ist es gar nicht definiert, - im Preis nicht inbegriffen -, und ich muss mir das selber als Konstante definieren.
Die Funktion sin(x) ist ja auch fehlerbehaftet, weil sie intern als Reihe entwickelt wird.
Folglich ist sin(pi) eine gute Abschätzung der aktuellen, erreichbaren Maschinen/Rechen/Genaugkeit, die "der Rechner" und "die Entwicklungsumgebung" hergeben. Der Wert ist etwa bei 10 hoch minus 16, oder 18. Probiers aus, ist ja nur ein Zweizeiler.
Also geht man noch ein paar Zehnerpotenzen höher, wie oben genannt, und man ist bin bei Abfragen auf Null immer auf der sicheren Seite.
Nix Ironie. Handwerk.
Grüße
DIGIT
:limes_0:
-
es geht ja um die bestimmung der nullstelle mit Regula Falsi... welches Buch meinst du wo ein beispiel mit Newtonvefahren steht und der befehl für die maus...? :o ja jetz hab ich das mit der 0 verstanden. soll sie in meinen Programm dann eher so wie oben angegeben darstellen oder in ähnlicher form! Danke.
:D
-
Sie mal nach in Deinem Schulbuch
Literaturquellen reichen zurück bis Newton.
Nomen est omen.
Ersuche höflichst um mehr Selbständigkeit.
Grüße
DIGIT
:limes_0:
-
Verstehe, ist ja logisch.
Der Liskowski hat ein Buch geschrieben, zugehörige Quelltexte stehn im Netz. Mausbefehl kann ich dir keinen nennen, da ich nicht weiß, was du machen möchtest.
-
Hallo zusammen
vielleicht kann das ja helfen:
http://www.dsdt.info/tutorials/ (http://www.dsdt.info/tutorials/)
CU
PS.: who dare win!