Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Let $f_{0}(x):[0,1]\to[0,1]$ be defined by

$$f_{0}(x):=\begin{cases} 3x, & \text{if } x\in [0,\frac{1}{3}] \\ \\ -3x+2, & \text{if } x\in (\frac{1}{3}, \frac{2}{3}] \\ \\ 3x+2, & \text{if } x\in (\frac{2}{3},1] \end{cases} $$

Construct a sequence of function such that

$$f_{n+1}(x):=\begin{cases} \frac{1}{3}f_n(3x), & \text{if } x\in [0,\frac{1}{3}] \\ \\ \frac{1}{3}+\frac{1}{3}f_n(3x-1), & \text{if } x\in (\frac{1}{3}, \frac{2}{3}] \\ \\ \frac{2}{3}+\frac{1}{3}f_n(3x-2), & \text{if } x\in (\frac{2}{3},1] \end{cases},\;\; \forall n\in\mathbb{N}. $$

And then, take the series associated with this sequence.

$$f(x):=\sum_{i=0}^{\infty}(-1)^{i}f_i(x).$$

How do I plot some $f_n(x)$ (in function of n) and a good approximation for $f$? I want a plot of then separately and one in the same picture (with more than one $f_n$). Is it possible to make a "zoom" on the picture?

Furthermore, is it possible to create a simulation in which one gives a natural number $p$ as an input, and receives as output the graph of some $f_n$ (in function of n) and a good approximation for $f$?

$$f_{n}(x):=\begin{cases} \frac{1}{p}f_{n-1}(px), & \text{if } x\in [0,\frac{1}{p}] \\ \\ \frac{1}{p}+\frac{1}{p}f_{n-1}(px-1), & \text{if } x\in (\frac{1}{p}, \frac{2}{p}] \\ \\ .\\ .\\ .\\ \\ \frac{p-1}{p}+\frac{1}{p}f_{n-1}(px-p-1), & \text{if } x\in (\frac{p-1}{p},1] \end{cases} $$

share|improve this question
    
@R.M I'm sorry to put a wrong tag, I'll remove it. I've never used Mathematica before, except for trivial plots. Instead I use Gnuplot, and this program can make the graphs of $f_n$ and $f$ by recursion. But, the image is poor in quality and I can not make a zoom in it. And the simulation its not possible. –  Paulo H Feb 13 '12 at 18:05
2  
Your function $f_0$ is not confined to $[0,1]$. For instance, $f_0(1) = 5$. –  rcollyer Feb 13 '12 at 18:52
1  
Your more general function is also dependent on the partition $p$, so you really should be using notation that emphasizes the dependence on $p$; say, $f_n^{(p)}(x)$. Having said that, you haven't specified the definition of $f_0^{(p)}(x)$; just the general recursive formula. –  J. M. Feb 14 '12 at 2:49
1  
You might also be interested in this question. –  J. M. Feb 14 '12 at 2:50
add comment

2 Answers 2

up vote 8 down vote accepted

You can pretty much enter your question in that form in Mathematica:

enter image description here

The first definition, f[x_, n_] /; n == 0, reads "define $f_n(x)$ in the case of $n=0$ to be the following". The fancy bracket is pretty frontend notation for the Piecewise function (shortcut: EscpwEsc). The next line is the same thing again, after that there's the definition of your function $f(x)$, which is the partial sum up to $\mathcal N$. I don't think you can use $\mathcal N=\infty$ in this case, as it will exceed the maximum recursion depth by, well, infinity. If you want to have an exact result, try using RSolve to get an explcit equation for $f_n(x)$.

If you want to evaluate the code above on your own, here's a copyable version:

f[x_, n_] /; n == 0 := Piecewise[{
    {3 x, 0 <= x <= 1/3},
    {-3 x + 2, 1/3 < x <= 2/3},
    {3 x + 2, 2/3 < x <= 1},
    {Indeterminate, True}
}]
f[x_, n_] /; n >= 0 := Piecewise[{
    {1/3 f[3 x, n - 1], 0 <= x <= 1/3},
    {1/3 + 1/3 f[3 x - 1, n - 1], 1/3 < x <= 2/3},
    {2/3 + 1/3 f[3 x - 2, n - 1], 2/3 < x <= 1},
    {Indeterminate, True}
}]
f[x_, _, \[ScriptCapitalN]_] := Sum[(-1)^k f[x, k], {k, 0, \[ScriptCapitalN]}]
Plot[f[x, _, 10], {x, 0, 1}, PlotPoints -> 100, MaxRecursion -> 5]

For the third part of your question, simply define $p$ as an additional parameter for your function, so it's something like f[x_, n_, p_] := ..., and edit the definitions accordingly.

share|improve this answer
add comment

You could define your functions this way :

f[0, x_] /; 0 <= x && x <= 1 := 
    Piecewise[{{3 x, x <= 1/3}, {-3 x + 2, 1/3 < x <= 2/3}, {3 x + 2, 2/3 < x}}]
f[n_, x_] /; 0 <= x && x <= 1 && n > 0 := 
    Piecewise[{{1/3 f[n - 1, 3 x], x <= 1/3}, 
               {1/3 + 1/3 f[n - 1, 3 x - 1], 1/3 < x <= 2/3},
               {2/3 + 1/3 f[n - 1, 3 x - 2], 2/3 < x}}]

and use Manipulate to plot functions for various n :

Manipulate[Plot[f[n, x], {x, 0, 1}], {n, 0, 15, 1}]

enter image description here

If you want to enlarge your plot, just click on it and drag a small orange square on the bottom right of the plot.

A straightforward way to approximate $f(x)$ is the following definition :

 F[n_, x_] := Sum[(-1)^k f[k, x], {k, 1, n}]

However that would be quite inefficient. Therefore we proceed along a different route.

F[0, x_] := f[0, x];
F[n_, x_] /; n > 0 := F[n, x] = F[n - 1, x] + (-1)^n f[n, x]

For a brief introduction to this technique read Functions That Remember Values They Have Found

In case you need a more precise plot you can use PlotPoints and MaxRecursion options in Plot, e.g.

Manipulate[Plot[F[n, x], {x, 0, 1}, PlotPoints -> 250], {n, 0, 15, 1}]

enter image description here

share|improve this answer
    
it's not a good idea to use N as a variable... –  rm -rf Feb 14 '12 at 1:10
    
@R.M However one should sign partial sums approximating the function f(x), so let it be as a working solution. –  Artes Feb 14 '12 at 1:26
2  
No, that's not what I meant... I was referring to not using N, which is a built-in function for use as a variable (or even a place holder). It is something that will trip beginners up very often (they get a "Protected symbol" warning) and might confuse them further to see its use in an answer :) –  rm -rf Feb 14 '12 at 2:56
    
@Thanks for a reminder ! I've forgotten it although I use N-function very frequently. –  Artes Feb 14 '12 at 11:43
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.