отображать последовательность Фибоначчи с помощью disp_function в Matlab
Я хочу получить последовательность Фибоначчи из ее формулы:
1+sqrt(5)/2).^n-(1-sqrt(5)/2).^n)/sqrt(5);
с помощью функции disp, а не fprintf; но я не мог. как можно написать это с помощью disp в форму ниже:f(0)= 0
f(1)= 1
f(2)= 1
f(3)= 2
1 ответ
- Прежде всего, у вас были ошибки в вашем коде при вычислении последовательности Фибоначчи, где скобки должны окружать
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)