[Mathematica] Simple Problem with the plot function

  • #1
48
0
I have a formula for the fibonacci sequence (with 1 being the first) and I noticed that the 12th fibonacci number was 144. I thought that was a neat coincidence, so I I headed over to mathematica to see if this (and 1) were the only numbers that had this property. I was almost certain that it was. So I plotted the two graphs, but only the x^2 graphed showed up. Here was my input. My question is about what I did wrong.

phi := (1 + Sqrt[5])/2

phih := (1 - Sqrt[5])/2

f:={(phi^n)-(phih^n)}/{Sqrt[5]}

y:=n^2

Plot[{f, y}, {n, -20, 20}]

Now, this works when I remove the phih term, which works well enough that I can clearly see that only 1 and 12 are solutions. On the other hand, this is not plotting something that it should be plotting...

Anyway, thank you in advance for the help.
 

Answers and Replies

  • #2
The problem is that plot tries to make a continuous plot. It then runs into the problem that phih^x is not a real-valued function for non-integer x, and refuses to plot it altogether. To just plot the values at integer values of x, you can use DiscretePlot:

DiscretePlot[{f, y}, {n, -20, 20, 1}]
 
  • #3
The problem is that plot tries to make a continuous plot. It then runs into the problem that phih^x is not a real-valued function for non-integer x, and refuses to plot it altogether. To just plot the values at integer values of x, you can use DiscretePlot:

DiscretePlot[{f, y}, {n, -20, 20, 1}]

That's really neat and useful. I was so accustomed to just glazing over (1-Sqrt[5])/2, that I forgot that it was negative. If you raise it to the power of 1/2 for example, then the answer is imaginary. That's why it is not a real-valued function, correct? Thank you, sir.
 
  • #4
That's really neat and useful. I was so accustomed to just glazing over (1-Sqrt[5])/2, that I forgot that it was negative. If you raise it to the power of 1/2 for example, then the answer is imaginary. That's why it is not a real-valued function, correct? Thank you, sir.

You are welcome. And, yeah, if the function has a non-zero imaginary part for at least one value of x, then clearly it's not real-valued on the whole domain (i.e. the plot range). However, Mathematica is able to handle cases where the function is piecewise real-valued, it just doesn't plot the part where the values are comples, see eg.
Plot[(1 + I*HeavisideTheta[x - 5]*HeavisideTheta[6 - x]), {x, 0, 10}]
(I would prefer it to give an error message or a warning, but it doesn't seem to do that.)


Your function is a bit worse though as it is only real-valued on integer values of x. The proof just uses the general definition of the power of a number a (negative, complex etc.), which makes use of the complex logarithm:
[itex]a^b=e^{b log a}[/itex].
If a is real and negative, then this simplifies to
[itex]a^b=e^{bLog(|a|)+ib\pi}=|a|^b e^{ib\pi}[/itex],
which is only real for integer values of b.
 

Suggested for: [Mathematica] Simple Problem with the plot function

Replies
0
Views
468
Replies
2
Views
1K
Replies
1
Views
651
Replies
1
Views
566
Replies
1
Views
172
Replies
3
Views
1K
Replies
4
Views
1K
Replies
2
Views
564
Replies
2
Views
2K
Replies
1
Views
559
Back
Top