Code covered by the BSD License

### Highlights from Fibonacci

2.91667
2.9 | 15 ratings Rate this file 4 Downloads (last 30 days) File Size: 1.36 KB File ID: #22421

# Fibonacci

### Gholamreza (Shahab) Anbarjafari (view profile)

The following function generate the fibinacci series up to the sequence number m.

File Information
Description

The following function generate the fibinacci series up to the sequence number m which should be a positive integer, it may takes several minutes for big numbers of m, for a typical working station m>20 is taking considerable amount of time to be processed.

{hasan.demirel, shahab.jafari}@emu.edu.tr
(c) Demirel and Anbarjafari -2008

MATLAB release MATLAB 7.5 (R2007b)
08 Feb 2011 Jennifer Galt

### Jennifer Galt (view profile)

Poor. Terribly inefficient, even for a beginner.

24 Apr 2009 Xu Wings

### Xu Wings (view profile)

15 Apr 2009 Mustafa

### Mustafa (view profile)

05 Apr 2009 Robin Torres

### Robin Torres (view profile)

05 Apr 2009 Xing Yu

### Xing Yu (view profile)

05 Apr 2009 alain boyer

### alain boyer (view profile)

05 Apr 2009 V. Poor

### V. Poor (view profile)

02 Apr 2009 Kemal

### Kemal (view profile)

01 Apr 2009 Gholamreza (Shahab) Anbarjafari

### Gholamreza (Shahab) Anbarjafari (view profile)

:)

Comment only
31 Mar 2009 Hal 9000

### Hal 9000 (view profile)

poorly written

30 Mar 2009 Kemal

### Kemal (view profile)

25 Mar 2009 Xu Wings

### Xu Wings (view profile)

not so professional

21 Dec 2008 Derek O'Connor

### Derek O'Connor (view profile)

This is a very poor example for demonstrating recursion and my lead naive students to believe that all recursion is inefficient.

This is not true: the recursive Fibonacci generator is a classic example of using a good tool for the wrong job.

For example, fibonacci(25) makes 243,028 fibonacci() calls, all but 25 of them superfluous.

If you really need to calculate Fibonacci numbers then something such as the following function will be much faster.

function result = IFib(n);
F0 = 0;
F1 = 1;
for k = 2:n
F2 = F1 + F0;
F0 = F1;
F1 = F2
end;
result = F2;

If you need to demonstrate recursion to students then choose a better example, such as Binary Search of an ordered table. Many more examples can be found in any good book on algorithms.

Derek O'Connor

Comment only
14 Dec 2008 Jeff Burkey

### Jeff Burkey (view profile)

Shahab, cyclonic programming is the most cpu time intensive technique (i.e. slow). I would like to make the suggestion, why not teach your students multi-dimensional techniques which is what Matlab excels at best for a platform and is orders of magnitude faster. That said, working with large datasets certainly may require loops, or at best a combination of loops and dimensional math. Plus if you go parallel processing deminsonal math would be prefered. Regards, Jeff.

Comment only
13 Dec 2008 Gholamreza (Shahab) Anbarjafari

### Gholamreza (Shahab) Anbarjafari (view profile)

Thanks for your comment Jos, well the reason that I post this file was some of my students want an example of using a recursive function MATLAB, so I let them have it by posting it here, not only them but maybe some other people may want to just have a review of recursive function.
I appreciate you sparing your time on commenting my programme.

Comment only
13 Dec 2008 Jos (10584)

### Jos (10584) (view profile)

There are so many ways to arrive at a fibonacci number: see http://blogs.mathworks.com/loren/2006/05/17/fibonacci-and-filter/

This submission is not so bad in itself, although the help lacks an H1 line (used by LOOKFOR) and an example. However, as this is clearly a product of a programming exercise, I do not think this is worthwhile to post it here on the FEX. Hence my 2 stars.

13 Dec 2008 i posh

### i posh (view profile)

Shahab, thanks for the example....

12 Dec 2008 alain boyer

12 Dec 2008 Anon

### Anon (view profile)

Why going for recursion, when there are other ways to solve it?

>>tic;a = fibonacci(30);toc
Elapsed time is 57.611550 seconds.
>> a

a =

832040

David Terr's function
http://www.mathworks.com/matlabcentral/fileexchange/5093

>> tic;a = fibonacci2(30);toc
Elapsed time is 0.000082 seconds.
>> a

a =

832040