Probleme en scilab

Résolu
bigbang-10^?ans -  
Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
Je souhaite une aide sur ce programme que j'ai emplementer sous scilab : en fait scilab m'affiche cette erreur quand j'excecute la fonction Kernell(10,10,[2,1],1,0,1) Pour vous aidez j'ai afficher les lignes 8 et 33 qui posent Pb.
!--error 144
Undefined operation for the given operands
check or define function %s_2_s for overloading
at line 8 of function multinomiall called by :
line 33 of function Kernell called by :
Kernell(10,10,[2,1],1,0,1)



Le Programme est le suivant:

function [Y]=vetorus(N,X,XX,alpha,sigma)
D=size(sigma);
d=D(1,2);
cc=3.141592653589793238;
A=zeros(1,N)
YY=XX-X
for i=1:N;
A(1,i)= sum(alpha .*((1/sqrt(2*cc)*ones(1,d) ./sigma) .*exp(((-0.5 *YY(1,i)*YY(1,i))*ones(1,d)) .(sigma .*sigma))));
end
Y=A;
endfunction


function [Y]=h(x)
Y=x. *x ;
endfunction

function [Y]=ppi(x)
cc=3.141592653589793238;
Y=1/sqrt(2*cc)*exp(-1/2*( x .*x));
endfunction

function [Y]=multinomiall(N,PPP,ll)
//génerer N indexation de 1 à tel que i est de
//probabilité proportionel à alpha(1,i)
B=zeros(1,N);
U=rand(1,N);
V=cumsum(PPP)/sum(PPP);
for i=1:N;
B(1,i)=1+sum(U(1,i)>V); (ligne 8)
end
Y=B;
endfunction


function [Y]=Kernell(t,N,sigma,s,m,r)
cc=3.1415926;
D=size(sigma);
d=D(1,2);
R=zeros(1,t+1);
RR=cumsum(1/(t+1)*ones(1,t+1));
X=rand(1,N,'normal');
XX=zeros(1,N);

YY=zeros(1,N);
X=s*X+m;
B=1/(sqrt(2*cc)*s)*exp((-0.5/(s*s))*(X-m) .*(X-m));
R(1,1)=r*1/N*sum((h(X) .*ppi(X)) ./B);
WW=ppi(X) ./B;
alpha=ones(1,d+1)/(d+1);
J=multinomiall(N,WW,N);
YY=X(J);
X=YY;
for k=1:t;
K=multinomiall(N,alpha,d+1);
U=rand(1,N,'normal');
V=rand(1,N);
VV=rand(1,N);
VVV=2*(VV<=1/2)-ones(1,N);
for i=1:N;
YY(1,i)=U(1,i)*sigma(1,min(K(1,i),d));
end
XX=(YY+X) .*(ones(1,N)-(K==(d+1)))+(K==(d+1)) .*sqrt(1/2*log(V)) .*VVV;
a=vetorus(N,X,XX,alpha(1,1:d),sigma)+alpha(1,d+1) .*abs(0.25*XX) .*exp(-0.5*XX .*XX);
W =ppi(XX) ./a;
X=XX;
W=(1/sum(W)) * W;
J=multinomiall(N,W,N); ( ligne 33 )
b=sum(h(X) .*W);
R(1,k+1)= r*b;
WW= W .*W .*(h(X)-b*ones(1,N)) .*(h(X)-b*ones(1,N));
c= sum(WW);
YY=X(J);
X=YY;
for i=1:d+1;
alpha(1,i)= sum(WW .*(K==i))/c;
//alpha(1,i)= sum(W .*(K==i));
end
end
plot2d(RR,R);
Y=alpha;
endfunction



MERCI BONNE JOURNEE
A voir également:
  • Probleme en scilab
  • Scilab - Télécharger - Édition & Programmation

1 réponse

Sacabouffe Messages postés 9427 Date d'inscription   Statut Membre Dernière intervention   1 835
 
Salut
function [Y]=multinomiall(N,PPP,N)
La coquille est là je pense. Le N est inconnu dans ta fonction multinomiall.
A plus
3