#1 Le 27/09/2009, à 22:15
- gilbert
[octave] définir une fonction inline somme
salut,
j'aimerai bien définir sous octave une fonction inline basé sur une sommation du genre :
f = @(x) 1/1 * sin(2*pi*1*x) + 1/3 * sin(2*pi*3*x) + 1/5 * sin(2*pi*5*x) + ... + 1/99 * sin(2*pi*99*x)
Est-ce qu'il y a un moyen en définissant un vecteur pour mes entiers allant de 1 à 99 de définir cette fonction d'une façon plus concise ?
merci pour votre aide.
Simplement moi-même..
Hors ligne
#2 Le 28/09/2009, à 12:02
- olsman037
Re : [octave] définir une fonction inline somme
Salut,
Tu fais les entiers de 1 à 99 ou que les impairs ?
en faisant une fonction f_.m
function f=f_(X,Y)
f=@(X) sum((1./Y) .* sin(2*pi.*Y.*X));
puis
Y=[1:99]; (ou Y=[1:2:99] si tu veux que impair)
f=f_(@X,Y)
Je ne sais pas si ça fait ce que tu veux mais ça peut te donner des idées, moi je suis sous matlab et normalement si ça marche sur matlab ca marche sous octave, par contre j'y connais rien en math donc je ne sais pas si la fonction définie correspond vraiment à celle que tu demande... il faut vérifier...
Dernière modification par olsman037 (Le 28/09/2009, à 12:04)
Sony Vaio VPC-SB1C5E, i7-2620M, 8Go, GPU AMD 6470M avec triple boot W7, Ubuntu 10.10 et Arch...
Galère les nouveaux sony sous linux!!!! (switch AMD/Intel, touchpad, ethernet,....)
Hors ligne
#3 Le 28/09/2009, à 18:26
- gilbert
Re : [octave] définir une fonction inline somme
oui, la fonction que j'ai donné en exemple n'est là qu'à titre illustratif. Elle fonctionne avec les impairs. Si on la plot, ça doit donner un signal rectangulaire.. Mais là n'est pas vraiment mon problème..
alors j'ai fait ce que tu m'as indiqué et j'obtiens cela :
octave:2> f=f_(@X,Y)
error: error creating function handle "@X"
error: evaluating argument list element number 1
error: evaluating assignment expression near line 12, column 2
j'ai pourtant bien créé la fonction f_ dans le fichier f_.m :
octave:12> f_
ans =
@(X) sum ((1 ./ Y) .* sin (2 * pi .* Y .* X))
Simplement moi-même..
Hors ligne