Maple 10 "Error..."

(Cliquez-ici pour accéder à la version originale de cette discussion avec couleurs et images)







Posted by: Facteur

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<e) then T[i]:=0; fi;
> 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<e) then T:=[op(T),0]; else T:=[op(T),c]; fi;
> 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.



Posted by: abcd22

Bonjour,
Citation:
Posté par Facteur
[...]
> 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.



Posted by: Facteur

Citation:
Posté par abcd22
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
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.



Posted by: Facteur

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











-