summaryrefslogtreecommitdiff
path: root/Tutorial03-Curve_fitting/Scilab_code/Tutorial3_curve_fitting.sce
blob: a289ca3f1e2355f024a03c16fbd5f0b0a77eed29 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//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('../Data/Tut3_Data.csv')
//Time stamp
time = Data(:,1);
//Measured output
measured_data = Data(:,2);

// initial parameters guess
initial_condition = [1 ; 1];

//Call least square function, 
//Output is function value (func_value_xopt) at optimal coefficients (x_optimal))
[func_value_xopt,coeff_optimal] = leastsq(list(errorfun,time,measured_data),initial_condition)

error = errorfun(coeff_optimal,time,measured_data)
disp(error,'The error after least square approximation')


// Plot of measured data and fitted data versus time
// a small graphic 
fit_time = 0:0.01:15;
fitted_data = fit_function(fit_time, coeff_optimal);
plot2d(time, measured_data, -1)
plot2d(fit_time, fitted_data, 2)
legend(["measure points", "fitted curve"],[-1,2],"ur");
xtitle("a simple fit with leastsq","time","data")