Zápis a čtení dat, prokládání funkcí
Vytvořme následující posloupnost(i) dat.
> | data_w := [[1,2.2,3.8],[2.7,3,5.6],[1,3.1,7]]; |
Takto je lze zapsat na obrazovku
> | writedata(terminal,data_w); |
1 2.2 3.8
2.7 3 5.6
1 3.1 7
a takto do souboru.
> | writedata(cat(dir,"data.txt"),data_w); |
Podívejte se na disk do příslušného adresáře, jak jsou data v textovém souboru interpretovány.
Takto lze načíst první sloupec dat.
> | readdata(cat(dir,"data.txt")); |
Takto načteme všecny tři sloupce a zároveň uložíme do proměnné data_r1 .
> | data_r1:=readdata(cat(dir,"data.txt"),3); |
Takto vybereme z dat jen celá čísla.
> | readdata(cat(dir,"data.txt"),integer,3); |
Vyberme nyní z dat dva sloupce
> | data_r2:=readdata(cat(dir,"data.txt"),2); |
a "přeskládejme je tak, aby byla vhodná pro vykreslení.
> | data_s:=[seq([data_r1[1][i],data_r1[3][i]],i=1..nops(data_r1[1]))]; |
Nyní je můžeme vykreslit.
> | plot(data_s); |
Zkusme dále uvedaná data proložit křivkou.
Načtěme nejdříve potřbnou knihovnu pro statistické výpočty.
> | with(stats); |
Pro následnou funkci fit musíme nejdříve data opět "přeskládat".
> | data_fit:=[seq([data_s[1][i],data_s[2][i],data_s[3][i]],i=1..nops(data_s[1]))]; |
Nyní lze použít funkci fit pro výpočet koeficientů zadané funkce (v našem případě kvadrativké) metodou nejmenších čtverů tak, aby byla proložením zadaných bodů.
> | prolozeni:=fit[leastsquare[[x,y], y=a*x^2+b*x+c]]( data_fit); |
Vykresme nuní body i vypočtenou funkci. Nadefinujme funkce plot a pro jejich vykreslení do stejných souřadnic použijeme funkci display z knihovny plots .
> | plot1:=plot(data_s,style=point,color=black,symbolsize=20): |
> | plot2:=plot(rhs(prolozeni),x=1..4): |
> | plots[display](plot1,plot2); |