Polynomial regression: Difference between revisions

m
Added the Sidef language
m (Added the Sidef language)
Line 952:
{{out}}
<pre>[1.00000000000018, 2.00000000000011, 3.00000000000001]</pre>
 
=={{header|Sidef}}==
{{trans|Ruby}}
<lang ruby>var Matrix = require('Math::Matrix');
 
func regress(x, y, degree) {
var x_data = x.map { |xi| (0..degree).map { |pow| (xi**pow).to_f } };
 
var mx = Matrix.new(x_data...);
var my = Matrix.new(y.map{[_]}...);
 
mx.transpose.multiply(mx).invert.multiply(mx.transpose).multiply(my).transpose;
}
 
var betas = regress(
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[1, 6, 17, 34, 57, 86, 121, 162, 209, 262, 321],
2
);
 
betas.print;</lang>
{{out}}
<pre>
1.00000 2.00000 3.00000
</pre>
 
=={{header|Tcl}}==
2,747

edits