<!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.