AGB  ·  Datenschutz  ·  Impressum  







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

polynom fläche berechnen

Ein Thema von tobiasw · begonnen am 1. Dez 2004 · letzter Beitrag vom 2. Dez 2004
Antwort Antwort
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#1

polynom fläche berechnen

  Alt 1. Dez 2004, 15:20
hi,

brauche unbedingt eure Hilfe denn ich komm nicht mehr weiter. Ich soll ein Prog schreiben welches für ein Polynom von Grad kleiner oder Gleich 3 die Fläche unter der Kurve in einem bestimmten Intervall nach der Rechtekregel berechnet.
Mein Prozedur sieht schon mal so aus.
procedure fläaeche (a3,a2,a1,a0,ug,og:double; var ergebnis:double);
Ug und Og sind die untere und obere Grenze

Ich hoffe jemand hat dafür eine Lösung für mich.

Gruß
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 15:34
Delphi Architect und dann diese Frage

Ich würde die Funktion einfach von Hand integrieren und dann die Formel im konkreten Fall fix einbinden.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 15:36
Da ich jetzt nicht die mathematische Formel zu Polynomflächenberechnung kenne, könntest du sie evtl posten?
Julian J. Pracht
  Mit Zitat antworten Zitat
axelf98

Registriert seit: 27. Aug 2003
Ort: Ennepetal
440 Beiträge
 
Delphi 2005 Personal
 
#4

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 15:39
Zitat von Mario:
Ich würde die Funktion einfach von Hand integrieren und dann die Formel im konkreten Fall fix einbinden.
Es soll aber die Rechteckregel angewendet werden! Das ist ein iteratives Verfahren, das von Unterteilung in Rechtecke ausgeht. Es gibt auch noch die Trapezregel, die in Trapeze zerlegt. Du solltest aber noch die Genauigkeit als Parameter übergeben (Wie viele Rechtecke sollen berechnet werden)
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 15:46
Da es ja offensichtlich um Hausaufgaben geht: Nein!

Ihr habt es ja noch nicht mal versucht
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#6

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 16:12
Zitat von axelf98:
Es soll aber die Rechteckregel angewendet werden! Das ist ein iteratives Verfahren, das von Unterteilung in Rechtecke ausgeht.
du solltest ein "delta" als schrittweite übergeben...
  Mit Zitat antworten Zitat
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#7

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 17:38
also das ganze ist ja ne Geradengleichung durch den Nullpunkt
Die Formel für a1 wird berechnent mit gu*go-gu/3, a2=(gu+go-gu/3)*go-gu/3 und und a3=(gu+2*go-gu/3)*go-gu/3.

mein Prozedure würde so aussehen (die erste zeile denn weiter weiß ich net)
proceddure flaeche (a3,a2,a1,a0,ug,og:double; var ergebnis:double);

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#8

Re: polynom fläche berechnen

  Alt 1. Dez 2004, 19:58
das ist ja nicht mehr als im ersten beitrag!
  Mit Zitat antworten Zitat
tobiasw

Registriert seit: 11. Nov 2004
156 Beiträge
 
Delphi 2005 Architect
 
#9

Re: polynom fläche berechnen

  Alt 2. Dez 2004, 15:37
hier die Lösung zu meinem Problem

Delphi-Quellcode:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label10: TLabel;
    Label11: TLabel;
    Edit5: TEdit;
    Label12: TLabel;
    Edit6: TEdit;
    Edit7: TEdit;
    Button1: TButton;
    CH_negFlaeche: TCheckBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Flaechenberechnung(a3, a2, a1, a0, ug, og : real; var erg : real; Bool_Flaeche : bool);
const Anzahl_intervalle = 10000000 ;
var x : real; i : integer;
begin
  erg := 0;
  x:= ug;
  for i:= 0 to Anzahl_intervalle-1 do
  begin
    if bool_Flaeche = true then
      erg := erg + (og-ug)/Anzahl_intervalle* (a3*x*x*x + a2*x*x + a1*x + a0)
    else
      erg := erg + (og-ug)/Anzahl_intervalle* abs(a3*x*x*x + a2*x*x + a1*x + a0);
    x:= x + (og-ug)/Anzahl_intervalle;
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var ergebnis : real;
begin
flaechenberechnung(strtofloat(edit1.Text), strtofloat(edit2.Text), strtofloat(edit3.Text), strtofloat(edit4.Text), strtofloat(edit5.Text), strtofloat(edit6.Text), Ergebnis, CH_negFlaeche.checked);
Edit7.Text:= FloatToStrF( Ergebnis, ffFixed, 11,4);
end;

end.
  Mit Zitat antworten Zitat
Mario

Registriert seit: 7. Apr 2003
567 Beiträge
 
Delphi 2006 Enterprise
 
#10

Re: polynom fläche berechnen

  Alt 2. Dez 2004, 21:00
Net schlecht

Was würde ich anders machen:

Real gegen Double oder bei noch größerer Genauigkeit gegen Extended ersetzen. Ersteres ist Formsache, zweites würde ich machen, weil Du bei 10.000.000 Durchläufen schon ein paar Rundungsfehler aufsummieren könntest.

10.000.000 Durchläufe? Ganz schon viel, oder? Ich würde evtl. die Durchläufe aus dem Begin/Ende bestimmen. Wenn Du jetzt nur einen extrem kleinen Bereich hast und den in 10.000.000 Teile unterteilst, rechnest Du sonst mit praktisch Null.

Du berechnest immer wieder:
(og-ug)/Anzahl_intervalle
Das solltest Du nur einmal machen.
Schöne Grüße,
Mario Noack
  Mit Zitat antworten Zitat
Antwort Antwort


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 21:08 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