www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Differenzialrechnung" - Bisektionsverfahren
Bisektionsverfahren < Differenzialrechnung < Analysis < Oberstufe < Schule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Differenzialrechnung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Bisektionsverfahren: Programierung
Status: (Frage) beantwortet Status 
Datum: 19:03 Mo 13.05.2013
Autor: PeterSteiner

ich versuche Krampfhaft das bisektionsverfahren in Matlab zu programieren mittels einer vorschleife, jedoch ohne erfolg.
Da ich auf dem Gebiet noch kine erfahrung habe benötige ich hilfe oder hat vielleicht jemanhd schon ein fertig geschriebens programm in matlab dafür?

        
Bezug
Bisektionsverfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 19:33 Mo 13.05.2013
Autor: leduart

Hallo
Zeig doch mal deine Versuche,oder wenigstens ein Flussdiagramm!
Gruß  leduart

Bezug
                
Bezug
Bisektionsverfahren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:06 Mo 13.05.2013
Autor: PeterSteiner

Also mal die schritte:

F(a)F(b)<0
dann c= a+b/2

f(c) < 10^-8

ende sonst nchmal die schleife

hab kein plan wie das zu programieren ist.

Bezug
                        
Bezug
Bisektionsverfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 21:33 Mo 13.05.2013
Autor: Al-Chwarizmi


> Also mal die schritte:
>  
> F(a)F(b)<0
>  dann c= a+b/2     [haee]

du meinst vermutlich  c = [mm] \frac{a+b}{2} [/mm]

damit dies richtig rüberkommt, musst du aber eben
den Bruchstrich verwenden oder richtig Klammern setzen
  

> f(c) < 10^-8
>  
> ende sonst nchmal die schleife
>
> hab kein plan wie das zu programieren ist.



Hallo Peter,

um sowas wirklich programmieren zu können,
muss man sich den ganzen Vorgang schon genauer
überlegen und eben seine einzelnen Schritte planen.
Vermutlich soll eine Funktion f vorausgesetzt sein,
welche über einem Intervall [a...b] mit a<b definiert
und stetig ist und die Voraussetzung f(a)*f(b)<0 erfüllt.
Die Werte von a und b und die Formel zur Berechnung
von Funktionswerten f(x) aus gegebenen x-Werten
müssen dem Programm als Eingabewerte vorliegen.
Nun müsste folgender Prozess mehrmals wiederholt
werden (bis ein gewisses Abbruchkriterium erfüllt
ist):
1.) Berechne den Mittelwert c von a und b.
2.) Berechne den Funktionswert f(c).
3.) Wird (zufällig) exakt f(c)=0, dann ist c eine
     Nullstelle, und wir sind am Ziel und könnten
     ev. die Schleife (in Matlab mittels "break")
     abbrechen.
     Andernfalls:
4.) Setze [mm] b_{neu}:=c [/mm] , falls f(a)*f(c)<0  oder aber
     [mm] a_{neu}:=c [/mm] , falls f(c)*f(b)<0

Anstatt einer FOR - Schleife würde ich aber eher eine
WHILE - Schleife empfehlen, da die Anzahl der
notwendigen Schritte nicht im Voraus bekannt ist.

Als While-Bedingung kannst du dann etwa nehmen:

While [mm] ABS(f(c))>10^{-8} [/mm] .....  Dazu müsste man aber
dem c gleich schon von Anfang an einen Wert zuordnen;
man könnte z.B. am Start des Programms c:=a setzen.

(wie die Syntax in Matlab genau aussieht, weiß ich
nicht, da ich nicht mit Matlab arbeite).

LG ,   Al-Chw.










Bezug
                                
Bezug
Bisektionsverfahren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 21:39 Mo 13.05.2013
Autor: PeterSteiner

ok. ich habe dein ausführung verstanden nur bin ich nicht in der Lage eine solche schleife zu programieren:(

Bezug
                                        
Bezug
Bisektionsverfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 22:03 Mo 13.05.2013
Autor: Al-Chwarizmi

Naja, allzu schwierig wäre es natürlich nicht, dazu
im Netz mögliche Wege zu finden.

Google halt mal z.B.

Matlab Bisektionsmethode

Matlab Intervallhalbierung

oder so ...

Besser fände ich es allerdings noch, wenn du dann
konkrete Fragen wieder hier vorbringen würdest.

LG ,

Al-Chw.



Bezug
                                                
Bezug
Bisektionsverfahren: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 10:13 Di 14.05.2013
Autor: Al-Chwarizmi

Ich habe mal ein wenig gegraben nach einem eigenen
Progrämmchen zu diesem Thema. Allerdings ist es
in Pascal geschrieben. Das Wesentliche daraus:


PROGRAM Bisektion;

const epsilon = 1E-12;

var   a, b, c, fa, fb, fc: real;

function f(x:real):real;
  begin
   f:={Funktionsterm}
  end;
    
{------------------------------------}

BEGIN
a:=1;b:=5;   {vorgegebene Intervallgrenzen}
c:=a;
while abs(f(c)) > epsilon do
  begin
   fa:=f(a);
   fb:=f(b);
   fc:=f(c);  
   if fc*fa < 0 then b:=c else a:=c;
   c:=(a+b)/2;
  end;
writeln(c,f(c))
END.

LG ,   Al-Chw.

Bezug
        
Bezug
Bisektionsverfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 21:03 Mo 13.05.2013
Autor: Al-Chwarizmi


> ich versuche Krampfhaft das bisektionsverfahren in Matlab
> zu programieren mittels einer vorschleife, jedoch ohne
> erfolg.

vorschleife ???

du meinst wohl eine FOR - Schleife !

Bezug
                
Bezug
Bisektionsverfahren: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:05 Di 14.05.2013
Autor: PeterSteiner

ich habs mit biegen und brechen doch irgendwie hinbekommen :) jetzt wüsste ich gerne wie ich den absolouten Fehler berechnen kann?

Auch ganz allgmein

Bezug
                        
Bezug
Bisektionsverfahren: Antwort
Status: (Antwort) fertig Status 
Datum: 16:41 Di 14.05.2013
Autor: Event_Horizon

Hallo!

Die Schleife läuft so lange durch, bis die Länge des Intervalls einen gewissen Wert nicht unterschreitet. Diesen Wert findest du bei Al-Chwarizmi's Beitrag  z.B. unter dem Variablennamen "epsilon". Das ist also die maximale Diffenz zwischen dem ermittelten und dem realen Wert. Damit kann der Fehler nicht bestimmt werden, sondern er wird vorgegeben!

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Differenzialrechnung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]