Числа Фибоначчи
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
Для получения дополнительной информации о символьной и двойной арифметике см. «Выбор числовой или символьной арифметики».
Числа Фибоначчи обычно визуализируются путем построения графика спирали Фибоначчи. Спираль Фибоначчи аппроксимирует золотую спираль.
Аппроксимируйте золотую спираль для первых 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