Polynomial regression: Difference between revisions

Racket
(Added BBC BASIC)
(Racket)
Line 687:
</lang>
 
=={{header|Racket}}==
<lang racket>
#lang racket
(require math plot)
 
(define xs '(0 1 2 3 4 5 6 7 8 9 10))
(define ys '(1 6 17 34 57 86 121 162 209 262 321))
 
(define (fit x y n)
(define Y (->col-matrix y))
(define V (vandermonde-matrix x (+ n 1)))
(define VT (matrix-transpose V))
(matrix->vector (matrix-solve (matrix* VT V) (matrix* VT Y))))
(define ((poly v) x)
(for/sum ([c v] [i (in-naturals)])
(* c (expt x i))))
 
(plot (list (points (map vector xs ys))
(function (poly (fit xs ys 2)))))
</lang>
Output:
<lang racket>
[[File:polyreg-racket.png]]
</lang>
 
=={{header|Ruby}}==
Anonymous user