Maple et algèbre

Discutez d'informatique ici !
thekorner
Messages: 4
Enregistré le: 14 Mai 2007, 19:48

Maple et algèbre

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...

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite