Problem: Generate Fibonacci numbers whose values are less than the given number n. Use the function name 'fibon'. For example fibon(10) should give output as 1 2 3 5 8
Solution: In this function we will generate the fibonacci numbers first by taking the basic numbers in the fibonacci numbers a, b as 0,1 respectively. we will add them to generate the fibonacci numbers using the loop. while we will use the loop the condition is that the value of the sum(generated Fibonacci number) is less than the given number n. But it can be found that for the last iteration the value of the fibonacci number will be less than the given number n and thus the loop goes on and a fibonacci number is generated which is greater than the given number n. Thus finally we will trim off the last number from our vector. You can understand this easily by seeing the program.
Program is as follows:
function fib = fibon(n) %this function generates fibonacci numbers %whose values are less than the given number n %For example the fibon(10) = 1 2 3 5 8 %Create the starting number for the fibonacci sequence a = 0; %Basic number#2 b = 1; %Create an empty vector fib to store the values of the fibonacci numbers %generated fib = []; %Variable to get the fibonacci number after adding a+b sum = 0; %while loop to check whether the number is less than the given number n while sum<n sum = a+b; fib = [fib sum]; a = b; b = sum; end %As we have used while loop we get an additional number greater than the %number n and thus we will eliminate the last number to get the desired %output. fib = fib(1:length(fib)-1);
You can get teh matlab file of the above script from here: fibon.m
You can get the pdf version of this post with more detailed explanation from here: fibon.pdf
code formatting using hilite.me
Run the program and comment below the output you are getting for a given input.
Keywords: Fibonacci numbers, Matlab function