Maple et algèbre
Discutez d'informatique ici !
-
thekorner
- Messages: 4
- Enregistré le: 14 Mai 2007, 19:48
-
par thekorner » 14 Mai 2007, 20:00
Bonjour, je voudrais savoir comment obtenir une matrice A= [aij], sur Maple , matrice n,n (n fixé) telle que aij=f(i,j) où f est une fonction à deux variables (de R2 dans R donc).
Une fois cette matrice obtenue, comment obtenir la somme de tous les éléments? (somme de n carré termes)
Merci beaucoup d'avance
-
GzD
- Membre Naturel
- Messages: 24
- Enregistré le: 12 Avr 2007, 14:44
-
par GzD » 15 Mai 2007, 08:49
C'est quand même les bases du langage là oO (ah ces prépas qui veulent qu'on leur fasse leurs exos :s)
Montre ce que tu as fais déjà, on t'aidera après ;)
-
thekorner
- Messages: 4
- Enregistré le: 14 Mai 2007, 19:48
-
par thekorner » 15 Mai 2007, 09:40
si c'était un exo à faire, j'demanderais pas de l'aide comme ça... le problème c'est qu'on ne fait PAS DU TOUT d'algèbre linéaire sur Maple et donc c'est un peu embêtant quand je dois en utiliser dans mon tipe. Apparemment j'ai vu que les matrices ne se définissaient qu'à base de liste et c'est pas le top quand on veut la définir par une fonction à deux variables.
u1:=(k1,k2)->evalf(evalf(Int(subs(a=14.7,ph(x,y)), [x=-a+k1*2*a/n..-a+(k1+1)*2*a/n, y=-sqrt(3)*a+k2*2*a*sqrt(3)/n..-sqrt(3)*a+(k2+1)*sqrt(3)*2*a/n],
method=_MonteCarlo, epsilon=0.5e-3))/(2*a*(1/n)*2*sqrt(3)*a*(1/n)));
voila ma fonction à deux variables, et le problème que j'ai pour faire la double somme classique, c'est qu'il y a une méthode numérique dans la fonction à deux variables, ce qui oblige à donner les valeurs des variables avant... c'est pour ça que j'ai eu l'idée de la matrice...
voila, donc si quelqu'un peut m'aider, ce serait sympa, et ce n'est pas absolument pas "pour me faire un exercice", mais plutôt une petite aide au milieu d'un gros gros travail (le tipe)...
-
GzD
- Membre Naturel
- Messages: 24
- Enregistré le: 12 Avr 2007, 14:44
-
par GzD » 15 Mai 2007, 11:17
Ne peux tu pas envisager d'établir le résultat de ta somme à l'aide d'un boucle qui fera les appels de ta fonction avec les bons paramètres (=indices de ta boucle) ?
-
thekorner
- Messages: 4
- Enregistré le: 14 Mai 2007, 19:48
-
par thekorner » 15 Mai 2007, 12:59
j'arrive bien à faire une boucle for en fixant une des variables (c'est alors un parametre), je modifie donc la fonction pour la rendre à une seule variable, cette variable variant de 0 à n-1, ce qui me donne une liste:
> for k2 from 0 to n-1 do u1(0) od;
9.412653364
9.412653364
7.084145513
4.780462719
4.094385841
4.271307811
4.907935179
5.687853960
6.432048744
7.680534803
7.811811948
7.869050576
7.898863228
7.918744669
voila ce que ça me donne pour n=15, déjà je ne sais pas comment m'y prendre pour faire la somme de tous ces éléments, ensuite il me manque tous les éléments correspondant à u1(1), u1(2), u1(3),...., u1(n-1)
j'ai bien essayé de faire une double boucle for mais celà fait planter maple...
-
GzD
- Membre Naturel
- Messages: 24
- Enregistré le: 12 Avr 2007, 14:44
-
par GzD » 15 Mai 2007, 13:14
j'ai bien essayé de faire une double boucle for mais celà fait planter maple...
c'est balo ça

Quelle genre d'erreur as-tu ? mémoire insuffisante ?
Le code suivant ne marcherait-il pas ?
- Code: Tout sélectionner
> somme:=0:
> for a from 0 to n-1 do
> for b from 0 to n-1 do
> somme:=somme+u1(a,b);
> end do:
> end do:
> somme;
-
buzard
- Membre Relatif
- Messages: 274
- Enregistré le: 22 Mai 2006, 14:29
-
par buzard » 15 Mai 2007, 14:12
pour une somme je verrais bien ce genre de boucle
r = Algo (u, n)
{
for i=1 to n
r x+y)> la somme de n éléments
avec Algo x*y)> le produit de n éléments
ou avec la forme récursive :
r = Algo (u, n)
{
if n > 0 then
r (u, n-1), u[n] )
}
ou encore la forme récursive terminale (avec i=0)
r = Algo (u, n, i)
{
if n > i then
r (u, n, i+1)
}
-
thekorner
- Messages: 4
- Enregistré le: 14 Mai 2007, 19:48
-
par thekorner » 15 Mai 2007, 19:26
merci beaucoup, le code marche effectivement, je m'y prenais sûrement mal en faisant ma propre boucle for...
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités