Page 1 sur 1

Suites et séries de fonctions

MessagePublié: 19 Avr 2013 21:01
par Woodoo7
Bonsoir,

Je voulais savoir s'il existe déjà des macros permettant de créer des suites (et des séries) de fonctions, par exemple:

$f_{n}(x) = \left\{ \begin{array}{r c l} 2n^{2}x & si & 0 \leq x \leq \frac{1}{2n}\\ -2n^{2}x+2n & si & \frac{1}{2n} \leq x \leq \frac{1}{n}\\ 0 & si & x \geq \frac{1}{n}\end{array}\right.$.

Merci d'avance et bonne soirée.

Re: Suites et séries de fonctions

MessagePublié: 19 Avr 2013 22:39
par P.Fradin
Bonsoir,

Tu peux définir tes fonctions sous forme d'une macro, appelons la f
Code: Tout sélectionner
[
{f(n,x)}
$n:=%1, $x:=%2,
if x<0 then Nil
elif x<=1/2/n then 2*n*n*x
elif x<=1/n then -2*n*n*x+2*n
else 0
fi
]


Ensuite tu peux les tracer comme des courbes cartésiennes dans un élément graphique :
Code: Tout sélectionner
[
view(-0.1,1.1,-.5,5.1), Marges(0,0,0,0), size(9,0),
Arrows:=1, axes(0,1+i), Arrows:=0,
Width:=8, couleurs:=[red, blue, maroon, black, darkgreen],
tMin:=0, tMax:=1,
for k from 1 to 5 do
 Color:=couleurs[k],  Cartesienne(f(k,x))
od
]

suitefn.png
suitefn.png (20.21 Kio) Consulté 11403 fois


PS: on peut faire mieux en faisant une macro qui trace les fonctions affines par morceaux.

Re: Suites et séries de fonctions

MessagePublié: 22 Avr 2013 14:34
par Woodoo7
Bonjour,

merci c'est très sympa!

J'ai essayé de reprendre la macro pour dessiner la fonction
$f_{n}(x) = \left\{ \begin{array}{r c l} x - \frac{2\cdot i}{2^{n}}& si & \frac{2\cdot i}{2^{n}} \leq x \leq \frac{2\cdot \left(i+\frac{1}{2}\right)}{2^{n}}\\\frac{2(i+1)}{2^{n}}-x & si & \frac{2\cdot \left(i+\frac{1}{2}\right)}{2^{n}} < x < \frac{2(i+1)}{2^{n}}\end{array}\right. , i = 0, ... , 2^{n}-2$
Mais je n'arrive à rien de très concluant.

Peux-tu encore m'aider pour ça stp?

Merci d'avance et bonne journée!

Re: Suites et séries de fonctions

MessagePublié: 22 Avr 2013 20:53
par P.Fradin
Bonjour,

Si je comprends bien la définition, la courbe de ta fonction est la ligne polygonale définie par les points $(\frac{k}{2^n},\frac{k\mathrm{~mod~}2}{2^n})$. Il suffit donc de construire cette liste de points ce sera plus efficace qu'un tracé point par point.
Code: Tout sélectionner
[
    view(-0.1,1.1,-.05,0.55), Marges(0,0,0,0), size(9,0),
    Arrows:=1, axes(0,1+i/10), Arrows:=0,
    Width:=8, couleurs:=[red, blue, darkgreen, maroon],
    for n from 1 to 4 do
        num:=0, den:=2^n, Color:=couleurs[n],
        L:= for k from 0 to 2^n do (k+i*num)/den, num:=1-num od,
        Ligne(L,0)
    od
]

suitefnBis.png
suitefnBis.png (11.2 Kio) Consulté 11384 fois

Re: Suites et séries de fonctions

MessagePublié: 22 Avr 2013 21:51
par Woodoo7
Merci beaucoup c'est exactement ce que j'attendais!

Par contre
Si je comprends bien la définition, la courbe de ta fonction est la ligne polygonale définie par les points ($\frac{k}{2n},\frac{k\ mod\ 2}{2n}$).

je ne comprend pas d'où vient le modulo 2.

Ça a l'air de très bien marcher, mais je ne comprend pas pourquoi :| .

Bonne soirée, et encore merci!

Re: Suites et séries de fonctions

MessagePublié: 22 Avr 2013 21:58
par P.Fradin
Parce que la valeur de la fonction aux points $\frac{k}{2^n}$ est nulle si $k$ est pair, et $\frac1{2^n}$ sinon.

Re: Suites et séries de fonctions

MessagePublié: 22 Avr 2013 22:35
par Woodoo7
En effet! C'est ingénieux. Merci beaucoup!

Re: Suites et séries de fonctions

MessagePublié: 08 Juin 2013 14:42
par Woodoo7
Hello,

juste une petite question toute simple: j'aimerais mettre un label pour chaque fonction, et du coup est-ce possible de le faire en passant par une boucle?

Code: Tout sélectionner
[
view(-0.1,1.1,-.5,5.1), Marges(0,0,0,0), size(9,0),
Arrows:=1, axes(0,1+i), Arrows:=0,
Width:=8, couleurs:=[red, blue, maroon, black, darkgreen],
tMin:=0, tMax:=5,
for k from 1 to 5 do
 Color:=couleurs[k],  Cartesienne(f(k,x)),
 Label(0.9+i*((k/2)+1), "$f_{k}$")
od
]


j'aimerais que ça m'affiche $f_{1}, f_{2}$, etc..., c'est-à-dire la valeur de k.

Merci d'avance!

Re: Suites et séries de fonctions

MessagePublié: 08 Juin 2013 15:51
par P.Fradin
Bonjour,

Remplace
Code: Tout sélectionner
Label(0.9+i*((k/2)+1), "$f_{k}$")

par
Code: Tout sélectionner
Label(0.9+i*((k/2)+1), Concat("$f_{",k,"}$") )