"В лоб"...
function F = fib1(n)
F(1) = 1;
F(2) = 1;
for i = 3:n
F(i) = F(i-1)+F(i-2);
end
с предварительным выделением памяти, быстрее fib1
function F = fib2(n)
F = ones(1,n);
for i = 3:n
F(i) = F(i-1)+F(i-2);
end
рекурсивный, медленный, но оригинальный
function F = fib3(n)
if n == 1,
F = 1;
return;
elseif n == 2
F = [1 1];
else
f = fib3(n-1);
F = [f f(end)+f(end-1)];
end
и самый быстрый, с использованием функции filter
function F = fib4(n)
x = [1 zeros(1,n-1)];
a = [1 -1 -1];
b = 1;
F = filter(b, a, x);
Комментарии
comments powered by Disqus