summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Tutorial1_Basic/Data/Tut1_data2.dat15
-rw-r--r--Tutorial1_Basic/Scilab_code/Tutotial1_filehandling.sce7
-rw-r--r--Tutorial3_Curve_fitting/Data/Tut3_Data.csv13
-rw-r--r--Tutorial3_Curve_fitting/Scilab_code/Tutorial3_curve_fitting.sce38
-rw-r--r--Tutorial3_Curve_fitting/Scilab_code/errorfun.sci4
-rw-r--r--Tutorial3_Curve_fitting/Scilab_code/fit_function.sci6
6 files changed, 82 insertions, 1 deletions
diff --git a/Tutorial1_Basic/Data/Tut1_data2.dat b/Tutorial1_Basic/Data/Tut1_data2.dat
new file mode 100644
index 0000000..8d79fe3
--- /dev/null
+++ b/Tutorial1_Basic/Data/Tut1_data2.dat
@@ -0,0 +1,15 @@
+#Obtained from a dummy data for illustration in https://docs.google.com/spreadsheets/d/1mIbdSO35zmm4SJcIXE89_-sk_ZBsB1qKnhiLdgY_-FE/edit#gid=0
+#Grinv Nuexpt err
+0.001 17.52228506 0.5
+0.002511886432 15.39548247 0.5
+0.006309573445 10.72315424 0.5
+0.01 7.490637629 0.5
+0.02511886432 7.573613426 0.5
+0.06309573445 6.521758867 0.5
+0.1 4.85299648 0.5
+0.2511886432 5.179305259 0.5
+0.6309573445 4.544433719 0.5
+1 5.009578782 0.5
+2.511886432 5.126719895 0.5
+6.309573445 4.478903266 0.5
+10 5.431082153 0.5
diff --git a/Tutorial1_Basic/Scilab_code/Tutotial1_filehandling.sce b/Tutorial1_Basic/Scilab_code/Tutotial1_filehandling.sce
index da9279a..a429533 100644
--- a/Tutorial1_Basic/Scilab_code/Tutotial1_filehandling.sce
+++ b/Tutorial1_Basic/Scilab_code/Tutotial1_filehandling.sce
@@ -6,7 +6,7 @@ clc
exec mymean.sci;
exec mystdev.sci;
-//Import data from file
+//Import data from csv file
Data = csvRead('/home/chayan/Documents/scilab-tutorials/Tutorial1/Data/Tut1_data1.csv');
x = Data(:,1);
y = Data(:,2);
@@ -22,3 +22,8 @@ standard_deviation_of_Data_x= mystdev(x,mean_of_Data_x);
//Display mean and standard deviation in command window
disp(mean_of_Data_x,'Mean of x',standard_deviation_of_Data_x,'Standard deviation of x')
+
+//Importing data from dat file
+Mat = fscanfMat('Data/Tut1_data2.dat');
+disp(Mat,'Data in the file');
+
diff --git a/Tutorial3_Curve_fitting/Data/Tut3_Data.csv b/Tutorial3_Curve_fitting/Data/Tut3_Data.csv
new file mode 100644
index 0000000..fdaefcc
--- /dev/null
+++ b/Tutorial3_Curve_fitting/Data/Tut3_Data.csv
@@ -0,0 +1,13 @@
+1,0.53916873238049445
+2,0.17798153799600328
+3,0.12207292040943035
+4,0.083177346548027525
+5,0.055253064762310761
+6,0.027227945666794384
+7,0.075642331036411825
+8,0.044912538844899041
+9,0.078845397608171469
+10,0.058759243199075772
+11,0.034198514001116481
+12,0.069646888441571811
+13,0.012750355494905292
diff --git a/Tutorial3_Curve_fitting/Scilab_code/Tutorial3_curve_fitting.sce b/Tutorial3_Curve_fitting/Scilab_code/Tutorial3_curve_fitting.sce
new file mode 100644
index 0000000..57ba922
--- /dev/null
+++ b/Tutorial3_Curve_fitting/Scilab_code/Tutorial3_curve_fitting.sce
@@ -0,0 +1,38 @@
+//This function is for curve fitting using least-square
+
+clear
+clc
+
+//The function to be fitted
+exec fit_function.sci;
+//The error function
+exec errorfun.sci;
+
+//Read measured data
+Data = csvRead('/home/chayan/Documents/scilab-tutorials/Tutorial3_Curve_fitting/Data/Tut3_Data.csv')
+//Time stamp
+time = Data(:,1);
+//Measured output
+measured_data = Data(:,2);
+
+// weights for data fitting
+weight_matrix = ones(length(time),1);
+//weight_matrix = [2 2 2 2 1 1 1 1 -3 -3 -3 1 1]';
+
+
+// minimize f(x) = sum_i weight_matrix(i)^2 (weight_matrix(tm(i),a,b) - measured_data(i))^2
+// initial parameters guess
+initial_condition = [1 ; 1];
+
+//f is the function value at optimal x (xopt)
+[func_value_xopt,x_optimal] = leastsq(list(errorfun,time,measured_data,weight_matrix),initial_condition)
+
+error = errorfun(x_optimal,time,measured_data,weight_matrix)
+disp(error,'The error after least square approximation')
+
+
+// a small graphic
+fitted_data = fit_function(time, x_optimal);
+plot2d(time, [measured_data,fitted_data], [-1,2])
+legend(["measure points", "fitted curve"],[-1,2],"ur");
+xtitle("a simple fit with leastsq","time","data")
diff --git a/Tutorial3_Curve_fitting/Scilab_code/errorfun.sci b/Tutorial3_Curve_fitting/Scilab_code/errorfun.sci
new file mode 100644
index 0000000..0b93304
--- /dev/null
+++ b/Tutorial3_Curve_fitting/Scilab_code/errorfun.sci
@@ -0,0 +1,4 @@
+//A function to compute error between computed data and measured data
+function err = errorfun(x, time, measured_data, weight_matrix)
+ err = weight_matrix.*(fit_function(time, x) - measured_data )
+endfunction
diff --git a/Tutorial3_Curve_fitting/Scilab_code/fit_function.sci b/Tutorial3_Curve_fitting/Scilab_code/fit_function.sci
new file mode 100644
index 0000000..49240e8
--- /dev/null
+++ b/Tutorial3_Curve_fitting/Scilab_code/fit_function.sci
@@ -0,0 +1,6 @@
+//The function to be fitted in the measured data
+function y = fit_function(t, x)
+ a = x(1);
+ b = x(2);
+ y = a./(1+b.*t.*t)
+endfunction