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}}== |