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:
