Bonjour , je vais essayer d'être assez clair , alors voila ,
je veux tracer la fonction qui à t-> sigma[2][i]*t
pour t appartient à [0,05*(i-1) ; 0,05*i ] avec i allant de 1 à 20 ,donc t allant de 0 à 1;
Le soucis c'est que je n'arrive pas à créer de boucle pour l'intervalle en fonction de i.
Si quelqu'un peut m'aider merci
(j'ai définie les sigma[2][i] précédemment bien entendu)
pour info , j'ai deja fait cela (inutile je pense mais bon )
for i to 20 do l[2][i] := sigma[2][i]*t ; plot(l[2][i](t), t = 0.5e-1*(i-1) .. 0.5e-1*i)od;
Mais ça trace les 20 courbes , il faudrait mnt qu'elles se succèdes en quelque sorte
je pense avoir une idée réalisable pour avoir un seul intervalle .
L'idée serait de définir ma fonction telle que je la veux sur l'intervalle que je veux et nulle ailleurs avec un if then else .
Problème , j'ai essayé de mettre la boucle de partout ça ne marche toujours pas .
Bonsoir,
Si j'ai bien compris ton problème, ce morceau de code devrait faire ton bonheur
with(plots):
f := (i,t) -> sum(t, k = 2 .. i) ;
L := NULL: for i from 1 to 20 do L := plot(f(i, t), t = (0.05*(i-1)) .. (0.05*i)), L end do; L:
display({L}) ;
Tout d'abord merci.
Il s'avère que j'ai encore trouvé plus simple , avec la fonction piecewise , ça définie ta fonction sur plusieurs intervalles
ça ressemble à ça :
f := piecewise(x < 0.051, sigma[2][1]*x, x < .10, sigma[2][2]*x, x < .15, sigma[2][3]*x, x < .20, sigma[2][4]*x, x < .25, sigma[2][5]*x, x < .30, sigma[2][6]*x, x < .35, sigma[2][7]*x, x < .40, sigma[2][8]*x, x < .45, sigma[2][9]*x, x < .50, sigma[2][10]*x, x < .55, sigma[2][11]*x, x < .60, sigma[2][12]*x, x < .65, sigma[2][13]*x, x < .70, sigma[2][14]*x, x < .75, sigma[2][15]*x, x < .80, sigma[2][16]*x, x < .85, sigma[2][17]*x, x < .90, sigma[2][18]*x, x < .95, sigma[2][19]*x, x < 1, sigma[2][20]*x);
Le soucis c'est que la c'est écrit comme un bourrin ..
J'essaye de l'écrire en séquence mais je saisi pas trop comment faire .
Pour moi il faudrait écrire
W := piecewise(seq{sigma[2][i]*x, i = 1 .. 20, x < 0.05*i},i=0..20);
Mais je dois avoir un problème entre les () et les {} car ça ne marche pas ..
Si tu as une idée elle est la bienvenue
J'avais tenté un piecewise aussi mais je n'ai pas réussi à faire en sorte de ne pas tout écrire à la main donc j'ai abandonné
une autre idée peut être :
f := proc(t) local i; i := floor(t/0.05); sum(t, k = 2 .. i) end proc;
plot(f(t), t = 0 .. 1);
Par contre ça relie les discontinuités
(floor est la partie entière)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :