summaryrefslogtreecommitdiff
path: root/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode
diff options
context:
space:
mode:
authornutricato2008-06-09 11:55:20 +0000
committernutricato2008-06-09 11:55:20 +0000
commitbc33d0e5050080fe51ad39bc73a6a19a3966b93b (patch)
tree260e9fde8d50add762afa9c35d7e31c054b93d37 /src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode
parent716063e340cb99631fbd86b58e189c84600fff7b (diff)
downloadscilab2c-bc33d0e5050080fe51ad39bc73a6a19a3966b93b.tar.gz
scilab2c-bc33d0e5050080fe51ad39bc73a6a19a3966b93b.tar.bz2
scilab2c-bc33d0e5050080fe51ad39bc73a6a19a3966b93b.zip
Diffstat (limited to 'src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode')
-rw-r--r--src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci
new file mode 100644
index 00000000..75829d99
--- /dev/null
+++ b/src/Scilab2C/SCI2CTests/test999_WorkingDir/scilabcode/mainfunction.sci
@@ -0,0 +1,46 @@
+//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-aeq');
+disp(a-aeq)
+disp('b-beq')
+disp(b-beq)
+// plot(Volume,Pressure);
+// plot(Volume,(C ./(Volume.^gamma)),'r')
+endfunction