Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

Fehlerhafte Integralberechnung

Protagonist - 30
Champion (offline)

Dabei seit 05.2010
2451 Beiträge
Geschrieben am: 21.01.2012 um 23:40 Uhr

Hi,
ich wollte als Übung mal ein Programm in Pascal schreiben, das das Integral berchnen kann.
Aus irgendeinem Grund kommt aber immer ein falsches Ergebnis raus, wobei die Bestimmung der Stammfunktion funktioniert.

Hier das Projekt zum Download (ich kann den Code morgen auch noch hier reinschreiben): klick.

Kurze Beschreibung der Vorgehensweise:
1. Stammfunktion F(x) zu der eingegebenen Funktion f(x) bestimmen.
2. Integral=F(obere Grenze)-F(untere Grenze).

Müsste so doch eig. funktionieren, oder?
TheBrainless - 37
Experte (offline)

Dabei seit 04.2005
1992 Beiträge

Geschrieben am: 22.01.2012 um 01:43 Uhr

naja, auf den ersten blick berechnest du die falsche potenz. wenn du immer oberegrenze*oberegrenze machst, dann hast du ja oberegrenze^2.
und im nächsten schritt hast du oberegrenze^2*oberegrenze^2 also oberegrenze^4.
daran könnts evtl. liegen.

von der theorie her hört sich deine berechnung aber richtig an^^

Mörps mörps blubbs!

Protagonist - 30
Champion (offline)

Dabei seit 05.2010
2451 Beiträge
Geschrieben am: 22.01.2012 um 08:24 Uhr
Zuletzt editiert am: 22.01.2012 um 11:12 Uhr

Stimmt, das hab ich jetzt verbessert.
Aber funktioniert immer noch nicht richtig.

Der Code:
vars:

Zitat:

sf_faktor,sf_potenz,integral,obereg,untereg,faktor,potenz,e1,e2,ogorig,ugorig:Real;
n:Integer;


procedure:

Zitat:

n:=0;
faktor:=strtofloat(tedit_faktor.text);
potenz:=StrToFloat(tedit_potenz.text);
untereg:=strtofloat(tedit_untereg.text);
obereg:=strtofloat(tedit_obereg.text);
sf_potenz:=potenz+1;
sf_faktor:=faktor/sf_potenz;
tedit_stammfunktion.text:=FloatToStr(sf_faktor) + 'x^' + floattostr(sf_potenz);
ogorig:=obereg;
ugorig:=untereg;
while n<sf_potenz do
begin
obereg:=obereg*ogorig;
n:=n+1;
end;
e1:=obereg;
n:=0;
while n<sf_potenz do
begin
untereg:=untereg*ugorig;
n:=n+1;
end;
e2:=untereg;
integral:=(sf_faktor*e1)-(sf_faktor*e2);
tedit_integral.text:=floattostr(integral);


Edit:
Funktioniert jetzt, ich musste bei den Schleifen (die ich auch in eine hätte packen können) "n<(sf_potenz-1)" schreiben.

Edit #2: Kann also geclosed werden ^^
  [Antwort schreiben]

Forum / Bits und Bytes

(c) 1999 - 2025 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -