Числа Фибоначчи
fibonacci(
возвращает nth Число Фибоначчи.n
)
Найдите шестое Число Фибоначчи при помощи fibonacci
.
fibonacci(6)
ans = 8
Найдите первые 10 Чисел Фибоначчи.
n = 1:10; fibonacci(n)
ans = 1 1 2 3 5 8 13 21 34 55
Отношение последовательных Чисел Фибоначчи сходится к золотому сечению . Покажите эту сходимость путем графического вывода этого отношения против золотого сечения для первых 10 Чисел Фибоначчи.
n = 2:10; ratio = fibonacci(n)./fibonacci(n-1); plot(n,ratio,'--o') hold on line(xlim,[1.618 1.618]) hold off
Используйте Числа Фибоначчи в символьных вычислениях путем представления их символьным входом. fibonacci
возвращает вход.
Представляйте nth Число Фибоначчи.
syms n fibonacci(n)
ans = fibonacci(n)
Найдите большие Числа Фибоначчи путем определения входа символически с помощью sym
. Символьный вход возвращает точный символьный выходной параметр вместо двойного выхода. Преобразуйте символьные числа, чтобы удвоиться при помощи double
функция.
Найдите 300th Число Фибоначчи.
num = sym(300); fib300 = fibonacci(num)
fib300 = 222232244629420445529739893461909967206666939096499764990979600
Преобразуйте fib300
удвоиться. Результатом является приближение с плавающей точкой.
double(fib300)
ans = 2.2223e+62
Для получения дополнительной информации о символьной и двойной арифметике смотрите, Выбирают Numeric or Symbolic Arithmetic.
Числа Фибоначчи обычно визуализируются путем графического вывода спирали Фибоначчи. Спираль Фибоначчи аппроксимирует золотую спираль.
Аппроксимируйте золотую спираль для первых 8 Чисел Фибоначчи. Задайте эти четыре случая для права, верхней части, оставленной, и нижние квадраты в графике при помощи switch
оператор. Сформируйте спираль путем определения уравнений дуг через квадраты в eqnArc
. Чертите квадраты и дуги при помощи rectangle
и fimplicit
соответственно.
x = 0; y = 1; syms v u axis off hold on for n = 1:8 a = fibonacci(n); % Define squares and arcs switch mod(n,4) case 0 y = y - fibonacci(n-2); x = x - a; eqnArc = (u-(x+a))^2 + (v-y)^2 == a^2; case 1 y = y - a; eqnArc = (u-(x+a))^2 + (v-(y+a))^2 == a^2; case 2 x = x + fibonacci(n-1); eqnArc = (u-x)^2 + (v-(y+a))^2 == a^2; case 3 x = x - fibonacci(n-2); y = y + fibonacci(n-1); eqnArc = (u-x)^2 + (v-y)^2 == a^2; end % Draw square pos = [x y a a]; rectangle('Position', pos) % Add Fibonacci number xText = (x+x+a)/2; yText = (y+y+a)/2; text(xText, yText, num2str(a)) % Draw arc interval = [x x+a y y+a]; fimplicit(eqnArc, interval, 'b') end