<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns:o = "urn:schemas-microsoft-com:office:office"><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18939"></HEAD>
<BODY>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>Dear all,</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>The current email is intend as (an)
advice(s) request regarding the least square method
calculations.</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>I'm currently using the function
herebellow to calculate the coefficients of a 2nd order polynomial using
thousands of experimental data (furthermore the function is inserted in a loop
=> thousands of loop = billiards of calculations).</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>So the main time cost is these
calculation ...</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>I'm working to improve the code to be
faster and in parallele I would like to know if these a more relevant
instruction in Scilab that performe the calculation faster (maybe more accurate)
?</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>I had a look in the leastsq
instruction ... but the later is strongly influenced by the initial parameters
guess X0 (isn't it).</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>Any advice is
welcome</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>Regards / have a good
WE</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>Paul</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>PS : A give a basic exampel in
attached</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010>PS 2 : additional question (but i'm a
newby : calculations to be parallelized ???)</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN
class=332474908-27082010>###################################################"</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><IMG border=0 hspace=0 alt="" align=baseline
src="cid:332474908@27082010-071D"></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN
class=332474908-27082010>##########################################################</SPAN></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>function R_square = fct_MMC(p,experience)</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// Nota :</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// p = polynomial degree</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// experience = experimental data</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><FONT size=2 face=Arial><SPAN
class=332474908-27082010></SPAN></FONT></SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB></SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><FONT size=2
face=Arial></FONT></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><FONT size=2
face=Arial></FONT></SPAN> </P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// step 1 : "linear" least square method</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// matrix size<BR>[n,c] = size(experience);</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// calculation of S<BR>S = zeros(2*p,1);<BR>for k = 1 :
(2*p)<BR> for i = 1 : n<BR> S(k) = S(k) +
experience(i,1)^k;<BR> end<BR>end</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// calculation of W<BR>W = zeros(p+1,1);<BR>for k = 1 :
(p+1)<BR> for i = 1 : n<BR> W(k) = W(k) +
experience(i,2)*experience(i,1)^(k-1);<BR> end<BR>end</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// calculation of A<SPAN class=332474908-27082010> = S
matrix</SPAN><BR>A = zeros(p+1,p+1);<BR>for i = 1 : (p+1)<BR> for j = 1 :
(p+1)<BR> if (i == 1 & j == 1) then<BR> A(1,1) =
n;<BR> else<BR> A(i,j) =
S(i+j-2);<BR> end<BR> end<BR>end</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><BR></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// calculation of B<SPAN class=332474908-27082010> = W
matrix</SPAN><BR>B = zeros(p+1,1);<BR>for j = 1 : (p+1)<BR> B(j) =
W(j);<BR>end</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><BR></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>// calculation of the coefficients<BR>if (det(A) == 0)
then<BR> printf('
#######################################################################################\n')<BR> printf('
####
Singular matrix => no
solution
####\n')<BR> printf('
#######################################################################################\n')</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>else<BR> <SPAN class=332474908-27082010>//</SPAN>C =
inv(A)*B;</SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB><SPAN class=332474908-27082010></SPAN>C<SPAN
class=332474908-27082010> = lsq(A,B); // a bit faster than the
previous calculation / same results</SPAN><BR> // calculation of
R_square<BR> // formula : R_square = 1 - ( sum(F_fit - F_measured)^2
/ sum(F_mean - F_measured )<BR> F_fit = zeros(n,1);<BR> R_square
= 0;<BR> F_mean = 0;<BR> <BR> for i = 1 : n<BR> //
Calcul de F_fit<BR> for k = 1 :
(p+1)<BR> F_fit(i) = F_fit(i) +
C(k)*experience(i,1)^(k-1) ;<BR> end<BR> end</SPAN><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB> calculation of <SPAN
style="mso-spacerun: yes"> </SPAN>F_mean<BR> F_mean =
mean(experience(:,2));</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB> // SSE = sum (F_fit - F_mean)<BR> // SSTE = sum (F_mean -
F_measured)<BR> SSE = 0;<BR> SST = 0;<BR
style="mso-special-character: line-break"><BR
style="mso-special-character: line-break"><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB> for i = 1 : n<BR> SSE = SSE + (F_fit(i) -
experience(i,2))^2 ;<BR> SST = SST + (F_mean - experience(i,2))^2
;<BR> end</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB> </SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt">R_square = 1 - (SSE /
SST);</SPAN><o:p></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal> <o:p></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal> <o:p></o:p></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>end</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>clear A<BR>clear B<BR>clear S<BR>clear W<BR>clear SSE<BR>clear
SST</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB><BR></SPAN><SPAN
style="FONT-FAMILY: Arial; FONT-SIZE: 10pt; mso-ansi-language: EN-GB"
lang=EN-GB>endfunction</SPAN><SPAN style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB" lang=EN-GB> <o:p></o:p></SPAN></P>
<P style="MARGIN: 0cm 0cm 0pt" class=MsoNormal><SPAN
style="mso-ansi-language: EN-GB"
lang=EN-GB><o:p> </o:p></SPAN></P></BODY></HTML>
<pre>--------------------------------------------------------------------------------
Le présent mail et ses pièces jointes sont confidentiels et destinés à la personne ou aux personnes visée(s) ci-dessus. Si vous avez reçu cet e-mail par erreur, veuillez contacter immédiatement l'expéditeur et effacer le message de votre système. Toute divulgation, copie ou distribution de cet e-mail est strictement interdite.
This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please contact the sender and delete the email from your system. If you are not the named addressee you should not disseminate, distribute or copy this email.