Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi auflisten + Graf (https://www.delphipraxis.net/131034-auflisten-graf.html)

playa2kk 17. Mär 2009 20:59


auflisten + Graf
 
Hallo Community,

ich konnte nichts brauchbares in der Suche oder bei Google finden,somit möchte ich euch um meine Wenigkeit bereichern.

Als Delphi Neuling bräuchte ich nun euren Rat.
Ich möchte Iterativ berechnete Werte auflisten, welche Komponenten sind dafür am besten geeignet
und wie setze ich diese Komponente um ?

Wie kann ich später diese Werte in einen Grafen übernehmen?
Möglichweise werden die Werte geändert, wie ändert sich dann der Graf?

Mit respektvollen Grüßen
play

BAMatze 17. Mär 2009 21:34

Re: auflisten + Graf
 
Ich denke um eine nützliche Antwort zu bekommen, solltest du deine Frage weiter spezifizieren.

Allgemein kann man darauf antworten:
Möglichkeiten für Auflistung der Werte: 1.) Labels (eher schlechter)
2.) TMemo (besser geeignet)
3.) TRichEdit (besser geeignet)
...
Möglichkeiten für Graph: 1.) TImage
2.) TPaintbox
...

Hoffe das hilft dir erstmal für den Anfang einfach damit du deine Frage genauer, oder besser auf dein Problem angepasst, zu stellen.

MfG
BAMatze

playa2kk 17. Mär 2009 22:35

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Ich denke um eine nützliche Antwort zu bekommen, solltest du deine Frage weiter spezifizieren.

Allgemein kann man darauf antworten:
Möglichkeiten für Auflistung der Werte: 1.) Labels (eher schlechter)
2.) TMemo (besser geeignet)
3.) TRichEdit (besser geeignet)
...
Möglichkeiten für Graph: 1.) TImage
2.) TPaintbox
...

Hoffe das hilft dir erstmal für den Anfang einfach damit du deine Frage genauer, oder besser auf dein Problem angepasst, zu stellen.

MfG
BAMatze

Zunächst einmal Danke für deine Antwort.
Ich werde erst Morgen meine Frage spezifizieren können, muss mich auf morgigen Schultag vorbereiten.
Infos: bin 18, meine Delphi Fähigkeiten sind noch nicht wirklich gut ausgereift, das meiste was ich jetzt kann hab ich mir sogar selbst beigebracht, nur sehr wenig haben wir bis jetzt in der Schule gemacht.

Schönen Abend noch
play

_frank_ 17. Mär 2009 22:36

Re: auflisten + Graf
 
zur auflistung wäre noch TStringgrid (tabellarisch),
zur Graphendarstellung entweder TChart oder ein Control mit TCanvas und bitte nicht TImage :)
bei letzterem muss der Graph selbst gemalt werden inkl. entsprechender Beschriftung und Skalierung. evtl gibts bei torry o.ä. auch weitere fertige Komponenten.

//edit: erstmal Herzlich Willkommen hier in der DP :dp: :hi:

Gruß Frank

playa2kk 18. Mär 2009 10:17

Re: auflisten + Graf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von _frank_
zur auflistung wäre noch TStringgrid (tabellarisch),
zur Graphendarstellung entweder TChart oder ein Control mit TCanvas und bitte nicht TImage :)
bei letzterem muss der Graph selbst gemalt werden inkl. entsprechender Beschriftung und Skalierung. evtl gibts bei torry o.ä. auch weitere fertige Komponenten.

//edit: erstmal Herzlich Willkommen hier in der DP :dp: :hi:

Gruß Frank

Guten Morgen,
nun wollte ich mich mal wieder an mein Programm wagen.
Ich möchte desweiteren noch Iterativ t-Werte berechnen. Wie mache ich das am besten?
Ich lad mal mein Programm hoch, vielleicht hilft das ein wenig.

Die Funktion zur Berechnung lautet:

tn+1= tn + h
Das Programm soll tn+1 + h rechnen bis T erreicht ist, und die berechneten Werte jeweils in eine Tabelle oder sonst wie auflisten.


Mit respektvollen Grüßen
play

_frank_ 18. Mär 2009 17:18

Re: auflisten + Graf
 
Zitat:

Zitat von playa2kk
Die Funktion zur Berechnung lautet:
tn+1= tn + h
Das Programm soll tn+1 + h rechnen bis T erreicht ist, und die berechneten Werte jeweils in eine Tabelle oder sonst wie auflisten.

wo ist in der Berechnung das T? die obige gleichung hat für mich nur eine Lösung: h=1 :) was für eine Berechnung ist das? mir fehlt gerade bisschen der Zusammenhang.

in deinem Programm berechnest du h [(T-tn)/n]...tn,T und n sind gegeben, in deiner beschreibung wird aber etwas berechnet, was irgendwann den Wert von T hat. soll das ganze ausgeführt werden bis h=T? welches ist die veränderliche größe?

Fragen über Fragen ;)

zum testen kannst du ja mal ne schleife bauen und die errechneten Werte z.b. in ein Memo schreiben (memo1.lines.add(FloatToStr(h))).

HTH Frank

BAMatze 18. Mär 2009 17:28

Re: auflisten + Graf
 
Also die Berechnung ist schon ok so, sie ist nur unverständlich, weil er es nicht richtig darstellen kann. n und n+1 sind Index von t und bedeutet somit Nachfolger (tn+1) = Vorgänger(tn) + h. Das sind normale Reihenberechnungen.

_frank_ 18. Mär 2009 17:56

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Das sind normale Reihenberechnungen.

sagt mir nix, bin nur dummer Real-Schüler :D

hab zwar bisschen gegoogled, und bin bei diversen Matrix-Funtionen hängen geblieben, die ich trotzdem nicht so recht anwenden kann...

anhand deinen Ausführungen nehm ich mal an, dass eine Wertemenge vorhanden ist.
z.b. als sortiertes array

Delphi-Quellcode:
t:array of integer;
somit müsste es t[n] bzw. t[n+1] heisen, richtig? meine Vermutung dass T=h sein muss scheint wohl zu stimmen. also wären wir bei folgendem:

Delphi-Quellcode:
h:=0;
n:=low(t)-1;
while (h<=T) and (n<high(t)-1) do
begin
  inc(n);
  h:=t[n+1]-t[n];
  if h<=T then
    memo1.lines.add(IntToStr(t[n])+':'+IntToStr(h));
