Une série
Discutez d'informatique ici !
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 00:00
Bonsoir.
J'aimerais coder sous Matlab la série numérique suivante :
pour calculer qq termes de cette série (convergente).
Quelqu'un peut-il m'aider svp ? Merci bcp.
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 00:08
j'ai tenté qqchose, ms ça ne donne rien...
----------------------------------
function serie(N)
serie = zeros(100,1);
n=1;
while(n ~= 16)
for i = 1:N
f = ((-1)^i) / (i - 4*sqrt(i));
serie(i) = serie(i) + f;
end
n = n+1;
end
-----------------------------------
:zen:
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 00:39
J'ai bien tenté un truc ms ça ne donne rien...
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 26 Aoû 2010, 09:05
Bonjour,
Ben par exemple une boucle for plus un if pour savoir si on est à 16, non ?
-
Mathusalem
- Membre Irrationnel
- Messages: 1837
- Enregistré le: 14 Sep 2008, 04:41
-
par Mathusalem » 26 Aoû 2010, 10:10
Dans Matlab, ça serait :
Symsum(-1^n/(n-4sqrt(n)), n, 1, 15)
Symsum(-1^n/(n-4sqrt(n)), n, 15, inf)
Sauf erreur.
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 26 Aoû 2010, 10:19
moyennant le (-1) et les 4*sqrt :happy2:
la vie est une fête
-
Mathusalem
- Membre Irrationnel
- Messages: 1837
- Enregistré le: 14 Sep 2008, 04:41
-
par Mathusalem » 26 Aoû 2010, 10:48
fatal_error a écrit:moyennant le (-1) et les 4*sqrt :happy2:
Tu sais, la syntaxe et moi ...
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 11:23
gol_di_grosso a écrit:Bonjour,
Ben par exemple une boucle for plus un if pour savoir si on est à 16, non ?
C'est ce que j'avais essayé de faire mais ça ne me donne rien... du style :
function serie(N)
s = zeros(N,1);
for n = 1:N
if n ~= 16
f = ((-1)^(n)) / (n - 4*sqrt(n));
s = s + f;
elseif n==16
disp('erreur');
end
end
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 11:27
Mathusalem a écrit:Dans Matlab, ça serait :
Symsum(-1^n/(n-4sqrt(n)), n, 1, 15)
Symsum(-1^n/(n-4sqrt(n)), n, 15, inf)
Sauf erreur.
Même en moyennant, il n'y a pas moyen ! :pc:
Il me dit que la variable n n'est pas définie !
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 11:28
merci pour vos réponses en tout cas. Je vais continuer à chercher.
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 12:02
J'ai essayé ça aussi mais pas de réponses...
function serie(N)
s = zeros(N,1);
n=1;
while(n ~= 16 && n f = ((-1)^(n))/(n - 4*sqrt(n));
s = s + f;
n = n + 1;
end
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 26 Aoû 2010, 12:30
MacManus a écrit:J'ai essayé ça aussi mais pas de réponses...
function serie(N)
s = zeros(N,1);
n=1;
while(n ~= 16 && n<N)
f = ((-1)^(n))/(n - 4*sqrt(n));
s = s + f;
n = n + 1;
end
J'ai pas matlab d'installer mais déjà la condition du while ne va pas, il va s'arreter à n=16. Et je sais plus trop mais s=s+f va ajouter f à toute les composantes du vecteur s ?
Si tu veux récuperer ça dans un vecteur ça doit-être un truc dans le genre :
function serie(N)
s = zeros(N,1);
n=1;
cum=0; // pour faire la somme de la série
while( n<N )
if (n~=16) then
cum = cum + ((-1)^(n))/(n - 4*sqrt(n));
s(n) = cum;
end
n = n + 1;
end
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 12:59
En fait j'avais oublier que pour voir le résultat, il faut enlever le " ; " à la fin de la ligne s(n) = cum;
cool! merci beaucoup !!
-
abcd22
- Membre Complexe
- Messages: 2426
- Enregistré le: 13 Jan 2006, 15:36
-
par abcd22 » 26 Aoû 2010, 15:29
Bonjour,
gol_di_grosso a écrit:cum=0; // pour faire la somme de la série
while( n<N )
if (n~=16) then
cum = cum + ((-1)^(n))/(n - 4*sqrt(n));
s(n) = cum;
Juste un détail sans grande importance: si vous devez montrer le code à des anglophones n'utilisez pas cum comme nom de variable pour la somme cumulée, ça a un sens complètement différent en anglais.
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 15:42
oui et je crois savoir lequel...
personellement je m'étais borné à "s" pour série :happy3:
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 15:53
J'ai autre question :
Si l'on avait souhaité calculer la somme de cette série (convergente) "à la main" ? sans Matlab ,en pleine montagne par exemple ?
-
Nightmare
- Membre Légendaire
- Messages: 13817
- Enregistré le: 19 Juil 2005, 18:30
-
par Nightmare » 26 Aoû 2010, 16:40
Salut,
Je ne vois pas trop comment calculer
:s
-
MacManus
- Membre Irrationnel
- Messages: 1365
- Enregistré le: 28 Avr 2008, 15:41
-
par MacManus » 26 Aoû 2010, 17:03
Salut.
Ce qui est sûr, c'est qu'elle n'est pas absolument convergente. Mais elle est convergente d'après le critère des séries alternées non ? (elle serait donc semi-convergente).
Le lien wiki donne un exemple avec qqchose qui y ressemble :
ici(utilisation d'un grand O)
-
gol_di_grosso
- Membre Irrationnel
- Messages: 1402
- Enregistré le: 22 Sep 2007, 12:28
-
par gol_di_grosso » 26 Aoû 2010, 19:03
abcd22 a écrit:Juste un détail sans grande importance: si vous devez montrer le code à des anglophones n'utilisez pas cum comme nom de variable pour la somme cumulée, ça a un sens complètement différent en anglais.
oui je pensais à cumsum mais maintenant que vous me le dites...
-
fatal_error
- Modérateur
- Messages: 6610
- Enregistré le: 22 Nov 2007, 13:00
-
par fatal_error » 26 Aoû 2010, 21:19
Mais c'est carrément bien cum!
c'est un peu comme les pointeurs qui s'appelent q.
Faut savoir etre joker un ptit peu!
la vie est une fête
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités