[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