diff options
author | Siddhesh Wani | 2015-05-25 14:46:31 +0530 |
---|---|---|
committer | Siddhesh Wani | 2015-05-25 14:46:31 +0530 |
commit | db464f35f5a10b58d9ed1085e0b462689adee583 (patch) | |
tree | de5cdbc71a54765d9fec33414630ae2c8904c9b8 /src/Scilab2C/SCI2CTests/test001_LinearRegression | |
download | Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.gz Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.tar.bz2 Scilab2C_fossee_old-db464f35f5a10b58d9ed1085e0b462689adee583.zip |
Original Version
Diffstat (limited to 'src/Scilab2C/SCI2CTests/test001_LinearRegression')
-rw-r--r-- | src/Scilab2C/SCI2CTests/test001_LinearRegression/SCI2CInputParameters.sce | 89 | ||||
-rw-r--r-- | src/Scilab2C/SCI2CTests/test001_LinearRegression/scilabcode/mainfunction.sci | 55 |
2 files changed, 144 insertions, 0 deletions
diff --git a/src/Scilab2C/SCI2CTests/test001_LinearRegression/SCI2CInputParameters.sce b/src/Scilab2C/SCI2CTests/test001_LinearRegression/SCI2CInputParameters.sce new file mode 100644 index 0000000..84590e7 --- /dev/null +++ b/src/Scilab2C/SCI2CTests/test001_LinearRegression/SCI2CInputParameters.sce @@ -0,0 +1,89 @@ +// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+// === ===
+// === *************** ===
+// === USER PARAMETERS ===
+// === *************** ===
+// === ===
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+
+// ------------------------------------------
+// --- Specify Paths of User Scilab code. ---
+// ------------------------------------------
+// UserSciCodeMainDir = 'D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\svnhartes\src\Scilab2C\SCI2CTests\test999_WorkingDir';
+UserSciCodeMainDir = '../SCI2CTests/test999_WorkingDir';
+
+// --- Path + filename of the .sci main file of the code to be translated. ---
+// It is the entry point.
+UserScilabMainFile = fullfile(UserSciCodeMainDir,'scilabcode\mainfunction.sci');
+
+// --- List of the paths containing the .sci files written by the user. ---
+UserSciFilesPaths = ...
+ [...
+ fullfile(UserSciCodeMainDir,'scilabcode');...
+ ];
+
+// --------------------------
+// --- End Specify paths. ---
+// --------------------------
+
+
+// ----------------------------
+// --- Select the run mode. ---
+// ----------------------------
+//RunMode = 'GenLibraryStructure';
+//RunMode = 'Translate';
+RunMode = 'All';
+
+// --- Select one of the following options. ---
+
+// 'GenLibraryStructure';
+// Generates the library structure and exits. It is very
+// useful when the user wants to manually change the files stored in that structure
+// before running the translation. 'GenLibraryStructure' option forces SCI2C to remove
+// the already existing WorkingDir and OutCCCodeDir directories.
+
+// 'Translate';
+// Performs the translation without generating the library structure. It means that the library
+// structure must be already existing. This is useful when the user doesn't want to spend time
+// to generate again that structure or when he wants to force the SCI2C tool to access to
+// a manually-changed library structure. 'Translate' option forces SCI2C to don't remove
+// the already existing WorkingDir. Only OutCCCodeDir directory will be removed.
+
+// 'All';
+// Performs all the actions listed above.
+
+// --------------------------------
+// --- End Select the run mode. ---
+// --------------------------------
+
+
+// ----------------------------
+// --- Translation Options. ---
+// ----------------------------
+// --- Enable (1) / Disable (0) copy of Scilab code into C code. ---
+// If 1 the Scilab code will be copied into the C code in order to show
+// how each Scilab code line has been translated into C code.
+CopySciCodeIntoCCode = 1;
+
+// --- Select the path style for the C code. ---
+// It can be:
+// windows
+// unix
+// cygwin
+CCompilerPathStyle = 'cygwin';
+
+// --- Path + File name of the main SCI2C library header file.
+// Sci2CLibMainHeaderFName = 'D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\svnhartes\src\Scilab2C\Scilab2C\CFiles\sci2cincludes\sci2clib.h';
+Sci2CLibMainHeaderFName = '../../../Scilab2C/CFiles/sci2cincludes/sci2clib.h';
+// --------------------------------
+// --- End Translation Options. ---
+// --------------------------------
diff --git a/src/Scilab2C/SCI2CTests/test001_LinearRegression/scilabcode/mainfunction.sci b/src/Scilab2C/SCI2CTests/test001_LinearRegression/scilabcode/mainfunction.sci new file mode 100644 index 0000000..a29a1c9 --- /dev/null +++ b/src/Scilab2C/SCI2CTests/test001_LinearRegression/scilabcode/mainfunction.sci @@ -0,0 +1,55 @@ +//SCI2C: DEFAULT_PRECISION= DOUBLE
+ +function mainfunction()
+ +// Knowing that +// (1) P * (V^gamma) = C +// Where +// P = Pressure +// V = Volume +// gamma,C = constants depending on the particular gas used. +// (2) log10(P) = log10(C) - gamma*log10(V) +// (3) x = log10(V) +// (4) y = log10(P) +// than (2) becomes: +// y = a + b*x; +// Where +// a = log10(C) +// b = -gamma +// Then thanks to this transformation it is possible to perform +// a linear regression to estimate gamma and C! + +Volume = [54.3 61.8 72.4 88.7 118.6 194.0]; +Pressure = [61.2 49.5 37.6 28.4 19.2 10.1]; +x = log10(Volume); +y = log10(Pressure); + +a = (sum(y)*sum(x.^2)-sum(x)*sum(x.*y))./(length(x)*sum(x.^2)-sum(x).*sum(x)); +b = (length(x)*sum(x.*y)-sum(x)*sum(y))./(length(x)*sum(x.^2)-sum(x).*sum(x)); + +// Other way to compute a and b +beq = sum((x-mean(x)).*(y-mean(y)))./sum((x-mean(x)).^2);
+aeq = mean(y)-mean(x)*beq;
+ +C = 10 .^a; +gamma = -b; + +disp('C') +disp(C) + +disp('gamma'); +disp(gamma); + +disp('a'); +disp(a) +disp('aeq'); +disp(aeq) + +disp('b'); +disp(b) +disp('beq'); +disp(beq) + +// plot(Volume,Pressure); +// plot(Volume,(C ./(Volume.^gamma)),'r') +endfunction |