Документ взят из кэша поисковой машины. Адрес оригинального документа : http://hea-www.harvard.edu/~dburke/perl-slang/examples/sherpa_using_perl
Дата изменения: Mon Jan 10 02:51:30 2005
Дата индексирования: Tue Oct 2 08:57:17 2012
Кодировка:

Поисковые слова: http astrokuban.info astrokuban
#
# Do everything from Perl (requires PDL)
#

use strict;
use PDL;
use Inline SLang => 'require ("sherpa");';

print "Now in perl\n";

# The sin(x) term is just to make sure the values
# do not exactly match a polynomial.
#
print "Setting up a model\n";
my $x = 0.1 * (1+2*sequence(40));
my $y = -10.5 - 2.5 * $x + 4 * $x**2 + sin($x);
my $e = abs($y) * 0.1;

set_axes (1,$x);
set_data (1,$y);
set_errors (1,$e);

print "Setting up a model\n";
create_model ("polynom1d","ptest");
set_par ("ptest.c0", "thawed", 1);
set_par ("ptest.c1", "thawed", 1);
set_par ("ptest.c2", "thawed", 1);
set_source_expr (1, "ptest");

print "Fitting the model\n";
run_fit (1);
my $res = get_par ("ptest");

print "Fit results:\n";
foreach my $par ( @{$res} ) {
printf " parameter: %-15s ", $$par{name};
if ( $$par{frozen} ) {
printf "[frozen at %g]\n", $$par{value};
} else {
printf "value = %g\n", $$par{value};
}
}