Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
14
Task/Polynomial-regression/Perl/polynomial-regression-1.pl
Normal file
14
Task/Polynomial-regression/Perl/polynomial-regression-1.pl
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
use strict;
|
||||
use warnings;
|
||||
use Statistics::Regression;
|
||||
|
||||
my @x = <0 1 2 3 4 5 6 7 8 9 10>;
|
||||
my @y = <1 6 17 34 57 86 121 162 209 262 321>;
|
||||
|
||||
my @model = ('const', 'X', 'X**2');
|
||||
|
||||
my $reg = Statistics::Regression->new( '', [@model] );
|
||||
$reg->include( $y[$_], [ 1.0, $x[$_], $x[$_]**2 ]) for 0..@y-1;
|
||||
my @coeff = $reg->theta();
|
||||
|
||||
printf "%-6s %8.3f\n", $model[$_], $coeff[$_] for 0..@model-1;
|
||||
25
Task/Polynomial-regression/Perl/polynomial-regression-2.pl
Normal file
25
Task/Polynomial-regression/Perl/polynomial-regression-2.pl
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#!/usr/bin/perl -w
|
||||
use strict;
|
||||
|
||||
use PDL;
|
||||
use PDL::Math;
|
||||
use PDL::Fit::Polynomial;
|
||||
|
||||
my $x = float [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
|
||||
my $y = float [1, 6, 17, 34, 57, 86, 121, 162, 209, 262, 321];
|
||||
# above will output: 3.00000037788248 * $x**2 + 1.99999750988868 * $x + 1.00000180493936
|
||||
|
||||
# $x = float [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
|
||||
# $y = float [ 2.7, 2.8, 31.4, 38.1, 58.0, 76.2, 100.5, 130.0, 149.3, 180.0];
|
||||
# above correctly returns: " 1.08484845125187 * $x**2 + 10.3551513321297 * $x-0.616363852007752 "
|
||||
|
||||
my ($yfit, $coeffs) = fitpoly1d $x, $y, 3; # 3rd degree
|
||||
|
||||
foreach (reverse(0..$coeffs->dim(0)-1)) {
|
||||
print " +" unless(($coeffs->at($_) <0) || $_==$coeffs->dim(0)-1); # let the unary minus replace the + operator
|
||||
print " ";
|
||||
print $coeffs->at($_);
|
||||
print " * \$x" if($_);
|
||||
print "**$_" if($_>1);
|
||||
print "\n" unless($_)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue