0.2.0 • Published 10 years ago

linearleastsquarescurvefit v0.2.0

Weekly downloads
7
License
Apache-2.0
Repository
github
Last release
10 years ago

Moore-Penrose pseudoinverse

Linear least squares

var fit = require('linearleastsquarescurvefit');

// createFittingCurveUsingDataFromArrays(vectors, target, bounded, minValues, maxValues)
//	by default bounded = false

console.log(fit.createFittingCurveUsingDataFromArrays(
	[
		[1, 1, 1, 1, 1, 1, 1],
		[0, 1, 2, 3, 4, 5, 6],
		[0, 1, 4, 9, 16, 25, 36],
		[0, 1, 8, 27, 64, 125, 216]
	],
	[0, 1, 10, 100, 10, 1, 0]));

// Output: [-9.952380952380958,32.85714285714285,-5.476190476190406,-1.6653345369377348e-16]

// *****************************************************************************************

// createFittingCurveUsingFunctions(functions, x, y, bounded, minValues, maxValues)
//	by default bounded = false

console.log(fit.createFittingCurveUsingFunctions(
	[
        function (x) { return 1; }, 
	    function (x) { return x; }, 
		function (x) { return x * x; }, 
		function (x) { return x * x * x; }
	],
	[0, 1, 2, 3, 4, 5, 6], 
	[0, 1, 10, 100, 10, 1, 0])
); 

// Output: [-9.952380952380958,32.85714285714285,-5.476190476190406,-1.6653345369377348e-16]

console.log(fit.createFittingCurveUsingFunctions(
	[
		function (x) { return 1; }, 
		function (x) { return x; }, 
		function (x) { return x * x; }, 
		function (x) { return Math.log(x) }],
	[1, 2, 3, 4, 5, 6, 7, 8, 9], 
	[0, 1, 4, 10, 100, 118, 125, 129, 131])
); 

// Output: [-142.23863430119385,155.2255477329857,-7.834175796848122,-222.95737398530258]

// *****************************************************************************************

// example_data.csv
// 0.00386592;0.006645011;0.011108997;0.018063013;0.028565501;0.043936934;0.065728529; ...
// 3.73E-06;8.46E-06;1.87E-05;4.01E-05;8.36E-05;0.000169857;0.000335463;0.00064438; ...
// 2.23E-10;6.69E-10;1.95E-09;5.53E-09;1.52E-08;4.08E-08;1.06E-07;2.70E-07;6.66E-07; ...
// 8.32E-16;3.29E-15;1.27E-14;4.74E-14;1.72E-13;6.10E-13;2.10E-12;7.03E-12;2.29E-11; ...
// 0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2;2; ...	

// xxx; xxx; xxx; xxx; ... xxx      <-
// yyy; yyy; yyy; yyy; ... yyy      <-
// ...								<-	component data	
// zzz; zzz; zzz; zzz; ... zzz		<- 
// ttt; ttt; ttt; ttt; ... ttt		<-	target vector	

// createFittingCurveUsingDataFromCSVFile(
//		dataPath, 
//		callback, 
//		bounded, 
//		minValue, 
//		maxValue, 
//		delimiterChar)
//	by default bounded = false,  delimiterChar = ';' 

fit.createFittingCurveUsingDataFromCSVFile("example_data.csv", 
    function (result) { 
	console.log(result); 
	}, true, 0, 1, ';'
);

// Output: [0,1,1,0]

// *****************************************************************************************
0.2.0

10 years ago

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago

0.0.17

10 years ago

0.0.16

10 years ago

0.0.15

10 years ago

0.0.14

10 years ago

0.0.13

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago