Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

fibonacci

설명

예제

fibonacci(n)nth 피보나치 수를 반환합니다.

예제

피보나치 수 구하기

fibonacci를 사용하여 여섯 번째 피보나치 수를 구합니다.

fibonacci(6)
ans =
     8

처음 10개의 피보나치 수를 구합니다.

n = 1:10;
fibonacci(n)
ans =
     1     1     2     3     5     8    13    21    34    55

황금비를 근사하는 피보나치 수열

연속된 피보나치 수의 비는 황금비 1.61803...에 수렴합니다. 처음 10개의 피보나치 수에 대해 황금비를 기준으로 이 비를 플로팅하여 수렴을 확인합니다.

n = 2:10;
ratio = fibonacci(n)./fibonacci(n-1);

plot(n,ratio,'--o')
hold on

line(xlim,[1.618 1.618])
hold off

Figure contains an axes object. The axes object contains 2 objects of type line.

기호적으로 피보나치 수 표현하기

피보나치 수를 기호 입력값으로 표현하여 기호 계산에서 사용합니다. fibonacci는 입력값을 반환합니다.

n번째 피보나치 수를 표현합니다.

syms n
fibonacci(n)
ans =
fibonacci(n)

큰 피보나치 수 구하기

sym을 사용해 입력값을 기호적으로 지정하여 큰 피보나치 수를 구합니다. 기호 입력값은 double형 출력값 대신 정확한 기호 출력값을 반환합니다. double 함수를 사용하여 기호 숫자를 double형으로 변환합니다.

300번째 피보나치 수를 구합니다.

num = sym(300);
fib300 = fibonacci(num)
fib300 =
222232244629420445529739893461909967206666939096499764990979600

fib300을 double형으로 변환합니다. 결과는 부동소수점 근삿값입니다.

double(fib300)
ans =
   2.2223e+62

기호 및 double형 연산방식에 대한 자세한 내용은 수치 연산방식 또는 기호 연산방식 선택하기 항목을 참조하십시오.

피보나치 수를 사용한 황금 나선

피보나치 수는 피보나치 나선을 플로팅하여 시각화되는 경우가 많습니다. 피보나치 나선은 황금 나선을 근사합니다.

처음 8개의 피보나치 수에 대해 황금 나선을 근사합니다. switch 문을 사용하여 플롯의 오른쪽, 위, 왼쪽, 아래 정사각형에 대해 네 개의 case를 정의합니다. eqnArc의 정사각형을 통해 호의 방정식을 정의하여 나선을 형성합니다. rectanglefimplicit를 사용하여 각각 정사각형과 호를 그립니다.

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

입력 인수

모두 축소

입력값으로, 숫자, 벡터, 행렬, 다차원 배열 또는 기호 숫자, 기호 변수, 기호 벡터, 기호 행렬, 기호 다차원 배열, 기호 함수, 기호 표현식으로 지정됩니다.

세부 정보

모두 축소

피보나치 수

피보나치 수는 수열 0, 1, 1, 2, 3, 5, 8, 13, 21…입니다.

처음 2개의 수가 0과 1로 주어졌을 때, nth 피보나치 수는 다음과 같습니다.

Fn = Fn–1 + Fn–2.

이 공식을 반복적으로 적용하면 피보나치 수가 생성됩니다.

버전 내역

R2017a에 개발됨