[Programación] Porque no funciona este codigo perl...

Horacio Castellini programacion@lugro.org.ar
Tue, 18 Sep 2007 15:40:59 -0300


Hola, necesito hacer un ajuste con polinomio cúbico de una serie de 
datos,, lo que se me ocurrió usar es el paquete PDL del PERL... ahora 
bien tomando este código como ejemplo... (funciona) para el uso de la 
subrutina fitpoly1d...
-----------------------------------------
use PDL::LiteF;
use PDL::Fit::Polynomial;
$x = sequence(20)-10; #<---------- Que carajo hace acá???
$y = 30-2*$x+3*$x**2-2*$x**3;
$rand = pdl qw/65.735917 -40.510143 -122.07767 -19.591344 -139.76362
106.44639 -0.30094068 -5.3129683  49.815455  97.247868 -9.3130775
19.585472  8.5260268 -194.49596  73.822799  25.628967  133.36015 
-2.6611465 9.0335632 -0.82946383/;
$y += $rand;
$yfit = fitpoly1d($x,$y,4);
---------------------------------------------------

Como no entiendo que define $x = sequence(20)-10; intenté probar de una 
manera más entendible para mi... (que no funca...!!)

---------------------------------------------------
use PDL::LiteF;
use PDL::Fit::Polynomial;

for ($i=0;$i<20;$i++){
$x[$i]=$i-10;
$y[$i] = 30-2*$x[$i]+3*$x[$i]**2-2*$x[$i]**3;
}

$yfit = fitpoly1d($x,$y,4);

for($i=0;$i<20;$i++){
     print $x[$i]." ".$y[$i]."\n";
}
----------------------------------------------------

Me da el error...
Can't call method "average" without a package or object reference at 
/usr/local/lib/perl/5.8.8/PDL/Fit/Polynomial.pm line 93.

Eso me indica que no estoy usando bien la sintaxis... pues en el "usage" 
dice...

=for usage

  Usage: ($yfit, [$coeffs]) = fitpoly1d [$xdata], $data, $order, 
[Options...]

=for signature

Signature: (x(n); y(n); [o]yfit(n); [o]coeffs(order))

donde supongo que $x, $y son vectores o que son...????

Alguna idea...?

	

	
		
__________________________________________________ 
Preguntá. Respondé. Descubrí. 
Todo lo que querías saber, y lo que ni imaginabas, 
está en Yahoo! Respuestas (Beta). 
¡Probalo ya! 
http://www.yahoo.com.ar/respuestas