fibonacci
피보나치 수
설명
예제
피보나치 수 구하기
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
는 입력값을 반환합니다.
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
의 정사각형을 통해 호의 방정식을 정의하여 나선을 형성합니다. 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
입력 인수
세부 정보
버전 내역
R2017a에 개발됨