Fibonacci‐Reihe < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Die Elemente der Fibonacci‐Reihe können auch durch die folgende Formel berechnet werden:
[mm] n(k)=\bruch{F^{k}-(1-F)^k}{\wurzel{5}} [/mm] mit [mm] F=\bruch{1+\wurzel{5}}{2}
[/mm]
Berechnen Sie nun ohne Schleife das 10. bis 20. Element mit elementweisen Vektoroperationen. |
Meine Lösung:
function [z] = ausgabe( )
% Fibonacci-Folge direkt
x = 12:20;
F = (1+sqrt(5))/2;
z = (F.^x-(1-F).^x)/sqrt(5); % Elementweise Operation !
round(z) % Unterdrückung der Nachkommastellen
end
Mein Problem MATLAB gibt das Ergebnis folgender maßen aus:
ans =
1.0e+003 *
0.1440 0.2330 0.3770 0.6100 0.9870 1.5970 2.5840 4.1810 6.7650
Es sollte aber eher so aussehen:
ans =
144 233 377 610 987 1597 2584 4181 6765
Was muss ich verändern damit MATLAB das Ergebnis so ausgibt?
Mit freundlichen Grüßen
J.DEan
|
|
|
|
> Die Elemente der Fibonacci‐Reihe
gemeint ist nicht eine "Reihe" im mathematischen Sinne,
sondern die Glieder der Fibonacci-Folge !
> können auch durch die
> folgende Formel berechnet werden:
>
> [mm]n(k)=\bruch{F^{k}-(1-F)^k}{\wurzel{5}}[/mm] mit
> [mm]F=\bruch{1+\wurzel{5}}{2}[/mm]
>
> Berechnen Sie nun ohne Schleife das 10. bis 20. Element mit
> elementweisen Vektoroperationen.
> Meine Lösung:
>
> function [z] = ausgabe( )
> % Fibonacci-Folge direkt
>
> x = 12:20;
> F = (1+sqrt(5))/2;
> z = (F.^x-(1-F).^x)/sqrt(5); % Elementweise Operation
> !
> round(z) %
> Unterdrückung der Nachkommastellen
>
> end
Hallo,
kannst du klar machen, was genau hier mit "Vektoren"
und mit "elementweisen Vektoroperationen" gemeint
sein soll ?
Und: im obigen Programmausschnitt kommt doch
durchaus auch eine Schleifenkonstruktion vor ...
LG , Al-Chw.
|
|
|
|
|
Aufgabe | Hey, also das ist die Original Aufgabenstellung zur Verdeutlichung der Link mit der Aufgabe:
http://books.google.de/books?id=b2WjVp_Q9AoC&pg=PA31&lpg=PA31&dq=Aufgabe+matlab+fibonacci+reihe&source=bl&ots=N5dl2eXgV-&sig=Y-mwXDo48lI5UO59dcAc_rxcUS0&hl=de&sa=X&ei=aNpzUdvbMoqJtQbj2oCIBw&ved=0CE4Q6AEwBA#v=onepage&q&f=false |
Vielleicht habe ich meine Frage nicht klar formuliert. Also das Programm funktioniert ja nur die Ausgabe des Ergebnisses ist nicht so ganz korrekt.
function [z] = ausgabe( )
% Fibonacci-Folge direkt
x = 12:20;
F = (1+sqrt(5))/2;
z = (F.^x-(1-F).^x)/sqrt(5);
round(z)
end
So sieht es aus wenn ich die Funktion bei MATLAB aufrufe:
ans =
1.0e+003 *
0.1440 0.2330 0.3770 0.6100 0.9870 1.5970 2.5840 4.1810 6.7650
Und in der Form sollte es sein:
ans =
144 233 377 610 987 1597 2584 4181 6765
Der Fehler liegt höchstwahrscheinlich an der Rundung des Ergebnisses ... Den Befehl [round] hatte ich deswegen ja eingebaut, anscheinend aber nicht richtig.
Weiß jemand wie ich das so ändern kann, dass er mir das Ergebnis in der Form ausgibt:
ans =
144 233 377 610 987 1597 2584 4181 6765
Mit freundlichen Grüßen
J.DEan
|
|
|
|
|
Hallo JamesDean,
> Hey, also das ist die Original Aufgabenstellung zur
> Verdeutlichung der Link mit der Aufgabe:
>
> http://books.google.de/books?id=b2WjVp_Q9AoC&pg=PA31&lpg=PA31&dq=Aufgabe+matlab+fibonacci+reihe&source=bl&ots=N5dl2eXgV-&sig=Y-mwXDo48lI5UO59dcAc_rxcUS0&hl=de&sa=X&ei=aNpzUdvbMoqJtQbj2oCIBw&ved=0CE4Q6AEwBA#v=onepage&q&f=false
> Vielleicht habe ich meine Frage nicht klar formuliert.
> Also das Programm funktioniert ja nur die Ausgabe des
> Ergebnisses ist nicht so ganz korrekt.
>
> function [z] = ausgabe( )
> % Fibonacci-Folge direkt
>
> x = 12:20;
> F = (1+sqrt(5))/2;
> z = (F.^x-(1-F).^x)/sqrt(5);
> round(z)
>
> end
>
> So sieht es aus wenn ich die Funktion bei MATLAB aufrufe:
>
> ans =
>
> 1.0e+003 *
>
> 0.1440 0.2330 0.3770 0.6100 0.9870 1.5970
> 2.5840 4.1810 6.7650
>
>
>
>
> Und in der Form sollte es sein:
>
> ans =
>
> 144 233 377 610 987 1597 2584 4181 6765
>
>
> Der Fehler liegt höchstwahrscheinlich an der Rundung des
> Ergebnisses ... Den Befehl [round] hatte ich deswegen ja
> eingebaut, anscheinend aber nicht richtig.
>
>
> Weiß jemand wie ich das so ändern kann, dass er mir das
> Ergebnis in der Form ausgibt:
>
>
> ans =
>
> 144 233 377 610 987 1597 2584 4181 6765
>
Bei mir funktioniert das Progammstück so.
Auch die Ausgabe ist so wie gewünscht.
1: |
| 2: | function [z]=ausgabe()
| 3: | x=12:20;
| 4: | F=(1+sqrt(5))/2;
| 5: | z=(F.^x-(1-F).^x)/sqrt(5);
| 6: | z=round(z);
| 7: | end
|
>
>
> Mit freundlichen Grüßen
>
>
> J.DEan
Gruss
MathePower
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:04 So 21.04.2013 | Autor: | JamesDean |
alles klar danke für deine Hilfe.
Mit freundlichen Grüßen
J.Dean
|
|
|
|
|
Hallo J.DEan ,
der angegebene Link führt mich zu keinem Ziel.
Und den angegebenen Auftrag
"Berechnen Sie nun ohne Schleife das 10. bis 20.
Element mit elementweisen Vektoroperationen."
verstehe ich nach wie vor nicht.
Schönen Abend.
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 22:02 So 21.04.2013 | Autor: | JamesDean |
Hey Al-Chwarizmi,
aus Verständnisgründen hätte ich vielleicht besser die komplette Aufgabenstellung mit aufgeschreiben sollen, sorry.
Trotzdem Danke für deine Bemühungen.
Mit freundlichen Grüßen
J.DEan
|
|
|
|