AGB  ·  Datenschutz  ·  Impressum  







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

auflisten + Graf

Ein Thema von playa2kk · begonnen am 17. Mär 2009 · letzter Beitrag vom 22. Mär 2009
 
BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#31

Re: auflisten + Graf

  Alt 22. Mär 2009, 08:51
Also mal zum Begriffe des Intevalls: Intevall stellt einen Mengentaum dar. Ein Intervall kann z.B. 2Pi sein. Damit ist also kein Anfangswert oder Endwert gesetzt. Es stellt ganz schlicht einen Zahlen weite dar! mit t0 legst du eigentlich nur fest, WO sich dieser Zahlraum befindet. Wenn du z.B. ein Intervall hast [a,b] sagen wir mal a=4 und b=8, dann ist dein Intervall T=5 groß (4,5,6,7,8) und der Anfangswert ist 4 und der Endwert 8. Wenn du also dieses intervall in 5 gleiche Teile möchtest, dann Teilst du einfach das Intervall durch die gewollte Anzahl von Teilen, also: 5/5 = 1. Wenn du jetzt aberrechnest (T-t0)/n=h dann bekommst du (5-4)/5 = 0,2. Ich denke die Auswirkungen anhand dieses einfachen Beispielst siehst du schon.
Richtig ist natürlich bei einem Intervall von 5 und 5 gleichen Teilen, dass die Teillänge h 1 ist oder?
Mein Programm hat das vor deiner Änderung auch so gemacht.

Das solltest du nochmal prüfen!!!

Deine Werte sind falsch, weil du nicht beachtet hast, dass du Punktrechnung vor Strichrechnung durchführen MUSST!!! deswegen hab ich dir bei meiner Rechnung auch Zwischenschritte angegeben, damit du siehst, welche Werte du zuerst berechnen musst und welche danach.

MfG
BAMatze

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  if trystrtofloat(ED_Intervall.Text, Inter) and trystrtoint(ED_AnzTeilintervalle.Text, n) and
     trystrtofloat(ED_Y.Text, dBuffer1) and trystrtofloat(ED_T.Text, dBuffer2) then
    begin
      Setlength(y, n);
      Setlength(t, n);
      Inter:=strtofloat(ED_Intervall.Text);
      h := Inter/n;
      y[0] := strtofloat(ED_Y.Text);
      maxY := y[0];
      minY := y[0];
      t[0] := strtofloat(ED_T.Text);
      Memo1.Lines.Add('t0 = ' + floattostr(t[0]) + ' y0 = ' + floattostr(y[0])); // <-- diese Zeile musst du ändern, so wie ich sie hier hab
      for j := 1 to n-1 do
        begin
          t[j] := t[j-1] + h;
          y[j] := y[j-1] + h* k * y[j-1];
          Memo1.Lines.Add('t' + inttostr(j) + ' = ' + floattostr(t[j]) + ' y' + inttostr(j) + ' = ' + floattostr(y[j])); // <-- diese Zeile musst du ändern, so wie ich sie hier hab
          if y[j] > maxY then maxY := y[j];
          if y[j] < minY then minY := y[j];
        end;
      Koordinatensystem_zeichnen;
      Graph_zeichnen;
    end
  else Showmessage('Bitte überprüfen sie die eingegebenen Werte. Vergewissern Sie sich, dass alle Felder befüllt sind. Anzahl der Teilintervalle muss eine ganze Zahl sein.');
end;
  Mit Zitat antworten Zitat
 


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 19:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz