AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Sekantenverfahren programmieren

Ein Thema von Anja87 · begonnen am 9. Feb 2005 · letzter Beitrag vom 10. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2   
Anja87

Registriert seit: 9. Feb 2005
Ort: Prenzlau
9 Beiträge
 
#1

Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:14
Hat jemand von euch schon mal ein Sekantenverfahren für ganzrationale Fkt. bei Delphi programmiert? Wir verzweifeln seit 3 Tagen daran und brauchen Hilfe!

  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.581 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:15
Hi Anja,

wie weit seid ihr denn schon gekommen. Wo genau happert es? Evtl. zeigst Du schon mal etwas Code Welche Delphi-Version. Bitte genauer angeben.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Christian S.
Christian S.

Registriert seit: 19. Apr 2003
Ort: Düsseldorf
835 Beiträge
 
#3

Re: Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:20
Zitat von sakura:
wie weit seid ihr denn schon gekommen.
zwei Seiten
Christian S.
Admin in der Entwickler-Ecke
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.581 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:21
Zitat von Christian S.:
Zitat von sakura:
wie weit seid ihr denn schon gekommen.
zwei Seiten
Und warum hat man da so schön vorbildlich gefragt und bei uns nicht

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Anja87

Registriert seit: 9. Feb 2005
Ort: Prenzlau
9 Beiträge
 
#5

Re: Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:27
Zur Delphi Version: Delphi 7.0 Personal

Zur Frage:
Wir wollten es kurz und schmerzlos fragen.

Zu unserem Zustand:
Wir haben bereits die Funktion erfolgreich eingelesen, zwei Punkte berechnet und die Sekante dazwischen zum Schnittpunkt mit der x-Achse gebracht. (Im Quelltext bis zur While-Schleife).
Wir scheitern an der Berechnung der Nullstelle (Ab while-Schleife.)

Delphi-Quellcode:
var
  Form1: TForm1;
   var a,s,c,x,y,o,p : real;
n,f,z:integer;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
f:=f+3;
stringgrid1.Cells[f-1,0]:=edit2.text;
stringgrid1.cells[f,0]:=edit1.text;
stringgrid1.cells[f-2,0]:=edit3.text;
end;



procedure TForm1.Button3Click(Sender: TObject);
begin
f:=-1;
n:=strtoint(edit1.Text);
stringgrid1.colcount:=3*n+3;
label5.Visible:=false;
edit4.Visible:=false;
edit5.Visible:=false;
label6.Visible:=false;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
label5.Visible:=true;
edit4.Visible:=true;
edit5.Visible:=true;
label6.Visible:=true;
end;

procedure TForm1.Button4Click(Sender: TObject);
var i,g: integer;
begin
  a:=strtofloat(edit4.text);
  z:=strtoint(edit5.text);
  edit4.Visible:=false;
  label5.visible:=false;
  edit5.Visible:=false;
  label6.Visible:=false;
  g:=0;
  y:=0;
  o:=0;
  x:=0;
  for i:= 1 to n+1 do
    begin
      g:=g+3;
      if stringgrid1.cells[g-3,0]<>'-then
        begin
          o:=power(z,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]));
          y:=power(a,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]));
         end
      else
        begin
          o:=-power(z,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]));
          y:=-power(a,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]));
        end;
    p:=p+o;
    x:=x+y;
     end;
    label7.caption:=floattostr(x);
    label8.caption:=floattostr(p);




   while abs(x)>1/10 do
    begin
      s:=z-((p*a-p*z)/(x-p));
      a:=s;
      g:=0;
      y:=0;
      for i:= 1 to n-1 do
        begin
          g:=g+3;
          if stringgrid1.cells[g-3,0]<>'-then
              y:=power(a,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]))
           else
              y:=-power(a,(strtoint(stringgrid1.cells[g-1,0])))*(strtoint(stringgrid1.cells[g-2,0]));
       end;
       x:=x+y;
       showmessage(floattostr(s));
    end;
  label10.Caption:=floattostr(x);
  label9.Caption:=floattostr(s);
end;

end.
Helft uns , wir sehen nicht mehr durch.
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.581 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Sekantenverfahren programmieren

  Alt 9. Feb 2005, 15:29
Zitat von Anja87:
Zur Delphi Version: Delphi 7.0 Personal
Dann ändere bitte den ersten Beitrag und markiere die RadioBox Delphi Win32

Zitat von Anja87:
Zur Frage:
Wir wollten es kurz und schmerzlos fragen.
Ja, aber damit konnte keiner das Problem einsehen Jetzt ists schon viel besser.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Anja87

Registriert seit: 9. Feb 2005
Ort: Prenzlau
9 Beiträge
 
#7

Re: Sekantenverfahren programmieren

  Alt 10. Feb 2005, 08:03
Moin Leute!
Die ersten Fragen haben sich erledigt und geklärt aber hier schon die nächste!:
Kennt einer von euch Abbruchbedingungen für das Sekantenverfahren (und weiß auch noch wie man die programmieren kann?)
  Mit Zitat antworten Zitat
Anja87

Registriert seit: 9. Feb 2005
Ort: Prenzlau
9 Beiträge
 
#8

Re: Sekantenverfahren programmieren

  Alt 10. Feb 2005, 09:59
Wir haben mittlerweile (antwortet ja keiner... ) einige Sachen hingekriegt, sind im Moment aber dabei, die erste Ableitung auf Nullstellen zu prüfen. (Ein Abbruchkriterium.)
Die Schleife soll einen bestimmten Bereich überprüfen, ob in diesem Intervall die Funktion irgendwann mal 0 wird (z.B. ob 3x^2 +5=0 möglich ist)

Das Problem ist folgendes: Bei einer Schleife kann man (?) doch nur Integer-Werte durchlaufen lassen, wie kann man mit kleineren Abständen prüfen lassen (z.B. 0,1)???

Bitte meldet euch
  Mit Zitat antworten Zitat
stefangeorg

Registriert seit: 30. Mär 2004
Ort: Hannover
30 Beiträge
 
Delphi 7 Professional
 
#9

Re: Sekantenverfahren programmieren

  Alt 10. Feb 2005, 10:08
Servus,

dann benutzt einfach: Schrittweite := Schleifenvariable / 10

mfg

Georg Härting
Georg
  Mit Zitat antworten Zitat
Anja87

Registriert seit: 9. Feb 2005
Ort: Prenzlau
9 Beiträge
 
#10

Re: Sekantenverfahren programmieren

  Alt 10. Feb 2005, 10:34
Danke davör, sind noch am ausprobieren, köönt aber klappen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 17:16 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf