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]];

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"));

[1., 2.7, 1.]

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);

data_r1 := [[1., 2.2, 3.8], [2.7, 3., 5.6], [1., 3.1, 7.]]

Takto vybereme z dat jen celá čísla.

>    readdata(cat(dir,"data.txt"),integer,3);

[[1, 2], [2], [1, 3]]

Vyberme nyní z dat dva sloupce

>    data_r2:=readdata(cat(dir,"data.txt"),2);

data_r2 := [[1., 2.2], [2.7, 3.], [1., 3.1]]

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]))];

data_s := [[1., 1.], [2.2, 3.1], [3.8, 7.]]

Nyní je můžeme vykreslit.

>    plot(data_s);

[Maple Plot]

Zkusme dále uvedaná data proložit křivkou.

Načtěme nejdříve potřbnou knihovnu pro statistické výpočty.

>    with(stats);

[anova, describe, fit, importdata, random, statevalf, statplots, transform]

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]))];

data_fit := [[1., 2.2, 3.8], [1., 3.1, 7.]]

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);

prolozeni := y = .2455357143*x^2+.9642857143*x-.2098214286

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);

[Maple Plot]