Entwickler-Ecke

Sonstiges (Delphi) - Numerische Integration in Delphi 7


clementine - Sa 18.12.10 13:45
Titel: Numerische Integration in Delphi 7
Hallo, ich muss für die Schule ein Programm zur näherungsweisen Bestimmung von Integralen mit der Rechteckmethode schreiben muss.
Ich hab' allerdings 'n paar Probleme dabei.
Das Programm liest die Funktion ein, die Intervallgrenzen und die Anzahl der Rechtecke. Berechnet dann die Breite der Streifen und soll dann sowohl den linken als auch den rechten Funktionswert ausrechnen, an dem das Rechteck eben auf die Kurve trifft.
Wenn er dann die Untersumme berechnet, soll er schauen, welcher der Funktionswerte der kleinere ist und dann damit und der Breite des Streifens den Inhalt dieses Streifens ausrechnen.

Ich weiß nur nicht, wie ich das programmieren soll, dass er nach und nach jedes Rechteck durchgeht.
Mit 'ner Schleife ja auf jeden Fall also zB for i:=1 to n (Anzahl der Streifen) do
Und dann, dass die Gesamtsumme aus den einzelnen Flächeninhalten der Streifen zusammengerechnet wird.

Ich hab' es so versucht:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
        begin
          unters:=unters+us[i];
          for j:=0 to n-1 do yL:=(a*(x1+j*d))+b;
          for k:=1 to n do   yR:=(a*(x1+k*d))+b;
          if yL<yR then us[i]:=d*yL else us[i]:=d*yR;
        end;
      label12.caption:=floattostrf(unters,fffixed,5,2);


Aber es geht nicht ):

Ich hoffe, irgendjemand kann mir behilflich sein.

LG.

Moderiert von user profile iconMartok: Delphi-Tags eingefügt


ALF - Sa 18.12.10 14:01

Hi und :welcome:
Hast Du dir schon mal angeschaut das Du die Variable 'unters' gar nicht aktuallisierst nach den For schleifen!? Was soll also im Label angezeigt werden, ausser der Wert der oben initiallisiert wird!

Gruss ALf


clementine - Sa 18.12.10 14:09

Muss ich dann das obere unters:=unters+us[i] stehen lassen oder wegnehmen ? Und was soll ich unten drunter hinschreiben, um das zu aktualisieren ?
LG


jaenicke - Sa 18.12.10 14:14

user profile iconclementine hat folgendes geschrieben Zum zitierten Posting springen:
Und was soll ich unten drunter hinschreiben, um das zu aktualisieren ?
Ist dir denn klar, was da mathematisch passieren muss? Denn genau das musst du da dann ja machen.


clementine - Sa 18.12.10 14:16

Was genau jetzt mathematisch verstehen ? Die Rechteckmethode oder das mit dem Aufaddieren der Einzelteile ?


ALF - Sa 18.12.10 14:17

Ergo, nach der if Anweisung sollte 'unters' aktualisiert werden nicht am Anfang

Gruss ALf