-4

その式からフィボナッチ数列を求めたい:

1+sqrt(5)/2).^n-(1-sqrt(5)/2).^n)/sqrt(5);

fprintfではなくdisp関数で;しかし、できませんでした。以下のフォームにdispでどのように書くことができますか: f(0)= 0 f(1)= 1 f(2)= 1 f(3)= 2

4

1 に答える 1

2
  • まず、フィボナッチ数列を計算するときにコードにエラーがありました。括弧で囲み1+sqrt(5)1-sqrt(5)
  • 次に、コマンド ウィンドウに表示されるように;、式の末尾を削除できます。f = ...f

n = 1:10;
f=(((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5)

そのような

f =

    1.0000    1.0000    2.0000    3.0000    5.0000    8.0000   13.0000   21.0000   34.0000

または以下のような表示結果

for n = 1:10
  f=(((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5);
  disp(['F(',num2str(n-1),')=',num2str(f)]);
end

そのような

F(0)=1
F(1)=1
F(2)=2
F(3)=3
F(4)=5
F(5)=8
F(6)=13
F(7)=21
F(8)=34
F(9)=55

アップデート

申請したい場合はarrayfun、以下のコードを使用できます

a =input('n:');
n = 1:a;
fdisp = @(n) disp(['F(',num2str(n-1),')=',num2str((((1+sqrt(5))/2).^n-((1-sqrt(5))/2).^n)/sqrt(5))]);

arrayfun(fdisp,n)
于 2020-02-24T13:21:53.860 に答える