Polynomial regression: Difference between revisions
Content added Content deleted
(Added BBC BASIC) |
(Racket) |
||
Line 687: | Line 687: | ||
</lang> |
</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}}== |
=={{header|Ruby}}== |