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 "Matlab" - Matlab
Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matlab: Dreitermrekursion
Status: (Frage) beantwortet Status 
Datum: 15:45 Fr 26.01.2007
Autor: eps

Aufgabe
Implementieren Sie die Dreitermrekursion mit dem algorithmus von miller. vergleichen sie diesen ansatz mit ihrem programm von blatt 6 und der geschlossenen lösung anhand der unten angegebenen iterationen.
[mm] R_{k+1}=-2R_{k}+3R_{k-1} [/mm]   mit [mm] R_{0}=1 [/mm] und [mm] R_{-1}=1 [/mm]
[mm] R_{k+1}=-4R_{k}-3R_{k-1} [/mm]    mit [mm] R_{0}=-0.1 [/mm] und [mm] R_{-1}=0.1 [/mm]
Geben Sie dazu die ersten 30 Iterationen für alle drei verfahren in einer Tabelle an.

also etwas habe ich schon, es funktioniert aber leider nicht:

function f= MILLER(x0,K,n,a,b)

y(n)=1;
y(n+1)=0;

for k=n:-1:0
    y(k-1)=(a*y(k)+y(k+1))/b;
end

f=x0*y(K)/y(0);

return


folgende fehlermeldung bekomme ich:

>> MILLER(1,30,100,2,3)
??? Attempted to access y(0); index must be a positive integer or logical.

Error in ==> MILLER at 7
    y(k-1)=-(-a*y(k)-y(k+1))/b;


ich verstehe es nicht und brauch unbedingt hilfe!!!!!!!  danke schonmal....

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

        
Bezug
Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 16:55 Fr 26.01.2007
Autor: Martin243

Hallo,

das Problem ist simpel: In Matlab fangen die Arrays mit dem Index 1 an. Also musst du die Arrays so anlegen, dass alle Indizes um 1 höher sind.


Gruß
Martin

Bezug
                
Bezug
Matlab: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:35 Fr 26.01.2007
Autor: eps

Das heisst also......

function f = Miller(x0,K,n,a,b)

y(n)=1;
y(n+1)=0;

for k=n:-1:0

    
    y(k)= (a*y(k+1)+y(k+2))/b;
end

f=x0*y(K)/ y(1);

return  


dann bekomm ich diese fehlermeldung:

>> Miller(-0.1, 30, 98, 4, -3)
??? Attempted to access y(100); index out of bounds because numel(y)=99.

Error in ==> Miller at 8
    y(k)= (a*y(k+1)+y(k+2))/b;


muss ich statt y(n) jetzt y(n+1) schreiben?
und statt y(n+1) jetzt y(n+2) schreiben?
ich hab einiges ausprobiert, bekomm aber immer ne fehlermeldung ähnlich der oben.

sorry.... ich kenn mich nur ganz wenig mit matlab aus und hab da so meine probleme, brauche aber unbedingt volle punktzahl:-(


Bezug
                        
Bezug
Matlab: Antwort
Status: (Antwort) fertig Status 
Datum: 18:54 Fr 26.01.2007
Autor: ullim

Hi,

> Das heisst also......
>  
> function f = Miller(x0,K,n,a,b)
>
> y(n)=1;
> y(n+1)=0;
>
> for k=n:-1:0
>      

In der FOR Schleife darf der Index auch nur bis 1 und nicht bis 0 laufen, dann läuft das Programm korrekt und endet mit 0.1 als Ergebnis.


mfg ullim

Bezug
                                
Bezug
Matlab: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 19:30 Fr 26.01.2007
Autor: eps

....vielen Dank....!

und das ist korrekt????

>> Miller(-0.1, 30, 100, 4, -3)

ans =

    0.1000

ich dachte, ich muss viiiieele werte rausbekommen und als graph darstellen....
aber vielleicht ist das auch der teil "...Blatt 6..."
auf jeden Fall danke ich recht herzlich für die schnelle hilfe:)

Bezug
                                        
Bezug
Matlab: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 15:40 Sa 27.01.2007
Autor: eps

>> Miller(1, 30, 100, 2, 3)
Miller:0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75        0.75     0.74999     0.75004     0.74989     0.75034     0.74897     0.75309     0.74074     0.77778     0.66667

ans =

     1

>> Miller(-0.1, 30, 100, 4, -3)
Miller:1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5         1.5        -1.5      1.4999     -1.4998      1.4993     -1.4979      1.4938     -1.4815      1.4444     -1.3333

ans =

    0.1000

stimmt das? die graphen sehen etwas seltsam aus......bitte um antwort und danke schonmal:)

Bezug
                                                
Bezug
Matlab: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:20 Mo 29.01.2007
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


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