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 "Interpolation und Approximation" - Sekantenverfahren Matlab
Sekantenverfahren Matlab < Interpol.+Approx. < Numerik < Hochschule < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Sekantenverfahren Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:24 Mo 20.12.2010
Autor: Marius6d

Aufgabe
Formulieren und benutzen Sie das Sekantenverfahren zur Lösung von lnx = 2-x mit einer Genauigkeit von [mm] 10^{-10}. [/mm]

Also ich soll das Ganze in Matlab machen und mir ein Skript basteln, dasselbe habe ich für Newtonverfahren und für die Fixpunktgleichung gemacht, dort hatte ich auch keine Probleme, aber wie mache ich das für das Sekantenverfahren, hier brauche ich ja 2 Startwerte. Im Anhang habe ich mein M-File. Wie muss ich das Script für 2 Startwerte ändern?
[a]Datei-Anhang
[a]Datei-Anhang

Dateianhänge:
Anhang Nr. 1 (Typ: m) [nicht öffentlich]
Anhang Nr. 2 (Typ: m) [nicht öffentlich]
        
Bezug
Sekantenverfahren Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 19:48 Mo 20.12.2010
Autor: leduart

Hallo
auch matlab versteht 2 werte, x1 und x2.
schreib einfach die ersten 3  Schritte auf, wie du es selbst ohne Programm lösen würdest. erst dann fang an!
Gruss leduart


Bezug
                
Bezug
Sekantenverfahren Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:56 Mo 20.12.2010
Autor: Marius6d

Hmm, das habe ich auch probiert mit x1 und x2, im Anhang nochmal das neue File, Matlab meldet aber immer "??? Attempted to access x(0); index must be a positive integer or logical.

Error in ==> Sekantenverfahren1 at 1
x(0) = 2"

Was mache ich falsch?

Dateianhänge:
Anhang Nr. 1 (Typ: m) [nicht öffentlich]
Bezug
                        
Bezug
Sekantenverfahren Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 21:55 Mo 20.12.2010
Autor: max3000

Matlab fängt beim Zählen eines Indexes von einem Vektor bei 1 an.
Nicht verwechseln mit Arrays bei anderen Programmiersprachen wie C/C++, Java oder C#. Da gehts natürlich bei 0 los.
Ich hab mir dein m-File zwar nicht angeschaut, aber schreibe überall, wo du auf ein Vektorelement x(i) zugreifst, einfach x(i+1).

Bezug
                                
Bezug
Sekantenverfahren Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 22:05 Mo 20.12.2010
Autor: Marius6d

Hmm, vielen Dank für deine Antwort, aber ich weiss nicht genau wie ich das dnen amchen soll, es kommen schon x(i) und x(i+1) vor, jetzt kann ich ja nicht noch alle x(i) durch x(i+1) ersetzen oder?

Bezug
                                        
Bezug
Sekantenverfahren Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 23:34 Mo 20.12.2010
Autor: leduart

Hallo
1. du brauchst immer nur 2, zwischenzeitlich 3 Punkte, warum bewahrst du alle erledigten Punkte in nem endlosen array deinen x(i)?
wenn das funktioniert ist es auf jeden fall langsam und füllt unnötig Speicher.
2. in matlab sollte man nie i als laufvariable nehmen, i ist von alleine die imaginäre Einheit. die kann man zwar umdefinieren, wenn man aber später ne DSammlung von m- files hat und auch mal was komplexes will führt das zum chaos
3. alle arrays fangen bei 1 an, nicht bei 0.
4.  k=1:inf
inf mit kleinem i
5. eigentlich muss man beim Sekantenverfahren doch immer entscheiden,mit welchem der alten Werte man weiter macht. du willst doch immer ein x mit f(x)>0 und eines mit f(x)<0
also Struktue
a=1
e=2
toi=1
while toi>...
Sekante durch a,f(a)<0 und e,f(e)>0
Schnitt mit x Achse ergibt c,
Entscheidung f(c)>0 dann e=c sonsta=c
toi=abs(a-e)
k=k+1
end
Ausgabe k Zahl der Schritte
e Nullstelle
jetz noch was schöner schreiben.
Gruss leduart



Bezug
                                        
Bezug
Sekantenverfahren Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 23:37 Mo 20.12.2010
Autor: leduart

Hallo
statt x(0) schreibx(1) statt x(1) x(2) am Anfang.
Dann fang mit k=2 an
lies auch den anderen beitrag von mir
Gruss leduart


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Interpolation und Approximation"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


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