Calcul du localisateur par la DFT [Maple] - Divers - Programmation
MarshPosté le 20-03-2008 à 12:31:23
Bonjour,
J'essaie depuis deux semaines d'écrire un programme Maple mais je n'y arrive pas. Voilà le sujet : Ecrire un programme qui permet de calculer, par la DFT (Transformée de Fourier), le polynôme localisateur d'erreurs L(y) ainsi que le polynôme erreur E(y) (on suppose les tables de Zech connues). Le calcul du localisateur doit fonctionner pour 1,2 ou 3 erreurs. Nous avons en entrée une fenêtre du polynôme syndrome c'est à dire 2*t coefficients consécutifs du syndrome. t étant le nombre d'erreurs que l'on veut trouver.
J'ai fait de multiples tentatives en vain.
Voici la procédure que j'ai écrit pour l'instant : > restart: > with(linalg): > P := x^7: > convert(P,polynom): > alias(x=RootOf(P)): Error, aliases cannot be numeric or string constants
> Localisateur:=proc(s1,s2,s3,s4) > local m1,IR,R,RT,L,a0,a1,sol: > m1 := matrix(2,3,[s1,s2,s3,s2,s3,s4]): > IR := gaussjord(m1,'r'): > R := submatrix(IR,1..2,3..3): > RT := transpose(R): > a0 := RT[1,1]: > a1 := RT[1,2]: > L := a0 + a1*Y + Y^2: > L := convert(L,polynom): > return(L); > end:
Marsh Posté le 20-03-2008 à 12:31:23
Bonjour,
J'essaie depuis deux semaines d'écrire un programme Maple mais je n'y arrive pas.
Voilà le sujet : Ecrire un programme qui permet de calculer, par la DFT (Transformée de Fourier), le polynôme localisateur d'erreurs L(y) ainsi que le polynôme erreur E(y) (on suppose les tables de Zech connues). Le calcul du localisateur doit fonctionner pour 1,2 ou 3 erreurs. Nous avons en entrée une fenêtre du polynôme syndrome c'est à dire 2*t coefficients consécutifs du syndrome. t étant le nombre d'erreurs que l'on veut trouver.
J'ai fait de multiples tentatives en vain.
Voici la procédure que j'ai écrit pour l'instant :
> restart:
> with(linalg):
> P := x^7:
> convert(P,polynom):
> alias(x=RootOf(P)):
Error, aliases cannot be numeric or string constants
> Localisateur:=proc(s1,s2,s3,s4)
> local m1,IR,R,RT,L,a0,a1,sol:
> m1 := matrix(2,3,[s1,s2,s3,s2,s3,s4]):
> IR := gaussjord(m1,'r'):
> R := submatrix(IR,1..2,3..3):
> RT := transpose(R):
> a0 := RT[1,1]:
> a1 := RT[1,2]:
> L := a0 + a1*Y + Y^2:
> L := convert(L,polynom):
> return(L);
> end:
> L := Localisateur(x^4,x^6,x^2,x);