Maple 10 "Error..."

Discutez d'informatique ici !
Facteur
Membre Naturel
Messages: 17
Enregistré le: 12 Nov 2007, 18:18

Maple 10 "Error..."

par Facteur » 07 Mai 2008, 12:43

Bonjour, voilà j'ai un projet maple à faire et j'ai quelques erreurs dans deux procédures :
> Basefourier:=proc(N)
> local L,t,w,j,lj,X,d,k,Fk,l,u,v,DFk,M;
> L:=[];
> t:=2^N;
> w:=(2*Pi)/t;
> for j from 0 to t-1 do lj:=exp(I*w*j*x); L:=[op(L),lj] od;
> X:=[seq(d,d=0..t-1)];
> M:=matrix(O,t);
> for k to t do
> Fk:=L[k];
> for l to t do
> u:=X[l]; v:=subs(x=u,Fk); v:=Cplx(v); DFk[l]:=v; od;
> evalm(DFk);
> M:=stackmatrix(M,DFk);
> od;
> evalm(M);
> end;


où Cplx :
Cplx:=proc(x)
> local y,z,a,b;
> y:=evalc(x);
> a:=Re(y);
> a:=evalf(a);
> b:=Im(y);
> b:=evalf(b);
> z:=a+I*b;
> end;

Je fais Basefourier(7); et maple me répond :
Error, (in linalg:-matrix) 1st and 2nd arguments (dimensions) must be non negative integers
Et l'autre procédure est :
Misaz:=proc(X,e)
> local T,n,i,c;
> T:=X;
> if type(X,`vector`) then n:=vectdim(X);fi;
> if type(X,`list`) then n:=nops(X);fi;
> for i to n do c:=T[i]; c:=Module(c);
> if(c od;
> T:=convert(T,matrix);
> evalm(T);
> end;


où Module :
Module:=proc(z)
> local M;
> M:=z*conjugate(z);
> M:=evalf(M);
> M:=sqrt(M);
> end;

Je lance Misaz(Y,1); où Y est une liste de points et maple me répond :
Error, (in Misaz) assigning to a long list, please use Arrays
J'ai cru comprendre que cela vient du fait que l'on ne peut modifier une liste de plus de 100 éléments, j'ai donc modifié cette procédure :

Misaz:=proc(X,e)
> local T,n,i,c;
> T:=[];
> if type(X,`vector`) then n:=vectdim(X);fi;
> if type(X,`list`) then n:=nops(X);fi;
> for i to n do c:=X[i]; c:=Module(c);
> if(c od;
> T:=convert(T,matrix);
> evalm(T);
> end;


Mais maintenant après Misaz(Y,1); maple me répond :
Error, (in convert/matrix) expecting array, rtable or list
Voilà si vous pouvez m'aider à rectifier ces erreurs de code se serait sympa, merci de votre aide. :happy2:



abcd22
Membre Complexe
Messages: 2426
Enregistré le: 13 Jan 2006, 14:36

par abcd22 » 07 Mai 2008, 14:20

Bonjour,
Facteur a écrit:[...]
> M:=matrix(O,t);
[...]

Je fais Basefourier(7); et maple me répond :
Error, (in linalg:-matrix) 1st and 2nd arguments (dimensions) must be non negative integers

Dans la ligne du programme que j'ai citée il y a un O (lettre o majuscule) au lieu d'un 0.
Pas d'idée pour l'autre.
PS: Le rose sur blanc est illisible, si tu pouvais mettre une autre couleur ce serait bien.

Facteur
Membre Naturel
Messages: 17
Enregistré le: 12 Nov 2007, 18:18

par Facteur » 09 Mai 2008, 10:09

abcd22 a écrit:Bonjour,

Dans la ligne du programme que j'ai citée il y a un O (lettre o majuscule) au lieu d'un 0.
Pas d'idée pour l'autre.
PS: Le rose sur blanc est illisible, si tu pouvais mettre une autre couleur ce serait bien.


Le nul :briques: :ptdr:
Donc j'ai changer le o en 0 et j'ai du également convertir DFk en vecteur pour qu'il n'y ait pas de problème avec stackmatrix. La procédure marche, meme si elle est très lente(il a fallu 40s a maple pour compiler Basefourier(7);)
Merci de ton aide, j'édite les couleurs. :++:

Si quelqu'un a une idée pour l'autre procédure n'hésitez pas.

Facteur
Membre Naturel
Messages: 17
Enregistré le: 12 Nov 2007, 18:18

par Facteur » 09 Mai 2008, 12:49

J'ai encore fait une erreur d'inattention puisque le problème de ma deuxième procédure viens du fait que je convertis une liste en une matrice alors que je veux un vecteur. Je n'ai plus de problème pour le momment :we:

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 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