Thanks Rafael for the answer

One explanation of the error is that I used a and b letter instead of aa and bb 
in your example; your code, if I change aa -> a and bb -> it fails again ... 
why ? (I do not understand)

EXPORT CONTROL :
Cet email ne contient pas de données techniques
This email does not contain technical data

De : users [mailto:users-boun...@lists.scilab.org] De la part de Rafael Guerra
Envoyé : jeudi 26 mai 2016 12:26
À : 'Users mailing list for Scilab'
Objet : [EXTERNAL] Re: [Scilab-users] Vectorization issue


Hi Paul,

It seems that there may be some issues with the .*, .^ syntax and also the use 
of the same variable in different context (b).

Editing the vectorization part of your code as follows:

// using vectorization
aa = [0:n]';
bb = ones(n,1);
i = aa.*.bb;
j = bb.*.aa;

Km2 = zeros(n*(n+1),1);
Km2 = %pi^6*((2*i+1).^2 .* j.^2).*((2*i+1).^2.*(b/2*d)^2 + j.^2) ;
Km2 = (144*(b/d).^4)/ sum(Km2);
Km2 = 1.2 + (nu/(1+nu))*Km2;
k2 = 1/Km2

produces:
   k  =    0.8333090
   k2  =  0.8333333

A small difference. I did not check the formulas but it might be numerical 
error only.

Regards,
Rafael

From: users [mailto:users-boun...@lists.scilab.org] On Behalf Of Carrico, Paul
Sent: Thursday, May 26, 2016 11:30 AM
To: International users mailing list for Scilab. 
(users@lists.scilab.org<mailto:users@lists.scilab.org>) 
<users@lists.scilab.org<mailto:users@lists.scilab.org>>
Subject: [Scilab-users] Vectorization issue

Dear
I failed in using vectorization in the example immediately bellow; but I do not 
remember if it's possible : any advice ?
Thanks
Paul
######################################################################################

mode(0)



n = 20

Km = 0;



b = 100;

d = 20;

nu = 0.3;



// using loops

for i = 0 : n

    for j = 1 : n

        Km = Km + (144*(b/d)^4)/(  
%pi^6*(2*i+1)^2*j^2*((2*i+1)^2*(b/2*d)^2+j^2)  );

    end

end



Km = 1.2 + (nu/(1+nu))*Km

k = 1/Km



// using vectorization

a = [0:n]';

b = ones(n,1);

i = a.*.b;

j = b.*.a;



Km2 = zeros(n*(n+1),1);

//toto = i. *j

Km2 = (  %pi.^6*((2*i+1).^2. * j.^2)*((2*. i+1).^2*(b/2*d).^2 + j^2)  )

Km2 = (144*(b/d).^4)/ Km2

Km2 = 1.2 + (nu/(1+nu))*Km2

k2 = 1/Km2




EXPORT CONTROL :
Cet email ne contient pas de données techniques
This email does not contain technical data

_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users

Reply via email to