rekursive Folge in Matlab < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Folgendes soll gelöst werden:
Gegeben ist die Folge mit
[mm] b_{1}>\wurzel{a} [/mm]
[mm] b_{n+1} [/mm] = [mm] \bruch{1}{2}(b_{n}+\bruch{a}{b_{n}})
[/mm]
[mm] a\ge0 [/mm] beliebig wählbar.
Es soll eine Funktion aufgestellt werden, die für das Argument n einen Vektor der ersten n Folgenglieder ausgibt. a soll beliebig gewählt werden. Zudem sollen die Werte geplottet und ein konstante Fkt. als 'Grenzwert' in das Diagramm gezeichnet werden...
Meein Vorschlag:
function y=function(n,b1)
b=[sqrt(b1)]; %Startwert
for k=1:n
b(k+1)=0.5*(b(k)+(b1/b(k)));
end
plot(b,'--')
hold on
x=[1:n];
y=ones(n);
z=y(:,1);
plot(b,'r','MarkerSize',12)
hold off |
Kann mir hier jemand helfen? Wäre echt super - mein Problem liegt bei dem [mm] b_{1}>\wurzel{a}.
[/mm]
Dadurch, dass ich in Matlab b=[sqrt(b1)] schreibe, sind alle Folgenglieder gleich groß und der Graph konstant =/
Danke falls das jemand kann!? Besten Dank,
vg
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 17:34 Do 10.11.2011 | Autor: | meili |
Hallo,
> Folgendes soll gelöst werden:
>
> Gegeben ist die Folge mit
> [mm]b_{1}>\wurzel{a}[/mm]
> [mm]b_{n+1}[/mm] = [mm]\bruch{1}{2}(b_{n}+\bruch{a}{b_{n}})[/mm]
> [mm]a\ge0[/mm] beliebig wählbar.
> Es soll eine Funktion aufgestellt werden, die für das
> Argument n einen Vektor der ersten n Folgenglieder ausgibt.
> a soll beliebig gewählt werden. Zudem sollen die Werte
> geplottet und ein konstante Fkt. als 'Grenzwert' in das
> Diagramm gezeichnet werden...
>
> Meein Vorschlag:
>
>
> function y=function(n,b1)
> b=[sqrt(b1)]; %Startwert
> for k=1:n
> b(k+1)=0.5*(b(k)+(b1/b(k)));
> end
> plot(b,'--')
> hold on
> x=[1:n];
> y=ones(n);
> z=y(:,1);
> plot(b,'r','MarkerSize',12)
> hold off
>
> Kann mir hier jemand helfen? Wäre echt super - mein
> Problem liegt bei dem [mm]b_{1}>\wurzel{a}.[/mm]
> Dadurch, dass ich in Matlab b=[sqrt(b1)] schreibe, sind
> alle Folgenglieder gleich groß und der Graph konstant =/
Das Problem ist, dass Dein Programm nicht [mm] $b_1 [/mm] > [mm] \Wurzel{a}$ [/mm] erfüllt,
sondern mit [mm] $b_1 [/mm] = [mm] \Wurzel{a}$ [/mm] startet.
Entweder Du setzst b=[sqrt(b1)] +1, schränkst Dich aber unnötig ein im Startwert,
oder Du übergibst der Funktion auch a
z.B. function y=function(n,b1,a)
und überprüfst dann b1 > [sqrt(a)].
Wenn nicht erfüllt, lässt Du die Funktion mit Fehlermeldudng enden,
andernfalls durchlaufen.
>
> Danke falls das jemand kann!? Besten Dank,
> vg
Gruß
meili
|
|
|
|