[Scilab-users] [EXTERNAL] Re: Vectorization issue
Rafael Guerra
jrafaelbguerra at hotmail.com
Thu May 26 13:27:20 CEST 2016
Hi Paul,
b seems to be already used in the Km and Km2 formulas and so, it cannot be
used at the same time as an auxiliary variable with different meaning.
Only b needs to be changed.
Regards,
Rafael
From: users [mailto:users-bounces at lists.scilab.org] On Behalf Of Carrico, Paul
Sent: Thursday, May 26, 2016 12:38 PM
To: 'Users mailing list for Scilab' <users at lists.scilab.org
<mailto:users at lists.scilab.org> >
Subject: Re: [Scilab-users] [EXTERNAL] Re: Vectorization issue
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)
De : users [mailto:users-bounces at 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-bounces at lists.scilab.org] On Behalf Of Carrico, Paul
Sent: Thursday, May 26, 2016 11:30 AM
To: International users mailing list for Scilab. (users at lists.scilab.org
<mailto:users at lists.scilab.org> ) <users at lists.scilab.org
<mailto:users at 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 its 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);
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20160526/781ac4e8/attachment.htm>
More information about the users
mailing list