-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
28. Mär 2007
Nein, sicher nicht. Der Vorfaktor stimmt jetzt zwar, aber da du den Rest einfach nur copy/Past gemacht hast, sind immer noch Fehler drin...
Schau doch mal: Wenn (v,w) dein Intervall ist und v<=x<=w gelten muss und bx:=((2*z)-1)*pi/2 gilt, dann ergibt das doch v<=((2*z)-1)*pi/2/b<=w. Wenn du jetzt bei dieses Ungleichungskette nicht mit negativen Zahlen multiplizierst, bleiben die Ungleichungen...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
26. Mär 2007
Nein, die Ableitungen stimmen immer noch nicht. :roll: Warum kommt bei der ersten Ableitung ein b aus dem Sinus nach vorne, bei den anderen aber nicht?
Wann ist denn der Cosinus Null? Das ist genau dann der Fall, wenn sein Argument ein Ungeradganzzahliges Vielfaches von pi/2 ist. (pi/2, 3pi/2, 5pi/2, allgemein (2z-1)*pi/2). Also musst du dein bx=(2z-1)*pi/2
setzen. Das sind alle...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
26. Mär 2007
Naja. Erstmal solltest du die richtigen Ableitungen ausrechnen (also mal richtung Kettenregel denken)
Und wenn du schon die Nullstellen der Sinusfunktione bestimmen kannst, hast du auch die von der Cosinusfunktion und damit kannst du doch auch die NS der Ableitung bestimmen...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
26. Mär 2007
Deinen Code kann ich nicht lesen, sag mal ehrlich, kannst du selbst verstehen, was du geschrieben hast, ohne Nachzuschauen, wohin welches End gehört und was in welchen Edit/Label steht?
Wie kommst du auf die Ableitungen?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
26. Mär 2007
Wie sehen denn die ersten beiden Ableitungen aller Funktionen aus? Hast du schon die Nullstellen der normalen Sinusfunktion berechnet?
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
26. Mär 2007
Noch ein paar Hinweise:
- Gib deinen Labels passende Namen. Sonst ist es kaum zu verstehen.
- Schreib den Inhalt aus den Labels in passende Floatvariablen, damit du nachher nicht immer bei den Berechnungen ein strtofloat(Edit.text) schreiben musst, was sehr die lesbarkeit einschränkt.
- Rücke sinnvoll ein! Such mal nach einem Styleguide, sonst wird dein Lehrer deinen Text auch nicht gerne...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
25. Mär 2007
Das ist natürlich Unsinn, da die Grenzen des Intervalls einzufügen...
Dieses n, das ich eingeührt habe, steht grob für die n-te NS der Funktion. Mal dir mal den Sinus auf und beschrifte die Nullstellen mit 0*pi,1*pi usw. und du wirst den Fehler sehen.
Wenn deine untere Intervallgrenze (a,b) positiv ist, müsstest du es so machen:
n=floor(a/pi);
die ersten n NS (von x=0 an gezählt) liegen...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
25. Mär 2007
Und wie ergeben sich diese Werte? (Und was ist das Startintervall?)
// Deine Formatierung ist extrem schlecht. Zwei end in einer Zeile, zusammengehörige begin und end nicht übereinander, das ist kaum lesbar.
while c<d do
begin
xo1:=c*(pi/b);
form1.ListBox1.Items.Add(floattostr(xo1));
c:=c+1;
end;
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
25. Mär 2007
Dann ist dein Ansatz zwar recht einfach, aber nicht besonders schön.
Bei den Polynomen zweiten Grades kannst du einfach die PQ-Formel (Mitternachts,abc-Formel) umsetzen und hast damit die bestmöglichen Werte und kannst auch noch ausgeben, wenn es keine Nullstellen gibt.
Beim dritten Grad kannst du entweder nach einer expliziten Darstellung der NS suchen (sowas gibts, habe ich mal gehört),...
-
Forum: GUI-Design mit VCL / FireMonkey / Common Controls
Delphi
by Nikolas,
25. Mär 2007
Du betrachtest von der x-Achse nur ein paar einzelne Punkte. Da kannst du nicht sicher sein, dass der Nullunkt deiner Parabel genau auf so einen trifft.
Auch vergisst du, dass der Rechner nicht unendlich genau ist. Test wie if a=3.5 sind daher ungeschickt. Du musst eher testen, ob dein Wert fast null ist. Also z.B. if abs(y-0)<0.001.
Geht es dir hier nur um solche Parabeln? In diesem Fall...