Polynomial regression: Difference between revisions

Content added Content deleted
m (Added the Sidef language)
Line 952: Line 952:
{{out}}
{{out}}
<pre>[1.00000000000018, 2.00000000000011, 3.00000000000001]</pre>
<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}}==
=={{header|Tcl}}==