AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bisektion - Ein Verfahren zur Nullstellenberechnung
Thema durchsuchen
Ansicht
Themen-Optionen

Bisektion - Ein Verfahren zur Nullstellenberechnung

Ein Thema von moertymoo · begonnen am 8. Mai 2006 · letzter Beitrag vom 9. Mai 2006
 
moertymoo

Registriert seit: 8. Mai 2006
12 Beiträge
 
#1

Bisektion - Ein Verfahren zur Nullstellenberechnung

  Alt 8. Mai 2006, 11:55
BITTE NICHT ZURÜCKSCHRECKEN VOR DEM LANGEN TEXT IST SEHR WICHTIG!!!!

Hallo an alle!
Ich komme hier echt ins schwitzen und weiß nicht mehr weiter...
Und zwar habe ich die Aufgabe bis zum 15.5.2006 ein Delphi Programm abzugeben,
bei dem das Verfahren der Bisektion angewandt wird um die Nullsetllen zu berechnen...

Unten habe ich als Dateianhang ein Screenshot meines Programmes gemacht...
Das einzige Problem ist das ich den "Rechne"- Button nicht hinbekomme...

Naja was soll ich genau machen? Ich versuch es mal zu erklären und ich hoffe, dass mir dann jemand weiterhelfen kann!

Also wie man auf dem Bild erkennen kann ist das Programm nur für Funktionen bis zum 4. Grad gedacht...

Die ersten 5 Edit Felder sind halt für die Eingabe der Funktion...
Die 2 darunter sind für die Intervallgrenzen

Variablen habe ich so definiert:

a,b,c,d,e,f,g,y,z,:double; //a=Intervallgrenze links; b=Intervallgrenze rechts; c,d,e,f,g=Zahlen in den Edit-Feldern der Funktion; y,z=y-Werte

So wenn man die Funktionswerte und die Intervallgrenzen eingesetz hat soll der Rechnen...
Dazu soll der die Intervallgrenzen a und b jeweils in die Funktion einsetzen...
Dazu habe ich die Variablen y und z definiert (siehe oben)

Das sieht im Programm dann so aus:

a:=strtofloat(edit6.Text); //a bekommt die Zahl aus dem Edit6-Feld zugeordnet
b:=strtofloat(edit7.Text); //b bekommt die Zahl aus dem Edit7-Feld zugeordnet
c:=strtofloat(edit1.Text); //c bekommt die Zahl aus dem Edit1-Feld zugeordnet
d:=strtofloat(edit2.Text); //d bekommt die Zahl aus dem Edit2-Feld zugeordnet
e:=strtofloat(edit3.Text); //e bekommt die Zahl aus dem Edit3-Feld zugeordnet
f:=strtofloat(edit4.Text); //f bekommt die Zahl aus dem Edit4-Feld zugeordnet
g:=strtofloat(edit5.Text); //g bekommt die Zahl aus dem Edit5-Feld zugeordnet
y:=(c*a*a*a*a)+(d*a*a*a)+(e*a*a)+(f*a)+(g);
z:=(c*b*b*b*b)+(d*b*b*b)+(e*b*b)+(f*b)+(g);

So bin hier hin hab ich kein Problem!
So jetzt setzt der die Werte ja bei y und z ein un rechnet das... Dann hat er für y und z zwei Werte die er auf die Vorzeichen untersuchen soll.... Also Positiv oder Negativ...
Das hab ich so gemacht...

if (y>0) and (z<0) or (z>0) and (y<0) then <-- wenn dieses Zutrifft soll er weiterrechnen, indem er das Intervall von a und b teilt....
also: (a+b)/2...
So für diese Intervalltrennung hab ich auch ne Variable p definiert!
also p:=((a+b)/2)
So und dieses p soll er jetzt wieder mit y und z vergleichen...
Wenn dieses dann wieder unterschiedliche Vorzeichen haben soll der das Intervall wieder teilen und wieder auf die Vorzeichen überprüfen und immer so weiter...
Hier fangen die Probleme an! Ich hab keine Ahnung wie ich das im Programm machen soll... Irgendwie mit einer Schleifenform...
Die Schleife muss das intervall immerteilen und das neue P mit den werten davor vergleichen!

Außerdem fehlt mir noch eine Abbruchbedingung!

HOFFE MIR KANN JEMAND HELFEN! DANKE!
Angehängte Grafiken
Dateityp: jpg bisektion1_113.jpg (29,2 KB, 106x aufgerufen)
  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 01:27 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