Analiza matematyczna 1
Zajęcia nr 2

Wykres punktowy

?ListPlot

Lista liczb:

punkty:={1.2,4.4,5.,2.4,3.3,2.4,7.7,10.2,9.8}

ListPlot[punkty,PlotStyle->PointSize[0.02],
PlotLabel->"Wykres punktowy",AxesLabel->{"x","y"}]

Argumenty to kolejne cyfry 1, 2, 3, ...

Aby podać wartości x-ów i y-ów trzeba stworzyc tablicę par liczb:

wspolrzedne:={{0,1.2},{0.2,4.4},{0.4,5.},{0.7,2.4},{1.2,3.3},{2.5,2.4},{3.5,7.7},{5.1,10.2}}

ListPlot[wspolrzedne,PlotStyle->PointSize[0.02],
PlotLabel->"Wykres punktowy",AxesLabel->{"x","y"}]

Punkty połączone prostymi

ListPlot[wspolrzedne,PlotStyle->PointSize[0.02],
PlotLabel->"ListPlot, Joined->True",AxesLabel->{"x","y"},Joined->True
]

ListLinePlot[wspolrzedne,
PlotLabel->"ListLinePlot",AxesLabel->{"x","y"}]

?InterpolationOrder

{ListLinePlot[wspolrzedne, InterpolationOrder->0],ListLinePlot[wspolrzedne, InterpolationOrder->1],
ListLinePlot[wspolrzedne, InterpolationOrder->2]}

Krzywa regresji

?LinearModelFit

LinearModelFit[{(Subscript[y, 1]),(Subscript[y, 2]),...},{(Subscript[f, 1]),(Subscript[f, 2]),...},x] znajduje parametry dopasowania funkcji (Subscript[β, o])  + (Subscript[β, 1]) (Subscript[f, 1])  +(Subscript[β, 2]) (Subscript[f, 2])  +... do danych (Subscript[y, i])

Chcemy znaleźć parametry prostej regresji postaci   (Subscript[β, o]) + (Subscript[β, 1]) x

LMF=LinearModelFit[wspolrzedne,x ,x]

LMF[x]

LMF["ParameterTable"]

Show[
ListPlot[wspolrzedne,PlotStyle->PointSize[0.02]],
Plot[LMF[x],{x,0,5}],
PlotLabel->"Regresja liniowa",AxesLabel->{"x","y"}
]

?NonlinearModelFit

NonlinearModelFit[{(Subscript[y, 1]),(Subscript[y, 2]),...},form,{(Subscript[β, 1]),...},x] znajduje parametry dopasowania funkcji form zaleznej od parametrow { (Subscript[β, 1]) ,(Subscript[β, 2]) ,...} do danych (Subscript[y, i])

NMF=NonlinearModelFit[wspolrzedne,a+b x+c x^2,{a,b,c},x]

NMF[x]

Show[
ListPlot[wspolrzedne,PlotStyle->PointSize[0.02]],
Plot[NMF[x],{x,0,5}],
PlotLabel->"Regresja a+b x+c x^2",AxesLabel->{"x","y"}
]

NMF["ParameterTable"]

Słupki błędów

Trzeba zaladowac pakiet  ErrorBarPlots`

Needs["ErrorBarPlots`"]

?ErrorBar

Wspolrzedne z slupkami bledow

wspolrzedneError:={
{{0,1.2},ErrorBar[0.3,0.5]},
{{0.2,4.4},ErrorBar[0.5,0.7]},
{{0.7,2.4},ErrorBar[0.3,0.5]},
{{1.2,3.3},ErrorBar[0.4,0.9]},
{{2.5,2.4},ErrorBar[0.3,0.8]},
{{3.5,7.7},ErrorBar[0.2,0.6]},
{{5.1,10.2},ErrorBar[0.2,0.5]}}

ErrorListPlot[wspolrzedneError,
PlotLabel->"Słupki błędów",AxesLabel->{"x","y"}]

PlotMarkers

Znaczniki danych

ListPlot[{wspolrzedne,punkty,{1,4,6,3,7,3}},
PlotLabel->"3 serie danych",AxesLabel->{"x","y"},PlotLegends->{"pierwszy","drugi","trzeci"},
PlotStyle->PointSize[0.03]]

ListPlot[{wspolrzedne,punkty,{1,4,6,3,7,3}},
PlotLabel->"3 serie danych. PlotMarkers->Automatic",
AxesLabel->{"x","y"},PlotLegends->{"pierwszy","drugi","trzeci"},
PlotMarkers->{Automatic,15}]

Własny wybór znaczniów danych

▲  \[ FilledUpTriangle ]  (bez spacji)
■  \[ FilledSquare ]
●  \[ FilledCircle ]

ListPlot[{wspolrzedne,punkty,{1,4,6,3,7,3}},PlotLegends->{"pierwszy","drugi","trzeci"},
PlotLabel->"Własny wybór znaczniów danych",AxesLabel->{"x","y"},
PlotMarkers->{"▲","■","●"}, 
PlotStyle->{Green,Blue,Black}
]

Własny wybór znaczniów danych  - Graphics

?Graphics

ListPlot[{wspolrzedne,punkty,{1,4,6,3,7,3}},PlotLegends->{"pierwszy","drugi","trzeci"},
PlotLabel->"Własny wybór znaczniów danych",AxesLabel->{"x","y"},
PlotMarkers->{
{Graphics[{Green,Polygon[{{1,0},{0,Sqrt[3]},{-1,0}}]}],0.04},
{Graphics[{Blue,Rectangle[]}],0.04},
{Graphics[{Black,Disk[]}],0.04}
}
]

trojkat=Graphics[{Green,Polygon[{{1,0},{0,Sqrt[3]},{-1,0}}]}]
kwadrat=Graphics[{Blue,Rectangle[]}]
kolo=Graphics[{Black,Disk[]}]
okrag=Graphics[{Red,Circle[]}]

pb=Graphics[{Thickness[0.02],
Red,Disk[{0,0},1,{0,Pi}],
Black,Circle[{0,0},1],
White,Disk[{-0.4,0.1},0.2],
White,Disk[{0.4,0.1},0.2],
Black,Circle[{-0.4,0.1},0.2],
Black,Circle[{0.4,0.1},0.2]
}]

Generowanie list

?Table

Table[n^2,{n,6}]

Table[n^2,{n,0,6}]

Table[n^2,{n,0,6,2}]

Table[{2n,Sin[n]},{n,0,4}]

ListPlot[Table[{Cos[n],Sin[2n]},{n,1,360}],
PlotLabel->"{Cos[n],Sin[2n]}",AxesLabel->{"x","y"}]

Zadanie

1. Narysować wykres punktowy dla listy par liczb {(Subscript[x, i]),(Subscript[y, i])} takich że
(Subscript[x, i]) to cyfry od 0 do 30 co 2
(Subscript[y, i])  to liczby postaci log(3 (Subscript[x, i]) + 7) + (Subscript[rand, i])
 gdzie (Subscript[rand, i]) to liczba losowa z przedzialu od 0  do 0.5 ( RandomReal[{(Subscript[y, min]),(Subscript[y, max])}] )
2. Niech znaczniki to jakiś stworzony przez siebie znaczek przy użyciu Graphics
3. Dodać funkcję regresji logarytmicznej log(a+b x)
4. Dodać tytul i nazwy osi

?RandomReal

RandomReal[{0,0.5}]