Code : Tout sélectionner
fonction f(P,xmin,xmax,ymin,ymax,N,maxiter)
local z,zp,hx,hy,j,k,l,n,r,res,P1;
P1:=symb2poly(P');
P:=symb2poly(P);
res:=makelist(0);
r:=proot(P);
hx:=(xmax-xmin)/N; hy:=(ymax-ymin)/N;
for j from 0 to N do
for k from 0 to N do
z:=evalf(xmin+j*hx)+i*evalf(ymin+k*hy);
for l from 0 to maxiter do
si abs(z:=z-horner(P,(zp:=z))/horner(P1,z))>1e20 ou abs(z-zp)<1e-4 alors break; fsi;
od;
si z==undef alors continue; fsi;
for n from 0 to size(r)-1 do
si abs(z-r[n])<1e-4 alors break; fsi;
od;
res[size(res)]=<pixon(j,k,8+25*n+floor(l/2));
od;
od;
return res;
ffonction:;
pixon(1);f(x^4+1,-1.3,1.3,-1.3,1.3,200,20)