({{Číslo projektu, CZ.1.07/1.1.36/02.0066}, {Autor, Ladislav Kašpárek}, {Předmět, Programovací metody}, {Téma, Ukázka aproximace}, {Metodický pokyn, výkladový text s ukázkami, experimentální dokument}})

Ukázka aproximace

Tento dokument ukazuje reálnou úlohu-situaci, kdy máme za úkol najít křivku-charakteristiku unipolárního tranzistoru z naměřených hodnot. Ačkoliv se nabízí použití interpolačního polynomu, zjistíme, že křivky se moc vlní a tedy nedostačně vystihují charakteristiku fototranzistoru. Použití jiných funcí pro interpolaci je výpočetně náročné a výsledky nebudou o moc lepší.

Experimentujte se zadáním naměřených hodnot a interpolacemi.

Aproximaxe poskytuje další prostor pro hledání charakteristik při zachování rozumné přesnosti.

Fototranzistor

Unipolární fototranzistor při různých intenzitách osvětlení. Naměřeno:

(Subscript[P, 1])={{0,0},{1,5},{2,8.8},{3,12.1},{4,15.7},{5,18.8}}

(Subscript[P, 2])={{0,0},{1,53},{2,55},{3,63},{4,69},{5,75}}

(Subscript[P, 3])={{0,0},{1,193},{2,210},{3,230},{4,250},{5,260}}

(Subscript[P, 4])={{0,0},{1,250},{2,270},{3,290},{4,310},{5,330}}

(Subscript[P, 5])={{0,0},{1,350},{2,390},{3,420},{4,450},{5,470}}

ListPlot[Table[(Subscript[P, n]),{n,1,5}]]

Aproximace kvadratickým polynomem

Pokusme se množinu bodů (Subscript[P, 5]) aproximovat kvadratickou funkcí (upouštíme od požadavku, aby výsledná křivka procházela danými body a použijeme metodu nejmenších čtverců).

f=Fit[(Subscript[P, 5]),{1,x,(x^2)},x]

Show[{ListPlot[(Subscript[P, 5])],Plot[f,{x,0,5}]}]

Závěr: výsledek není příliš uspokojivý! Je nutné hledat “širší” bázi funkcí, která by se lépe přiblížila zadaným bodům.

Aproximace polynomem vyššího stupně

Přidejme polynomy vyšších stupňů, v ukázce je použit stupeň 7.

f=Fit[(Subscript[P, 5]),Table[(x^i),{i,0,7}],x]

Show[{ListPlot[(Subscript[P, 5])],Plot[f,{x,0,5}]}]

Nevhodná funkce pro náš případ! Sice se křiva přiblížila k bodům dostatečně blízko (nejmenší čtverce budou opravdu malé), ale z hlediska charakteristiky fototranzistoru je nevhodná (není pouze rostoucí a konkávní).

Hledání lepší báze funkcí – odmocniny

Rostoucí, hladký a konkávní průběh nabízí odmocniny.

f=Fit[(Subscript[P, 5]),{1,(Sqrt[x]),(x^(1/3))},x];Show[{Plot[f,{x,0,5}],ListPlot[(Subscript[P, 5])]}]

f=Fit[(Subscript[P, 5]),Prepend[Table[(x^(1/i)),{i,3}],1],x];?f;Show[{Plot[f,{x,0,5},AxesOrigin->{0,0}],ListPlot[(Subscript[P, 5])]}]

Experimentujte se “stupněm” odmocnin a najděte nejvhodnější:

Manipulate[f=Fit[(Subscript[P, 3]),Prepend[Table[(x^(1/i)),{i,S}],1],x];Show[{Plot[f,{x,0,5},AxesOrigin->{0,0},PlotRange->Automatic],ListPlot[(Subscript[P, 3])]}],{{S,3},0,7,1}]

Závěr: odmocninový polynom stupně 3

barva={Red,Blue,Magenta, Black,Green};Show[(f=Fit[(Subscript[P, #]),Prepend[Table[(x^(1/i)),{i,3}],1],x];Show[Plot[f,{x,0,5},AxesOrigin->{0,0},PlotRange->{0,500}, PlotStyle->barva[[#]],AxesLabel->{"V [(Subscript[U, ce])]","mA [(Subscript[I, c])]"}],ListPlot[(Subscript[P, #]),PlotRange->{0,500}, PlotStyle->{barva[[#]],PointSize[Medium]}]])&/@{1,2,3,4,5}]

(Fit[(Subscript[P, #]),Prepend[Table[(x^(1/i)),{i,3}],1],x])&/@{1,2,3,4,5}//TableForm

Shrnutí

Hledali jsme a nalezli velmi dobrou funkci pro charakteristiku fototranzistoru. Použili jsme aproximační metody (upustili jsme od požadavku, aby křivka procházela zadanými body, ale aby se jim co nejvíce přiblížila). Úvahy nás dovedli až k bázi funkcí založených na odmocninách.

Sbírka úloh

1/ Vymysli si 10 různých bodů v rovině a pak je aproximuj přímkou. Sleduj vlastnosti přímky (klesá, roste a jak strmě, najdi průsečíky s osami).

2/ Aproximuj přímkou následujících 100 bodů v rovině: SeedRandom[12345];Table[{n,(n/10)+RandomReal[{-2,2}]},{n,100}], popiš výsledek.

3/ Aproximuj následující body pomocí logaritmů: {{1,0},{2,1},{3,4},{5,7},{9,9}}. Experimentuj s mocninami logaritmické funkce nebo experimetuj se základem logaritmu. Sleduj jak se křivky mění.

4/ Aproximuj body: Table[{x,Sin[x]},{x,0,60,1.0}] pomocí funkce Sinus. Pokus se rekonstruovat původní funkci sinus, pomocí které byly body vygenerovány.

5/ Samostatně si nastuduj princip aproximační metody nejmenších čtverců, není nutné studovat její odvození a důkaz, ale pronikni do podstaty problému.

Zdroje

http://reference.wolfram.com/mathematica/ref/Fit.html
http://mathworld.wolfram.com/LeastSquaresFitting.html