AGB  ·  Datenschutz  ·  Impressum  







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

Übergabe von Zahlen an Prozedur

Ein Thema von Crattely · begonnen am 29. Apr 2013 · letzter Beitrag vom 30. Apr 2013
Antwort Antwort
Crattely

Registriert seit: 26. Sep 2012
4 Beiträge
 
#1

AW: Übergabe von Zahlen an Prozedur

  Alt 29. Apr 2013, 23:16
Hm...vielen Dank für deine Antwort, das mit der Null muss ich also einfach nur richtig formatieren.
Die Berechnung der Werte hatten wir im Unterricht so vorangefertigt, allerdings verpasse ich mich da jetzt mal auf dich und baue stattdessen das Horner Schema ein.
Nur ein Problem habe ich noch:
Ich verstehe den ersten Teil deines Posts ehrlich gesagt nicht so richtig.
Bezieht sich das Problem mit den Nullstellen nur auf das NS_Numerisch Teilprogramm?
Und wo soll ich jetzt genau noch nachbessern ? Das mit dem Vorzeichenwechsel und der ersten Ableitung habe ich irgendwie nicht ganz verstanden
Wäre nett wenn du mir das nochmal erklären könntest...
MfG
  Mit Zitat antworten Zitat
Mathematiker
(Gast)

n/a Beiträge
 
#2

AW: Übergabe von Zahlen an Prozedur

  Alt 29. Apr 2013, 23:37
Hallo,
Die Berechnung der Werte hatten wir im Unterricht so vorangefertigt, allerdings verpasse ich mich da jetzt mal auf dich und baue stattdessen das Horner Schema ein.
Wenn Ihr das so im Unterricht gemacht habt, dann lasse es auch so. Gibt nur Diskussionen.
Ich verstehe den ersten Teil deines Posts ehrlich gesagt nicht so richtig.
Dein Algorithmus geht schrittweise das Intervall durch und prüft ob das Produkt von zwei benachbarten Funktionswerten negativ ist. Wenn ja und die Funktion ist stetig, liegt eine Nullstelle dazwischen.
Bei Funktionen wie y = x^2, y = x^2+2x+1, y = x^4 und komplizierteren findet dieser Algorithmus die wahrscheinliche Nullstelle nicht. Denn an dieser hat die Funktion eine lokale Extremstelle, d.h. Dein Produkt wird nicht negativ. Damit findest Du nicht alle Nullstellen.
Genau das hatte ich vermutet. Die Berechnung der Nullstellen einer Funktion mit dem Computer(!) ist nämlich nicht so einfach.
Wie kann das geändert werden? Zusätzlich musst Du auch für die 1.Ableitung dieses Testprodukt bilden. Wird es negativ kann eine Extremstelle vorliegen, die vielleicht auch Nullstelle ist.
Deshalb testet man dort mit einem schnellen Verfahren, z.B. Regula falsi, etwa 10 Iterationsschritte. Nähert sich der Funktionswert der Null (z.B. Test |x1-x2|<0.00001) hast Du die Nullstelle ermittelt, die Dir sonst fehlt.

Beste Grüße
Mathematiker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Übergabe von Zahlen an Prozedur

  Alt 29. Apr 2013, 23:57
Und das:
Delphi-Quellcode:
function fktn(a,b,c,d,e,f,x:real):real;

             function pot(x:real;n:integer):real;
             var i:integer;
                 y:real;
             begin
                  y:=1;
                  for i:=1 to n do y:=y*x;
                  pot:=y;
             end;

begin
     fktn:=(a*pot(x,5)+b*pot(x,4)+c*pot(x,3)+d*pot(x,2)+e*x+f);
end;
Ist auch ein etwas überholtes Konstrukt aus Pascal Zeiten,. In Delphi werden Rückgabewerte mit result zurückgegeben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Caps

Registriert seit: 23. Mär 2006
Ort: Leipzig
299 Beiträge
 
#4

AW: Übergabe von Zahlen an Prozedur

  Alt 30. Apr 2013, 10:27
Ich glaube es gibt noch ein Problem:

Angenommen die Schleife, die die Produkte "benachbarter" Funktionswerte auf <0 testet, läuft in die Bedingung f(x_MAX) = 0, d.h. die Intervallgrenze ist selbst eine Nullstelle der Funktion (kann ja vorkommen). Dann wird im nächsten Schritt x_MIN := x_MAX gesetzt. Wenn die Nullstelle jetzt gleichzeitig ein Maximum ist, dann wird das Testprodukt wieder negativ, und die gleiche (die selbe) Nullstelle wird noch einmal gefunden. Der Iterator i ist jetzt aber um 1 größer, d.h. Du füllst die nächste Ergebnisvariable NULL_<i> mit der selben Nullstelle. Dann brauchst Du aber wenigstens 10 solche Ergebnisvariablen, also NULL_1 bis NULL_10, sonst findest Du nicht alle Nullstellen.
Natürlich ist das ein Spezialfall, aber naja... .

lg Caps
"Der Mode cmCFS8 ist prohibitär und von mir entwickelt."
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:11 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