Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation TI-Basic » gauss-seidel (12 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
collinm Ecrit le: Vendredi 1er juillet 2005 à 22:58 Déconnecté(e)    Voir le profil de collinm Envoyer un email à collinm Visiter le site WEB de collinm Envoyer un message privé à collinm  

salut

je dois coder l'algo de gauss-seidel sur une ti-92 plus...

en paramètre il doit avoir (a, b, x0,k)

a est une matrice carré, b un vecteur colonne, x0 une approximation inixiale (vecteur colonne), k un entier k>=1

je doit retourner le résultat de la kieme itération de cette méthode...

si me rappele bien, la formule de gauss-seidel est

X^(k+1) = (D-L)^(-1) U * X^K + (D-L)^-1 *B

c'est de la difficulté a associé les paramètre que je dois utiliser à ceux de la formule...

voici ce que j'ai fait jusqu'à maintenant:


gasei(a,b,x0,k)
Prgm
if coldim(a)  != rowdim(a) then
 disp "matrice non carree"
return 0

elseif coldim(b)!=1 then
 disp "nombre de colonne !=1
return 0

elseif coldim(x0)!=1 then
 disp "nombre de colonne !=1
return 0

elseif rowdim(a) != rowDim(b) then
 disp "le vecteur colonne b n'a pas le même ordre que a"
return 0

elseif rowdim(a) != rowDim(x0) then
 disp "le vecteur colonne x0 n'a pas le même ordre que a"
return 0

elseif k<1 then
 disp "k est inferieur a 1"
return 0

else

local i
0->i
for  i,0,k
endfor

return 1
endif

endprgm




merci
www.laboiteaprog.com
    
./Post n°1   Marquer comme non lu.
RHJPP Ecrit le: Vendredi 1er juillet 2005 à 23:05 Déconnecté(e)    Voir le profil de RHJPP Envoyer un email à RHJPP Envoyer un message privé à RHJPP  


return et prgm ne vont pas ensemble !
return et disp pas non plus ensemble !

Il faut que ce soit une fonction alors prgm->func
Et tu ne peut pas utiliser disp.

-Edité le Vendredi 1er juillet 2005 à 23:08 par Thepro-
    
./Post n°2   Marquer comme non lu.
Kevin Kofler Ecrit le: Vendredi 1er juillet 2005 à 23:28 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


http://mathworld.wolfram.com/Gauss-SeidelMethod.html
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°3   Marquer comme non lu.
Folco Ecrit le: Vendredi 1er juillet 2005 à 23:55 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Thepro: tout faux.
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°4   Marquer comme non lu.
RHJPP Ecrit le: Samedi 2 juillet 2005 à 00:13 Déconnecté(e)    Voir le profil de RHJPP Envoyer un email à RHJPP Envoyer un message privé à RHJPP  


Martial Demolins :
Thepro: tout faux.

Pourquoi ?
    
./Post n°5   Marquer comme non lu.
Folco Ecrit le: Samedi 2 juillet 2005 à 00:42 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Regardes ton post, il n'y a qu'une affirmation dedans, et elle est fausse.
-Edité le Samedi 2 juillet 2005 à 00:42 par Martial Demolins-
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°6   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 2 juillet 2005 à 00:42 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Martial Demolins :
Thepro: tout faux.

Non, il a bon, sauf qu'il faudrait préciser "Return avec une valeur". Un programme peut faire un Return, mais seule une fonction peut retourner une valeur.
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°7   Marquer comme non lu.
collinm Ecrit le: Samedi 2 juillet 2005 à 03:39 Déconnecté(e)    Voir le profil de collinm Envoyer un email à collinm Visiter le site WEB de collinm Envoyer un message privé à collinm  

j'ai trouvé sur:
http://phys.ucc.ie/~oll/AM2054/programs/Jacobi and gauss-Seidel.htm

la fonction en c++

au lieu de faire un do while pour savoir si on approche le taux d'erreur voulu, je ne fais que réitérer tant que la valeur n'est pas = à k....

ça donne


gasei(a,b,x0,k)
 Prgm
 if coldim(a)  != rowdim(a) then
  disp "matrice non carree"
 return 0
 
 elseif coldim(b)!=1 then
  disp "nombre de colonne !=1
 return 0
 
 elseif coldim(x0)!=1 then
  disp "nombre de colonne !=1
 return 0
 
 elseif rowdim(a) != rowDim(b) then
  disp "le vecteur colonne b n'a pas le même ordre que a"
 return 0
 
 elseif rowdim(a) != rowDim(x0) then
  disp "le vecteur colonne x0 n'a pas le même ordre que a"
 return 0
 
 elseif k<1 then
  disp "k est inferieur a 1"
 return 0
 
 else
 
   local count, tmp
   for count,0, k
      for  i,0,rowdim(a)
        tmp=b[i]
        for j,0,i
          tmp=tmp-a[i][j]*x0[j]
        endfor
        x0[i]=tmp/a[i][i]
      endfor
    endfor
    for i,0, rowdim(x0)
      disp x0[i]
    endfor
endif 
 endprgm



à l'exécution

[10,0,0;1,15,0;-1,1,20] -> a

[2;12;17] -> b

[0;0;0] -> x0

1 -> k

gasei(a,b,x0,k)

il me retourne dimension et va à la ligne

tmp=b[i]

une idée?
www.laboiteaprog.com
    
./Post n°8   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 2 juillet 2005 à 04:14 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Il faut utiliser la touche STO>, pas = (et ça s'écrit dans l'autre sens, aussi).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°9   Marquer comme non lu.
collinm Ecrit le: Samedi 2 juillet 2005 à 04:41 Déconnecté(e)    Voir le profil de collinm Envoyer un email à collinm Visiter le site WEB de collinm Envoyer un message privé à collinm  

ok c'est corrigé


local count, tmp
    for count,0, k
       for  i,0,rowdim(a)
         b[i]->tmp
         for j,0,i
           tmp-a[i][j]*x0[j]->tmp
         endfor
         tmp/a[i][i]->x0[i]
       endfor
     endfor
     for i,0, rowdim(x0)
       disp x0[i]
     endfor


mais j'obtient quand même:error dimension à b[i]->tmp

je crois que c'est parce que:

exemple:

b[1;2;3]

mais il s'attent à ce que ce soit

b[1,2,3]

il y a t'il moyen d'y faire comprendre que c'est b[1;2;3] qu'il faut qu'il considère... autrement un vecteur colonne au lieu d'un vecteur ligne?
www.laboiteaprog.com
    
./Post n°10   Marquer comme non lu.
Kevin Kofler Ecrit le: Samedi 2 juillet 2005 à 06:26 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


b[i,1]
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°11   Marquer comme non lu.
collinm Ecrit le: Samedi 2 juillet 2005 à 08:19 Déconnecté(e)    Voir le profil de collinm Envoyer un email à collinm Visiter le site WEB de collinm Envoyer un message privé à collinm  

j'ai le même problème....
www.laboiteaprog.com
    
./Post n°12   Marquer comme non lu.
Folco Ecrit le: Samedi 2 juillet 2005 à 11:09 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


Kevin Kofler :
Martial Demolins :
Thepro: tout faux.

Non, il a bon, sauf qu'il faudrait préciser "Return avec une valeur". Un programme peut faire un Return, mais seule une fonction peut retourner une valeur.

Ah et bien voilà, là on est d'accord, mais qu'il le précise (j'étais même allé vérifier sur émun il me faisait douter^^).
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
  :: Index » Forum Ti68K » Programmation TI-Basic » gauss-seidel (12 réponse(s))
Pages : 1/1     « [1] » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 49.73ms avec 18 requetes