Bonjour, je fais actuellement un projet informatique sous maple et je ne comprend pas pourquoi une de mes procédures ne fonctionne pas. Le but est d'à partir de l'expression d'une conique sous la forme q(x,y)=a*x^2+2*b*x*y+c*y^2+d*x +e*y+f, de créer une procéder renvoyant la matrice de la forme quadratique associée, les valeurs propres, les vecteurs propres ainsi que la matrice de passage de la base canonique à la nouvelle base de vecteurs propres. J'ai créé un programme nommé quadra prenant f en argument et permettant d'extraire la partie quadratique, ensuite j'ai testé sur un exemple concret les différentes étapes à réaliser dans ma procédure afin qu'elle me renvoie la matrice de passage. Tout ceci fonctionne, mais dès que j'écris ma procédure dans le cadre général un message d'erreur de maple s'affiche, je voudrais savoir ce qui cloche dans ma petite procédure, la voici:
MatrPassage:=proc(function)
local A,a,b,c,d,e,f,g,h,i,j,x,y;
A:=(x,y)->quadra(function);
a:=matr(A);
b:=Eigenvectors(a);
c:=b[1];
d:=b[2];
e:=col(b[2],1);
f:=col(b[2],1);
g:=<e[1],e[2]>;
h:=<f[1],f[2]>; with(LinearAlgebra);
i:=GramSchimdt({g,h},normalize d);
j:=matrix([i[1],i[2]);
return j;
end;

la procédure matr est la suivante:
matr:=proc(q)
local A;
A:=Matrix(2,2,[[1/2*diff(q(x,y),x$2),1/2*diff(diff(q(x,y),x),y)],[1/2*diff(diff(q(x,y),x),y),1/2*diff(q(x,y),y$2)]]);
end;