end;
hoffe das passt soweit...

Gruß Frank

BAMatze 18. Mär 2009 18:03

Re: auflisten + Graf
 
Richtig in der Informatiker versteht man das als Array mit t[n+1]=t[n] + h aber so wie ich das verstanden hab, soll sich t[x] dem Grenzwert T annähern. Aber ich glaube näheres sollte der Verfasser vieleicht mal selber wieder posten, sonst machen wir hier nur :glaskugel: :glaskugel:

Jakob Ullmann 18. Mär 2009 18:11

Re: auflisten + Graf
 
Warum kein TImage?

playa2kk 18. Mär 2009 19:18

Re: auflisten + Graf
 
Hallo erst einmal.

Ich habe vielleicht nur die Hälfte von dem verstanden, was hier gesagt wurde und werde mal versuchen etwas aufzuklären.

T gibt eigentlich das Intervall an, und ist eigentlich nur für die Berechnung von h notwendig, sonst nicht.
Man könnte es also danach wieder vergessen. Was ich eigentlich programmieren will ist das Eulerverfahren, vielleicht sagt das einen etwas.
Wie schon gesagt wurde ist das +1 bei tn+1 im Index, was das bedeutet müsste klar sein. Der vorher berechnete Wert wird aufgegriffen und 1 dazu addiert.
tn+1=tn+h
tn ist eine Variable, vom Anwender frei definierbar, so auch h.

Ich hoffe das klärt etwas auf.

Mit respektvollen Grüßen
play

PS: Ich muss das bis Samstag, spätestens Sonntag fertig haben.

BAMatze 18. Mär 2009 19:29

Re: auflisten + Graf
 
Ich glaube das Thema um das es geht, ist ausführlich besprochen. Was mir noch fehlt, ist wo wir dir genau helfen können. Du solltest vieleicht mal zeigen, was du bisher gemacht hast, wo deine Probleme liegen, ...

playa2kk 18. Mär 2009 19:59

Re: auflisten + Graf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von BAMatze
Ich glaube das Thema um das es geht, ist ausführlich besprochen. Was mir noch fehlt, ist wo wir dir genau helfen können. Du solltest vieleicht mal zeigen, was du bisher gemacht hast, wo deine Probleme liegen, ...

Ich lade dann nochmal mein Programm hoch, vielleicht hilft das.
Ich muss noch die Funktion für t und y eingeben, diese aber Iterativ.
tn+1=tn+h
yn+1=yn+h*(e^k*t)*2

Und jeder berechnete Wert soll dann in die Tabelle rein, die ich auch dahin implementiert habe.

Nachdem ich dann die berechneten Werte habe soll dan ein Graf gezeichnet werden.
Die Ideen habe ich, ich weiß aber nicht wie ich das umsetzen kann, mangelt halt leider an Fachwissen, welches ich gerne hätte.

Mfg
play

_frank_ 18. Mär 2009 20:47

Re: auflisten + Graf
 
nochmal meine Fragen...

welche Werte musst du berechnen?
welche Werte sind gegeben (Matrix t)?
wie lange soll welcher Wert erhöht werden, um wo welches Maximum zu erreichen.
sind meine bisherigen Vermutungen richtig?

ggf. sind die 2 Funktionen voneinander abhängig (h,t)?

also ich hab ein rein mathematisches Verständnisproblem. dass dann irgendwann Werte in ner Tabelle stehen, wo ein (bzw. mehrere) Graph(en) draus gemalt werden sollen, ist klar.
mir gehts um die Erstellung der Tabelle = Berechnung der Werte.

Gruß Frank

playa2kk 18. Mär 2009 21:09

Re: auflisten + Graf
 
Zitat:

Zitat von _frank_
nochmal meine Fragen...

welche Werte musst du berechnen?

tn+1 bis [keine ahnung]
yn+1 bis [keine ahnung]

Zitat:

Zitat von _frank_
welche Werte sind gegeben (Matrix t)?

yn
tn
T
n

Zitat:

Zitat von _frank_
wie lange soll welcher Wert erhöht werden, um wo welches Maximum zu erreichen.

Ich weiß noch nicht genau

Zitat:

Zitat von _frank_
sind meine bisherigen Vermutungen richtig?

Ich denke schon

Zitat:

Zitat von _frank_
ggf. sind die 2 Funktionen voneinander abhängig (h,t)?

nicht direkt. h wird einfach nur zu tn dazu addiert, um einen neuen Wert zu erhalten

_frank_ 18. Mär 2009 21:36

Re: auflisten + Graf
 
wo wir schon bei der ersten fomel ein problem haben...2 unbekannte (t[n+1] und h)

was ist T? seh das in keiner Formel...lässt sich damit h berechnen?

n sollte ja nach meinem bisherigem Verständnis der Index in der matrix t sein, also beginnend vom ersten index (0 oder 1). also h wäre das delta zwischen den 2 benachbarten werten in der Matrix.

bei der 2. formel fehlen dann noch (wenn irgendwann h bekannt) e,k und t, wobei t wieder verwirrend ist...t=matrix aus erster formel e könnte eulerische Zahl sein (Konstante).

was sind das für formeln genau? wie ist der Zusammenhang...vielleicht kapier ichs dann mal :)

aber aufgrund der Tatsache, dass sonst kaum Antworten kamen, scheine ich nicht der einzige zu sein, der im Dunkeln tappt...

Zitat:

Zitat von Jakob Ullmann
Warum kein TImage?

TImage ist ein Container für Bilddateien/Streams, will man selbst malen ist TPaintbox oder ein TGraphicControl deiner Wahl bessser geeignet.

siehe auch hier für Erläuterungen:
http://www.delphipraxis.net/internal...=909362#909362

und damit es nicht so aussieht, dass ich der einzige mit dieser Ansicht bin:
http://www.delphipraxis.net/internal...=492914#492914

Gruß Frank

playa2kk 18. Mär 2009 21:48

Re: auflisten + Graf
 
Zitat:

Zitat von _frank_
wo wir schon bei der ersten fomel ein problem haben...2 unbekannte (t[n+1] und h)

was ist T? seh das in keiner Formel...lässt sich damit h berechnen?

n sollte ja nach meinem bisherigem Verständnis der Index in der matrix t sein, also beginnend vom ersten index (0 oder 1). also h wäre das delta zwischen den 2 benachbarten werten in der Matrix.

bei der 2. formel fehlen dann noch (wenn irgendwann h bekannt) e,k und t, wobei t wieder verwirrend ist...t=matrix aus erster formel e könnte eulerische Zahl sein (Konstante).

was sind das für formeln genau? wie ist der Zusammenhang...vielleicht kapier ichs dann mal :)

aber aufgrund der Tatsache, dass sonst kaum Antworten kamen, scheine ich nicht der einzige zu sein, der im Dunkeln tappt...

Zitat:

Zitat von Jakob Ullmann
Warum kein TImage?

TImage ist ein Container für Bilddateien/Streams, will man selbst malen ist TPaintbox oder ein TGraphicControl deiner Wahl bessser geeignet.

siehe auch hier für Erläuterungen:
http://www.delphipraxis.net/internal...=909362#909362

und damit es nicht so aussieht, dass ich der einzige mit dieser Ansicht bin:
http://www.delphipraxis.net/internal...=492914#492914

Gruß Frank

Ich glaube ich konnte die Sache nicht so ganz richtig erklären.

tn hat nichts mit n zu tun. n steht nur für die gleichgroßen teile im intervall.
Das Programm kann h schon berechnen, zum testen hab ich auch das auch schon in die Tabelle übernommen.Müsste zelle (1,0) sein.

tn = Anfangswert
yn = Anfangswert
T = Intervalllänge
n = Anzahl der gleichgroßen Teile im Intervall
h = Schrittweite
e = eulersche Zahl

Die Formeln kommen vom Eulerverfahren, um nicht explizit lösbare DGL annäherungsweise darzustellen.


PS: Hast du eine funktionierende Delphi USB Version ?

_frank_ 18. Mär 2009 22:24

Re: auflisten + Graf
 
also anhand der Bergiffserklärung: h=T/n richtig? wie ist tn+1 zu deuten? wirklich als startwert+1 oder der nächste Wert (Matrixtheorie).

nehmen wir an, ich habe z.b. folgende Werte:
tn = 5
T = 10
n = 5

nach obigen wäre h = 2 und tn+1 = 7, wobei man dann ja tn+1 gleich wieder als tn einsetzen würde, um die werte zu bekommen...solange bis? jo...vermutlich bis tn+T also das ganze Intervall wo wir dann genau n werte in unserer Tabelle hätten (ggf. +startwert).

setzt du dann in der zweiten gleichung das t mit dem errechnete tn gleich? wäre dann nur noch k irgendwie zu ermitteln...dann kann man auch das yn errechnen.

zu delphi4usb, das ganze ist eine portable ide bestehend aus scite als editor, dfmedit als form-designer und dem commandozeilencompiler inkl. include-dcu's (compiler und dcus nicht im Package).

Gruß Frank

playa2kk 18. Mär 2009 22:46

Re: auflisten + Graf
 
Zitat:

Zitat von _frank_
also anhand der Bergiffserklärung: h=T/n richtig? wie ist tn+1 zu deuten? wirklich als startwert+1 oder der nächste Wert (Matrixtheorie).

nehmen wir an, ich habe z.b. folgende Werte:
tn = 5
T = 10
n = 5

nach obigen wäre h = 2 und tn+1 = 7, wobei man dann ja tn+1 gleich wieder als tn einsetzen würde, um die werte zu bekommen...solange bis? jo...vermutlich bis tn+T also das ganze Intervall wo wir dann genau n werte in unserer Tabelle hätten (ggf. +startwert).

setzt du dann in der zweiten gleichung das t mit dem errechnete tn gleich? wäre dann nur noch k irgendwie zu ermitteln...dann kann man auch das yn errechnen.

zu delphi4usb, das ganze ist eine portable ide bestehend aus scite als editor, dfmedit als form-designer und dem commandozeilencompiler inkl. include-dcu's (compiler und dcus nicht im Package).

Gruß Frank

Ach neeeeeeeeein, ich Dummkopf, das k wollte ich doch durch 2 ersetzen >_<
Die Formel lautet eigentlich
yn+1=yn+h*(e^k*t)*k
k=Konstante, in meinem Fall soll k=2 sein.
Vielleicht hilft dir das weiter:
yn und tn=y[0] und t[0]
http://img9.imageshack.us/img9/5302/euler.jpg

Schönen Abend noch, ich muss mich langsam auf Ohr haun.
play

playa2kk 19. Mär 2009 20:26

Re: auflisten + Graf
 
Guten Abend,
scheint ya doch schwerer zu sein als gedacht.
Die relevanten Gleichungen sind oben genannt.
y[n+1] und t[n+1].
Wie kann ich denn diese neuen Werte Iterativ berechnen lassen und dann später die Werte aus der Tabelle in einen Grafen überführen?

mfg
play

jfheins 19. Mär 2009 21:25

Re: auflisten + Graf
 
Ich gebe zu, ich verstehe das Problem nicht ganz :gruebel:

Wenn du einfach nur etwas iterativ berechnen (und auflisten) Willst, würde ich ein Stringgrid empfehlen

Delphi-Quellcode:
function next_y (yn, n: real): real;
// Bekommt n und y[n]- gibt y[n+1] zurück
const
  k = 4;
  h = 12;
begin
  Result := yn + h * Math.exp(k*n) * k; // z.B.
end;

// und dann halt das Stringgrid befüllen:

procediure ButtonClick
var
  n: Integer;
  y: real;
begin
  y := 42 // Startwert;

  for n := 1 to 12 do
  begin
    Stringgrid.Cells[n, 0] := inttostr(n);
    Stringgrid.Cells[n, 1] := floattostr(y);
    y := next_y(y, n);
  end;
Oder hab ich da was nicht ganz begriffen?
Ich guck mir das da oben nochmal an ...

playa2kk 19. Mär 2009 21:57

Re: auflisten + Graf
 
Zitat:

Zitat von jfheins
Ich gebe zu, ich verstehe das Problem nicht ganz :gruebel:

Wenn du einfach nur etwas iterativ berechnen (und auflisten) Willst, würde ich ein Stringgrid empfehlen

Delphi-Quellcode:
function next_y (yn, n: real): real;
// Bekommt n und y[n]- gibt y[n+1] zurück
const
  k = 4;
  h = 12;
begin
  Result := yn + h * Math.exp(k*n) * k; // z.B.
end;

// und dann halt das Stringgrid befüllen:

procediure ButtonClick
var
  n: Integer;
  y: real;
begin
  y := 42 // Startwert;

  for n := 1 to 12 do
  begin
    Stringgrid.Cells[n, 0] := inttostr(n);
    Stringgrid.Cells[n, 1] := floattostr(y);
    y := next_y(y, n);
  end;
Oder hab ich da was nicht ganz begriffen?
Ich guck mir das da oben nochmal an ...

Danke erst einmal für die Antwort, damit werde ich mich zunächst einmal befassen.
n hat nichts mit der Berechnung von y zu tun, der Anfangswert für y lautet einfach nur y[n], weil ich nicht wusste ob y[0] funktioniert, etwas unüberlegt von mir gewählt.
n+1 steht einfach nur dafür, das der y-Wert nach dem Anfangswert berechnet wird. Für den 2. Wert sähe das dann so aus: y[1+1]=y[1]+h*e^(2*t[1]) *2

playa2kk 20. Mär 2009 09:42

Re: auflisten + Graf
 
Ich versuche nun mal anhand folgendes Bildes mein Anliegen zu veranschaulichen.
Die Funktion für Delphi von oben hat mich nur bedingt geholfen.
Das was hier jetzt folgt, man erkennt eine Iterative Berechnung, muss ich einfach nur vom PC berechnen lassen, es kommen auch keine Potenzen vor.
Jeder berechnete Wert soll dann in die Tabelle(StringGrid, ist in meinem Programm schon eingebaut).
die Berechnung der Variable h habe ich schon übernommen, das war kein Problem.

http://img16.imageshack.us/img16/9426/eulerd.jpg

tn in meinem Programm ist y[0] auf dem Bild, also der gegebene Anfangswert.
Das selbe gilt auch für yn.

Wenn etwas nicht klar sein sollte, werde ich versuchen noch exakter zu erklären.

BAMatze 20. Mär 2009 12:38

Re: auflisten + Graf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Schau mal ob, das hier deinen Vorstellungen entspricht und die Funktionen richtig abbilden, die du verwenden musst. Habe aber nicht den Quellcode mitgeschickt. Schaus dir mal an.

playa2kk 20. Mär 2009 18:49

Re: auflisten + Graf
 
Dürfte ich den Quellcode sehen, da müsste die Funktion eigentlich doch drin stehen.
Wie der Graf genau aussieht weiß ich auch nicht.

Bin überwältigt vom Programm, würde gerne noch weitere Nachkommastellen anzeigen lassen, das wäre Perfekt.

WIE MACHT MAN SO EIN PROGRAMM ??? :D
Möchte das nur zu gerne erfahren.

Mit respektvollen Grüßen
play

BAMatze 20. Mär 2009 19:01

Re: auflisten + Graf
 
Also dachte du überprüfst erstmal mit dem was du da hast (Aufzeichnungen oder so) ob das so ist, wie du es haben möchtest. Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst, was keinen Lerneffekt für dich hättest. Außerdem ist das so wie ich mit bekommen hab nicht so gern gesehen, sowas zu machen. Ich mache dir den Vorschlag, dass ich dir hier (und sicherlich auch viele andere), dass du einfach einen Schritt nach dem anderen in Angriff nimmst und wir dir sagen und an abgewandelten Beispielen zeigen, wie man sowas programmiert. Das würde bei dir sicherlich einen so bleibenden Wissensgewinn erzeugen, dass du das beim nächsten mal selber hinbekommst.

Hier die einzigen Elemente, die ich für das Programm verwendet habe:
- Canvas (zeichne auf einem seperaten Bild vom Typ TBitmap, welches ich dann mittels Bitblt auf eine PaintBox zeichne)
- dynamische Arrays für y und t

Mehr brauchst eigentlich nicht um das so zu machen.

MfG
BAMatze

seim 20. Mär 2009 19:28

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst

Hör' mal bitte auf mit so nem Schwachsinn..

Ich hab' hauptsächlich durch Quellcode angucken und abändern gelernt wie Delphi funktioniert.. also Tut's hab ich kaum gelesen und wenn alle so handeln würden wie du das da beschreibst "Lerneffekt" dann gäbe es keine Libraries^^

playa2kk 20. Mär 2009 19:30

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Also dachte du überprüfst erstmal mit dem was du da hast (Aufzeichnungen oder so) ob das so ist, wie du es haben möchtest. Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst, was keinen Lerneffekt für dich hättest. Außerdem ist das so wie ich mit bekommen hab nicht so gern gesehen, sowas zu machen. Ich mache dir den Vorschlag, dass ich dir hier (und sicherlich auch viele andere), dass du einfach einen Schritt nach dem anderen in Angriff nimmst und wir dir sagen und an abgewandelten Beispielen zeigen, wie man sowas programmiert. Das würde bei dir sicherlich einen so bleibenden Wissensgewinn erzeugen, dass du das beim nächsten mal selber hinbekommst.

Hier die einzigen Elemente, die ich für das Programm verwendet habe:
- Canvas (zeichne auf einem seperaten Bild vom Typ TBitmap, welches ich dann mittels Bitblt auf eine PaintBox zeichne)
- dynamische Arrays für y und t

Mehr brauchst eigentlich nicht um das so zu machen.

MfG
BAMatze

bin 18 und besuche die 12. Stufe des Gymnasiums. Wir haben dieses Jahr erst begonnen mit Delphi zu arbeiten.
Wir haben weder Arrays noch Canvas noch eine andere von dir erwähnte Komponente bis jetzt durchgenommen, geschweige denn schon einmal erwähnt.

Wenn du mir zumindest erklären könntest, wie die Komponenten aufeinander aufbauen und wie sie miteinander kommunizieren, hätte ich vielleicht eine Chance das Programm auf die Reihe zu kriegen. Wie ich sehe scheint das Programm nicht all zu kompliziert zu sein, so hab ich mir das auch vorgestellt.
Aber ich kann dir versichern, dass ich mit sicherheit aus dem Quelltext etwas lerne, habe ich meiner Lehrerin schon des öfteren unter Beweis gestellt.

Ich habe P1 und P2 berechnet, und die scheinen mit deinen Werten im Einklang zu sein, nur halt die Nachkommastellen kann ich nicht überprüfen.

Mit respektvollen Grüßen
play

BAMatze 20. Mär 2009 20:33

Re: auflisten + Graf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von seim
Zitat:

Zitat von BAMatze
Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst

Hör' mal bitte auf mit so nem Schwachsinn..

Ich hab' hauptsächlich durch Quellcode angucken und abändern gelernt wie Delphi funktioniert.. also Tut's hab ich kaum gelesen und wenn alle so handeln würden wie du das da beschreibst "Lerneffekt" dann gäbe es keine Libraries^^

@seim: Da du wie du schon sagtest hier etwas rumgestöbert hast, werden dir sicherlich auch die dementsprechenden Grundsatzdiskusionen bekannt sein. Deswegen äußere ich mich hier auch gar nicht erst auf diesen Einwurf.

@Play: Habe dir den SourceCode angehängt, ich weiße gleich mal darauf hin, dass ich es in 30min zusammengestellt habe und deswegen nicht wirklich ein sauberes Programmierkonzept zugrunde liegt, sondern rein das Augenmerk auf Funktionalität lag. Es gibt ätliches, was noch Verbesserungswürdig ist (z.B. alles Löschen um einen weiteren Graphen anzeigen zu lassen, Beschriftung der Achsen, ...). Wenn du aber Fragen hast dazu, kannst du sie mir natürlich stellen.

MfG
BAMatze

playa2kk 20. Mär 2009 20:52

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Zitat:

Zitat von seim
Zitat:

Zitat von BAMatze
Das mit dem Quellcode wäre natürlich möglich, aber die Frage ist, ob du dann nicht der einfachheithalber einfach copy und paste machst

Hör' mal bitte auf mit so nem Schwachsinn..

Ich hab' hauptsächlich durch Quellcode angucken und abändern gelernt wie Delphi funktioniert.. also Tut's hab ich kaum gelesen und wenn alle so handeln würden wie du das da beschreibst "Lerneffekt" dann gäbe es keine Libraries^^

@seim: Da du wie du schon sagtest hier etwas rumgestöbert hast, werden dir sicherlich auch die dementsprechenden Grundsatzdiskusionen bekannt sein. Deswegen äußere ich mich hier auch gar nicht erst auf diesen Einwurf.

@Play: Habe dir den SourceCode angehängt, ich weiße gleich mal darauf hin, dass ich es in 30min zusammengestellt habe und deswegen nicht wirklich ein sauberes Programmierkonzept zugrunde liegt, sondern rein das Augenmerk auf Funktionalität lag. Es gibt ätliches, was noch Verbesserungswürdig ist (z.B. alles Löschen um einen weiteren Graphen anzeigen zu lassen, Beschriftung der Achsen, ...). Wenn du aber Fragen hast dazu, kannst du sie mir natürlich stellen.

MfG
BAMatze

Zunächst einmal Danke für deine Mühen.
Ich muss zugeben, ich wäre nie auf solch eine "komplizierte" Weise zum Ergebnis gekommen.Ich habe mir die Sache schon etwas einfacher vorgestellt.

Wie kann ich denn die Achsenbeschriftung einfügen?

Die Prozedur für die Punktberechnung habe ich komplett verstanden, bei der Zeichnung des Koordinatensystems gibt es bei mir Verständnisprobleme.
Könntest du mir, falls du Zeit und Lust hast, mir die Prozedur Schritt für Schritt erklären?
Delphi-Quellcode:
procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
  BitBlt(PaintBox1.Canvas.Handle, 0, 0, Paintbox1.Width, Paintbox1.Height,
  privbmp.Canvas.Handle, 0, 0, SRCCOPY);
end;

procedure TForm1.Line_zeichnen(StartX: Integer; StartY: Integer; EndX: Integer; EndY: Integer);
begin
  privbmp.Canvas.MoveTo(StartX, StartY);
  privbmp.Canvas.LineTo(EndX, EndY);
end;

procedure TForm1.Graph_zeichnen;
var i: integer;
var SkallierungX, SkallierungY: double;
begin
  privbmp.Canvas.Pen.Color := clred;
  SkallierungY := PaintBox1.Height/maxY;
  SkallierungX := PaintBox1.Width/Inter;
  for i := 0 to n-2 do Line_zeichnen(round(10+(SkallierungX*(t[i]-t[0]))),round(PaintBox1.Height-(10+SkallierungY*y[i])),round(10+(SkallierungX*(t[i+1]-t[0]))), round(PaintBox1.Height-(10+SkallierungY*y[i+1])));
  Paintbox1.Refresh;
end;

procedure TForm1.KoordinatenSystem_zeichnen;
var ySchritt, xSchritt, i: integer;
begin
  xSchritt := trunc((PaintBox1.Width-10)/5);
  ySchritt := trunc((PaintBox1.Height-10)/5);
  Line_zeichnen(0,PaintBox1.Height-10, Paintbox1.Width, PaintBox1.Height-10);
  Line_zeichnen(10,0, 10, PaintBox1.Height);
  for i := 1 to 5 do
    begin
      Line_zeichnen(10+i*xSchritt, PaintBox1.Height-15,10+i*xSchritt, PaintBox1.Height-5);
      Line_zeichnen(5,PaintBox1.Height-(+i*ySchritt), 15,PaintBox1.Height-(+i*ySchritt));
    end;
  PaintBox1.Refresh;
end;
Mfg
play

playa2kkk 21. Mär 2009 08:59

Re: auflisten + Graf
 
Guten Morgen,

da ist noch eine Sache an dem Programm.
Ich habe selbst versucht, das Problem zu beheben, aber nicht geschafft.
Was macht array of double genau?
Die berechneten Werte des Programms stimmen nicht mit meinen Werten überein.
Ich habe das noch einmal überprüft, habe versucht das Problem zu beheben, aber nicht geschafft.
t[j] := t[j-1] + h;
y[j] := y[j-1] + h* k * y[j-1];
Ich glaube an diesen Zeilen is der Fehler.
j:= 1 gesetzt, dann ist t[j-1]=0 und dadurch ist t[j]=h, und das ist falsch.
Das selbe gilt auch für y[j]. h*k*0 ergibt 0.
Die angezeigten Ergebnisse unten, also bei ty und y1. Als Ergebnis werden die Startwerte angezeigt. Das ist auch falsch?

Oder habe ich da etwas falsch verstanden ?
Müsste nicht statt t[j-1] t[0] stehen?

Mfg
play

_frank_ 21. Mär 2009 09:12

Re: auflisten + Graf
 
Zitat:

Zitat von playa2kkk
Was macht array of double genau?

das erstellt ein dynamisches eindimensionales array vom Datentyp double (8 Byte Fließkommazahl).
Die Dimensionierung erfolgt durch setlength(), wobei das Array 0-basierte Indizies verwendet.

Delphi-Quellcode:
array [0..3] of integer;
erstellt ein statisches array (Elemente 0 bis 3) mit Integer-Elementen.

HTH Frank

BAMatze 21. Mär 2009 09:39

Re: auflisten + Graf
 
Zitat:

Zitat von playa2kkk
Guten Morgen,

da ist noch eine Sache an dem Programm.
Ich habe selbst versucht, das Problem zu beheben, aber nicht geschafft.
Was macht array of double genau?
Die berechneten Werte des Programms stimmen nicht mit meinen Werten überein.
Ich habe das noch einmal überprüft, habe versucht das Problem zu beheben, aber nicht geschafft.
t[j] := t[j-1] + h;
y[j] := y[j-1] + h* k * y[j-1];
Ich glaube an diesen Zeilen is der Fehler.
j:= 1 gesetzt, dann ist t[j-1]=0 und dadurch ist t[j]=h, und das ist falsch.
Das selbe gilt auch für y[j]. h*k*0 ergibt 0.
Die angezeigten Ergebnisse unten, also bei ty und y1. Als Ergebnis werden die Startwerte angezeigt. Das ist auch falsch?

Oder habe ich da etwas falsch verstanden ?
Müsste nicht statt t[j-1] t[0] stehen?

Mfg
play

Also bei der Rechnung bin ich mir nicht 100% sicher, ob die richtig ist. Ich habe mich an deine Bilder und Erklärungen gehalten, so gut es geht. Ich denke die sachliche Richtigkeit zu prüfen, kann nur deine Aufgabe sein, dies zu klären eventuell mit deinem Lehrer oder so. Desweiteren zu dem Array of Double: Wenn ich ein Array dynamisch erzeuge, sagen wir mit 10 Stellen, dann erzeugt der Rechner für mich ein Array vom Index 0 bis 9. Ich lasse in der Schleife (wenn du dir mal vorstellst n=10 also die Anzahl) von 1 bis 9 laufen:

Delphi-Quellcode:
for j:=1 to n-1 do ...
Dies kann ich tun, da ich am ersten Wert gar nichts verändern muss, den bekomme ich vorgegeben. Aber wenn ich jetzt auf den Vorgänger vom j-ten Element zugreifen möchte, dann muss für y[j]= y[j-1] + h * k * y[j-1] genommen werden (also steht hier versteckt dein y[0], wenn du einfach einsetzt y[1] = y[1-1] + h * k * y[1-1} für den ersten Schleifendurchlauf). Deine Einwürfe, dass wenn man y[0] = 0 setzt keinem richtigen Ergebnis führt, weil alle anderen Werte auch 0 werden, sind dabei logisch aber du musst bedenken, welche Funktion du nachstellst, es ist die e-Funtkion. Die E-Funktion hat folgende Form: f = a * e^b dabei sind a,b Elemete der Reelen Zahlen. Egal was du für b einsetzt du kannst NIE 0 erreichen (Versuchsmal, kleiner Tip du musst Zahlen nehmen, die gegen -Unendlich laufen). Du kannst natürlich auf eine Weise 0 erreichen, wenn du a = 0 setzt und wenn du dann aber egal wie b änderst, bleibt der Zahlenwert für die E-Funktion mit f= 0 * e^b auch immer 0 somit scheint mein Programm rein logisch gesehen dies wirklich nachzustellen.

Ps. mir ist schon bewusst, wenn ich die Funktion so abwandel, dass sie lautet: f = a * e^b +c, dann erhalte ich einen Schnittpunkt mit der X-Achse. Das ist mir Wohl bewusst und ich werfe einfach mal den Begriff der Asymthote in den Raum, ich denke damit sollte alles klar sein.

Falls noch Fragen bestehen, werde ich dir die gern weiter beantworten. Bereite schnell eine Kommentierung für die Procedure vor.

MfG
BAMatze

playa2kkk 21. Mär 2009 09:48

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Zitat:

Zitat von playa2kkk
Guten Morgen,

da ist noch eine Sache an dem Programm.
Ich habe selbst versucht, das Problem zu beheben, aber nicht geschafft.
Was macht array of double genau?
Die berechneten Werte des Programms stimmen nicht mit meinen Werten überein.
Ich habe das noch einmal überprüft, habe versucht das Problem zu beheben, aber nicht geschafft.
t[j] := t[j-1] + h;
y[j] := y[j-1] + h* k * y[j-1];
Ich glaube an diesen Zeilen is der Fehler.
j:= 1 gesetzt, dann ist t[j-1]=0 und dadurch ist t[j]=h, und das ist falsch.
Das selbe gilt auch für y[j]. h*k*0 ergibt 0.
Die angezeigten Ergebnisse unten, also bei ty und y1. Als Ergebnis werden die Startwerte angezeigt. Das ist auch falsch?

Oder habe ich da etwas falsch verstanden ?
Müsste nicht statt t[j-1] t[0] stehen?

Mfg
play

Also bei der Rechnung bin ich mir nicht 100% sicher, ob die richtig ist. Ich habe mich an deine Bilder und Erklärungen gehalten, so gut es geht. Ich denke die sachliche Richtigkeit zu prüfen, kann nur deine Aufgabe sein, dies zu klären eventuell mit deinem Lehrer oder so. Desweiteren zu dem Array of Double: Wenn ich ein Array dynamisch erzeuge, sagen wir mit 10 Stellen, dann erzeugt der Rechner für mich ein Array vom Index 0 bis 9. Ich lasse in der Schleife (wenn du dir mal vorstellst n=10 also die Anzahl) von 1 bis 9 laufen:

Delphi-Quellcode:
for j:=1 to n-1 do ...
Dies kann ich tun, da ich am ersten Wert gar nichts verändern muss, den bekomme ich vorgegeben. Aber wenn ich jetzt auf den Vorgänger vom j-ten Element zugreifen möchte, dann muss für y[j]= y[j-1] + h * k * y[j-1] genommen werden (also steht hier versteckt dein y[0], wenn du einfach einsetzt y[1] = y[1-1] + h * k * y[1-1} für den ersten Schleifendurchlauf). Deine Einwürfe, dass wenn man y[0] = 0 setzt keinem richtigen Ergebnis führt, weil alle anderen Werte auch 0 werden, sind dabei logisch aber du musst bedenken, welche Funktion du nachstellst, es ist die e-Funtkion. Die E-Funktion hat folgende Form: f = a * e^b dabei sind a,b Elemete der Reelen Zahlen. Egal was du für b einsetzt du kannst NIE 0 erreichen (Versuchsmal, kleiner Tip du musst Zahlen nehmen, die gegen -Unendlich laufen). Du kannst natürlich auf eine Weise 0 erreichen, wenn du a = 0 setzt und wenn du dann aber egal wie b änderst, bleibt der Zahlenwert für die E-Funktion mit f= 0 * e^b auch immer 0 somit scheint mein Programm rein logisch gesehen dies wirklich nachzustellen.

Ps. mir ist schon bewusst, wenn ich die Funktion so abwandel, dass sie lautet: f = a * e^b +c, dann erhalte ich einen Schnittpunkt mit der X-Achse. Das ist mir Wohl bewusst und ich werfe einfach mal den Begriff der Asymthote in den Raum, ich denke damit sollte alles klar sein.

Falls noch Fragen bestehen, werde ich dir die gern weiter beantworten. Bereite schnell eine Kommentierung für die Procedure vor.

MfG
BAMatze

Bei mir herrscht zur ZEit Verwirrung im Kopf, weiß mich grad nicht zuzuordnen.
Entweder habe ich das Programm noch nicht verstanden, oder das Verfahren.
Die e-Funktion kommt eigentlich hier gar nicht vor. Die e-Funktion ist die exakte Lösung unseres Beispiels. Diese wird in dem Programm nicht gebraucht.Oder was meintest du '?

BAMatze 21. Mär 2009 09:52

Re: auflisten + Graf
 
Zitat:

Die Prozedur für die Punktberechnung habe ich komplett verstanden, bei der Zeichnung des Koordinatensystems gibt es bei mir Verständnisprobleme.
Könntest du mir, falls du Zeit und Lust hast, mir die Prozedur Schritt für Schritt erklären?
Ok hier noch die Procedure mit den Erklärungen:

Delphi-Quellcode:
procedure TForm1.KoordinatenSystem_zeichnen;
var ySchritt, xSchritt, i: integer;
begin
  // Ok Ziel ist es 5 Teilstriche auf der X und Y Achse darzustellen.
  // Dafür habe ich die Zeilen mal neu geordnet (es sind keine weiteren
  // dazugekommen) damit es vieleicht besser Verständlich ist.

  // zuerst zeichnen ich die Achsen an sich mit folgenden beiden Zeilen
  // X-Achse wird 10 Pixel über dem unteren Rand gezeichnet.
  Line_zeichnen(0,PaintBox1.Height-10, Paintbox1.Width, PaintBox1.Height-10);
  // Y-Achse wird 10 Pixel vom linken Rand gezeichnet.
  Line_zeichnen(10,0, 10, PaintBox1.Height);

  // Für meine 5 Teilstriche bleiben, damit sie gleichmäßig über die Strecke
  // verteilt sind jeweils PaintBox1-Höhe und Breite minus 10 Pixel.
  // Also ermittel ich mir die Weite der Strichabstände indem ich durch 5 Teile.
  xSchritt := trunc((PaintBox1.Width-10)/5);
  ySchritt := trunc((PaintBox1.Height-10)/5);

  // Nach der Ermittlung der Schrittweite für diese Striche muss ich sie nur noch
  // zeichnen. Der einfachheithalber nutze ich da eine For-Schleife. Bedenken muss
  // ich nur, dass ich jeweils bei Pixel 10 erst anfange zu zählen (erklärt die 10+...)
  for i := 1 to 5 do
    begin
      Line_zeichnen(10+i*xSchritt, PaintBox1.Height-15,10+i*xSchritt, PaintBox1.Height-5);
      Line_zeichnen(5,PaintBox1.Height-(+i*ySchritt), 15,PaintBox1.Height-(+i*ySchritt));
    end;

  // Damit ich die Änderungen überhaupt sehen kann lass ich mir die Paintbox nochmal neu
  // zeichnen.
  PaintBox1.Refresh;
end;

BAMatze 21. Mär 2009 10:04

Re: auflisten + Graf
 
Zitat:

Zitat von playa2kkk
Bei mir herrscht zur ZEit Verwirrung im Kopf, weiß mich grad nicht zuzuordnen.
Entweder habe ich das Programm noch nicht verstanden, oder das Verfahren.
Die e-Funktion kommt eigentlich hier gar nicht vor. Die e-Funktion ist die exakte Lösung unseres Beispiels. Diese wird in dem Programm nicht gebraucht.Oder was meintest du '?

Ok ich versuche es nochmal zu erklären. Habe dir hier auch einen Link zu Wiki bereitgestellt, damit du dir auch noch die restlichen Informationen holen kannst, die du über diese Funktion wissen musst. Das Wissen über die Funktion, die du eigentlich darstellen willst, ist unbedingt nötig, wenn du dein Programm wirklich auf Plausibilität prüfen willst.

Also die E-Funktion in der Form f = a* e^b hat eine Asymptote nämlich die 0, dass heißt sie nächert sich wenn a>0 ist dieser im negativen Unendlichen an, erreicht sie aber nicht. Bei a<0 gilt dies fürs positive Unendliche. Die E-Funktion in der Angesprochenen Form kann nur 0 Werden, wenn a = 0 ist! Aber wenn a = 0 ist, dann sind alle Funktionswerte 0.

Dies wird durch meine Berechnungen im Programm auch so wieder gespiegelt. Wenn du für y[0] den Startwert auf 0 setzt, heißt das es gibt mindestens einen Funktionswert, der 0 ist und da dies nur sein kann, wenn a = 0 ist, dann müssen auch alle anderen Funktionswerte für die E-Funktion 0 sein.

Jetzt kam dein Einwurf, du hast ja aber nicht die E-Funktion, sondern willst sie nur nachstellen, aber frag dich selber, wäre dir eine Funktion lieber, die dir anzeigt, y[irgendein Wert] = 5000 wenn du weißt y[irgendein Wert] = 0? Also ich denke mal wir sind uns einig, wir erwarten Werte, die auch die E-Funktion bringen würde.

Also sind meine Ausführungen im gemeinten Threat erstmal plausibel, denke ich, wenn ich mich dort auf die E-Funktion beziehe.

MfG
BAMatze

playa2kkk 21. Mär 2009 20:04

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Zitat:

Zitat von playa2kkk
Bei mir herrscht zur ZEit Verwirrung im Kopf, weiß mich grad nicht zuzuordnen.
Entweder habe ich das Programm noch nicht verstanden, oder das Verfahren.
Die e-Funktion kommt eigentlich hier gar nicht vor. Die e-Funktion ist die exakte Lösung unseres Beispiels. Diese wird in dem Programm nicht gebraucht.Oder was meintest du '?

Ok ich versuche es nochmal zu erklären. Habe dir hier auch einen Link zu Wiki bereitgestellt, damit du dir auch noch die restlichen Informationen holen kannst, die du über diese Funktion wissen musst. Das Wissen über die Funktion, die du eigentlich darstellen willst, ist unbedingt nötig, wenn du dein Programm wirklich auf Plausibilität prüfen willst.

Also die E-Funktion in der Form f = a* e^b hat eine Asymptote nämlich die 0, dass heißt sie nächert sich wenn a>0 ist dieser im negativen Unendlichen an, erreicht sie aber nicht. Bei a<0 gilt dies fürs positive Unendliche. Die E-Funktion in der Angesprochenen Form kann nur 0 Werden, wenn a = 0 ist! Aber wenn a = 0 ist, dann sind alle Funktionswerte 0.

Dies wird durch meine Berechnungen im Programm auch so wieder gespiegelt. Wenn du für y[0] den Startwert auf 0 setzt, heißt das es gibt mindestens einen Funktionswert, der 0 ist und da dies nur sein kann, wenn a = 0 ist, dann müssen auch alle anderen Funktionswerte für die E-Funktion 0 sein.

Jetzt kam dein Einwurf, du hast ja aber nicht die E-Funktion, sondern willst sie nur nachstellen, aber frag dich selber, wäre dir eine Funktion lieber, die dir anzeigt, y[irgendein Wert] = 5000 wenn du weißt y[irgendein Wert] = 0? Also ich denke mal wir sind uns einig, wir erwarten Werte, die auch die E-Funktion bringen würde.

Also sind meine Ausführungen im gemeinten Threat erstmal plausibel, denke ich, wenn ich mich dort auf die E-Funktion beziehe.

MfG
BAMatze


Erst einmal möchte ich mich für deine Bemühungen bedanken, hoffentlich konntest du aus dem Thread auch etwas mitnehmen.
Wenn die berechneten Werte des Programms stimmen, dann müssen meine Werte falsch sein, wobei ich keine Fehler finden konnte.
Ich habe die Funktion y'(t)=k*y(t) schon exakt gelöst, da kommt eine e-Funktion heraus, also hast du insofern recht.
Mfg
play

BAMatze 21. Mär 2009 20:12

Re: auflisten + Graf
 
Also ich würde erstmal immer meinem Handgerechneten vertrauen, weil du da weißt, was du gemacht hast. Bei meinem Programm, das ich dir geschickt hab, merkst du ja selber, dass ich mir nicht so sicher bin. Ich hab nur anhand der Betrachtungen versucht zu erklären, warum das Ergebnis eventuell plausibel sein könnte.
Wenn du andere Ergebnisse hast, dann ist denke ich vieleicht jetzt der Zeitpunkt, dass du diese mal hier angibst, dann kann ich mal schauen, was ich per Hand errechne. 4 Augen sehen bekannltich mehr als 2.

playa2kkk 21. Mär 2009 21:37

Re: auflisten + Graf
 
Zitat:

Zitat von BAMatze
Also ich würde erstmal immer meinem Handgerechneten vertrauen, weil du da weißt, was du gemacht hast. Bei meinem Programm, das ich dir geschickt hab, merkst du ja selber, dass ich mir nicht so sicher bin. Ich hab nur anhand der Betrachtungen versucht zu erklären, warum das Ergebnis eventuell plausibel sein könnte.
Wenn du andere Ergebnisse hast, dann ist denke ich vieleicht jetzt der Zeitpunkt, dass du diese mal hier angibst, dann kann ich mal schauen, was ich per Hand errechne. 4 Augen sehen bekannltich mehr als 2.

http://img19.imageshack.us/img19/5302/euler.jpg

Hast du vielleicht einen Instant Messenger?
das ist sicherlich etwas einfacher als hier immer zu schreiben.

play

BAMatze 21. Mär 2009 22:33

Re: auflisten + Graf
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also als erstes fällt mir auf, dass du Fehler in deinen Y-Werten hast. Ich hab das mal überprüft und denke du hast den Vorrang der Punktrechnung vor der Strichrechnung nicht beachtet, ist aber nicht so schlimm, haben das Problem ja erkannt.

Hier mal die Ergebnisse, dich ich für Y1 und Y2 per Hand erwarte:

Anfangspunkt: P[t0 = 0,4; y0 = 0,2] Hier ist auch ein Fehler in deinem Bild, dort steht für Y1 = Y0 + h * k * Y0 für das 2. Y0 0,4 wobei das 0,2 sein sollte! Ich denke du setzt dort den Wert für t0 ein, was aber nicht das ist, was ich aus der Vorgabe nehme. Dort steht für y(t0) = k * y0 und das musst du denke ich dann auch so dort einsetzen. Hab hier mal die auführliche Rechnung aufgeschrieben.

Y1 = Y0 + h * k * Y0
Y1 = 0,2 + (0,4 * 2 * 0,2) = 0,2 + 0,16
Y1 = 0,36

Y2 = Y1 + h * k * Y1
Y2 = 0,36 + (0,4 * 2 * 0,36) = 0,36 + 0,288
Y2 = 0,648

Wenn ich diese Änderungen beachte und die Werte auch eingeben, dann erhalte ich diese Werte auch von dem Programm, welches ich dir zur Verfügung gestellt habe. Im Anhang ist ein Bild, wo du die vom Programm berechneten Werte für Y1 und Y2 sehen kannst. Hab auch die Indexe angepasst, so dass es mit deinen Vorgaben übereinstimmt.

PS.: Wenn ich das doch falsch verstanden habe und dort wirklich t und nicht y in der Formel stehen soll, dann musst du nur Bescheid sagen, dann kann ich das noch ändern. So habe ich das aber verstanden.

MfG
BAMatze


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 Uhr.
Seite 1 von 2  1 2      

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