1. Házi feladat

1. feladat 
Készítsen háromoszlopos táblázatot a normális eloszlásfüggvény értékeiből!

Formázás!

Stumpf Péter Pál

Plot[CDF[NormalDistribution[0,1],x],{x,0,3.85},AxesLabel->{"x","Φ(x)"}]

Plot[Tooltip[CDF[NormalDistribution[0,1],x]],{x,0,3.85},AxesLabel->TraditionalForm/@{x,Φ[x]}]

Plot[CDF[NormalDistribution[0,1],x],{x,0,3.85},AxesLabel->{Style[x,"Subsection"],Style[Φ[x],Blue,Italic,24]}]

CDF[NormalDistribution[0,1],0.28]

xv=Range[0.,1.25,.05]

CDF[NormalDistribution[0,1],xv]

CDF[NormalDistribution[0,1],#]&/@xv

c[eltolas_:0]:=CDF[NormalDistribution[0,1],#]&/@(xv+eltolas)

xv=Range[0.,1.25,.05];
TableForm[{Join[{xv},{CDF[NormalDistribution[0,1],xv]},{xv+1.3},{CDF[NormalDistribution[0,1],xv+1.3]},{xv+2.6},{CDF[NormalDistribution[0,1],xv+2.6]}]}, TableHeadings->{None,{"x","Φ(x)","x","Φ(x)","x","Φ(x)"}}]
(*Külön cellába!!!*)
Plot[CDF[NormalDistribution[0,1],x],{x,0,3.85},AxesLabel->{"x","Φ(x)"}]

TableForm[{Join[{xv},{c[]},{xv+1.3},{c[1.3]},{xv+2.6},{c[2.6]}]}, TableHeadings->{None,{"x","Φ(x)","x","Φ(x)","x","Φ(x)"}}]

Riffle[ConstantArray["x",3],ConstantArray["Φ(x)",3]]

Flatten[ConstantArray[{"x","Φ(x)"},3]]

Busai Ágota

Táblázat a normális eloszlásfüggvény értékeiből

A normaldist függvény egy 2 c oszlopú táblázatot állít elő, melynek páratlan oszlopaiban az x változó fut végig a [μ - 3 σ, μ + 3 σ] intervallumon h lépésközzel, a páros oszlopokban pedig az x-nek megfelelő Φ(x) szerepel.

Bemenő paraméterei a normális eloszlás μ várható értéke illetve σ szórása, az {x,Φ(x)} oszloppárok száma: c, a maximális lépésköz x-re: hmax. A függvény használja a k változót, ami a táblázat sorainak száma (fejléc nélkül), h az a legfeljebb hmax értékű lépésköz, mellyel egy teljes 2c×k-as táblázatot kapunk.

μ=0;σ=1;h=0.1;
DiscretePlot[N[CDF[NormalDistribution[μ,σ],i]],{i,-3 σ+μ,3 σ+μ,h}]
ListPlot[Table[{i,N[CDF[NormalDistribution[μ,σ],i]]},{i,-3 σ+μ,3 σ+μ,h}]]
ClearAll[μ,σ,h]

DiscretePlot[N[Evaluate[CDF[NormalDistribution[μ,σ],i]/.{μ->0,σ->1}]],Evaluate[{i,-3 σ+μ,3 σ+μ,h}/.{μ->0,σ->1,h->0.1}]]

normaldist[μ_,σ_,c_,hmax_]:=Module[{n,k=Ceiling[6 σ/hmax/c+1/c],h,i,j},h=6 σ/(k c-1);
n=k c;
{Grid[
Prepend[
Partition[
Riffle[
Table[N[μ+(i-(n-1)/2-1) h,5],{i,n}],
Table[N[CDF[NormalDistribution[μ,σ],μ+(i-(n-1)/2-1) h],{∞,8}],{i,n}]
]
,2 c],
Riffle[
ConstantArray["x",c],
ConstantArray["Φ(x)",c]
]
]
,Frame->All],
DiscretePlot[N[CDF[NormalDistribution[μ,σ],i]],{i,-3 σ+μ,3 σ+μ,h}]}
]

normaldist[0,1,3,.1]

Hajas Gábor

NormalPrintout[cols_:5,step_:0.05,max_:1,dig_:5]:=Module[{Φ,rows},
Φ[x_]=(((2 π))^(-1/2)) Integrate[Exp[-(t^2)/2],{t,-∞,x}];
rows=Ceiling[Ceiling[max/step]/cols];Grid[Prepend[Table[Flatten[Map[({#,NumberForm[Φ[#],dig]})&,Table[rows step (i-1)+step j,{i,1,cols}]]],{j,1,rows}],Flatten[Table[{"x","Φ[x]"},{cols}]]],Frame->All]]

NormalPrintout[]

NormalPrintout[5,0.03,1.3,6]

2. feladat
Ábrázolja az x↦x(x-1)(e^(-(x^2))) függvényt és végezzen részletes függvényvizsgálatot. Használja a D (az első és a második derivált kiszámítására) és a Solve függvényt a deriváltak nullahelyeinek meghatározására, az Options[Plot] utasítást az ábra szépítésére. (3 pont)

Stumpf Péter Pál

f[x_]:=x(x-1)(1/(E^(x^2)))

A függvény ábrázolása

Plot3D[(Sqrt[1-(x^2)-(y^2)]),{x,-2,2},{y,-2,2},PlotRange->Full]

Plot3D[(Sqrt[1-(x^2)-(y^2)]),{x,-2,2},{y,-2,2},PlotRange->All]

Plot3D[(Sqrt[1-(x^2)-(y^2)]),{x,-2,2},{y,-2,2},PlotRange->#]&/@{All,Full}

Manipulate[Plot[f[x],{x,a,b+10},PlotRange->Full,PlotStyle->{Red,Thick},Frame->False, AxesLabel->{"x","x(x-1)(1/(E^(x^2)))"},PlotLabel->{"(Subscript[x, min])=",a,"(Subscript[x, max])=",10+b}],{a,-10,-0.1},{b,0,-9.9}]

Zérushelyek

zerus=Solve[f[x]==0,x]

Column[Table[x0[i]=x/.zerus[[i]],{i,Length[zerus]}]]

Lokális szélsőértékhelyek

Egybeírás :)

extr=NSolve[D[f[x],{x,1}]==0,x]

loc=Solve[D[f[x],x]==0,x]

Im[#[[1,2]]]&/@loc

Im[#[[1,2]]]&/@loc//FullSimplify

Select[loc,FullSimplify[Im[#[[1,2]]]==0]&]

Hogyan lehetne átalakítani valósakká?

Column[Table[xext[i]=x/.extr[[i]],{i,Length[extr]}]]

Nem kell ez a globális értékadás!

Lokális szélsőértékek

Column[Table[xextv[i]=f[xext[i]],{i,Length[extr]}]]

Lokálisan:

f[x]/.loc//Simplify

f[x]/.loc//FullSimplify

f[x]/.loc//N

f[x]/.loc//N//Chop

Inflexiós helyek

lehetnek!

infl=NSolve[D[f[x],{x,2}]==0,x];
Column[Table[inflv[i]=x/.infl[[i]],{i,Length[infl]}]]

in=Solve[D[f[x],{x,2}]==0,x]

Select[in,FullSimplify[Im[#[[1,2]]]==0]&]

Select[in,Abs[Im[Chop[N[#[[1,2]]]]]]<(10^(-6))&]

f'''[x]/.in//N//Chop

3. feladat
Ábrázolja az (x,y)↦((x y)/((x^2)+(y^2))) függvényt alkalmas tartományon. Használja a Plot3D függvényt, esetleg további alkalmas ábrázolókat, a súgót, és az Options[Plot3D] utasítást. Mit mondhatunk a szélsőértékhelyekről? (2 pont)

Stumpf Péter Pál

h[x_,y_]:=((x y)/((x^2)+(y^2)))

Plot3D[h[x,y],{x,-2,2},{y,-2,2},PlotRange->Full,Mesh->None,PlotStyle->Directive[Yellow,Specularity[White,20],Opacity[0.9]],ExclusionsStyle->{None,Red},PlotLabel->Row[{"(Subscript[x, min])/(Subscript[y, min]) = ",a,"  (Subscript[x, max])/(Subscript[y, max]) = ",2+b}]]

Plot3D[h[x,y],{x,-2,2},{y,-2,2},PlotRange->Full,Mesh->None,PlotStyle->{Yellow,Specularity[White,20],Opacity[0.9]},ExclusionsStyle->{None,Red},PlotLabel->Row[{"(Subscript[x, min])/(Subscript[y, min]) = ",a,"  (Subscript[x, max])/(Subscript[y, max]) = ",2+b}]]

Manipulate[Plot3D[h[x,y],{x,a,b+2},{y,a,b+2},PlotRange->Full,Mesh->None,PlotStyle->Directive[Yellow,Specularity[White,20],Opacity[0.9]],ExclusionsStyle->{None,Red},PlotLabel->{"(Subscript[x, min])/(Subscript[y, min])=",a,"(Subscript[x, max])/(Subscript[y, max])=",2+b}],{a,-2,-0.01},{b,0,-1.99}]

A Hesse-mátrix determinánsa biztosan negatív szám, ezért a (x,y)↦((x y)/((x^2)+(y^2))) függvénynek nem létezik lokális szélsőértéke, csak nyeregpontja.

Kivéve a kritikus egyeneseket!
Kötőjel!

FullSimplify[D[h[x,y],{x,2}]D[h[x,y],{y,2}]-(((D[D[h[x,y],{x,1}],{y,1}]))^2)]

D[h[x,y],{{x,y},1}]

D[h[x,y],{{x,y},2}]//MatrixForm

Det[%]//Simplify

Polárkoordináta rendszerben

ParametricPlot3D[{r Cos[theta],r Sin[theta],Cos[theta]Sin[theta]},{theta,0,2Pi},{r,0.1,1}]

Hajas Gábor

f[x_,y_]:=x y/((x^2)+(y^2));
Plot3D[f[x,y],{x,-5,5},{y,-5,5},AspectRatio->0.5,Axes->True,AxesLabel->{x,y,f[x,y]},AxesOrigin->{0,0,-0.5},BoundaryStyle->Directive[Red,Thick],Boxed->False,ColorFunction->"BlueGreenYellow",Filling->False,Lighting->{{"Point",RGBColor[1,0.1,1],{6,6,10}}},Mesh->None]

4. feladat
Készítsünk valamilyen animációt!

Stumpf Péter Pál

Rezgő húr:

Animate[Plot[Sin[2 x] Cos[2 Pi t], {x, 0, 2 Pi}, Axes -> False, PlotStyle->{Red,Thick},PlotRange -> {{0, 2 Pi}, {-1.2, 1.2}},AspectRatio -> 1,Filling->Axis,FillingStyle -> {Red}], {t, 0, 1}, AnimationRunning -> True]

Ami az órán volt

Az N függvényről (Hajas Gábor, Lóczi Lajos, Cookbook)

N[Erf[4],20]

N[Erf[0.4],20]

Furcsa?

N[Erf[4/10],20]

N[Erf[0.4],{Infinity,20}]//Accuracy

Precision[2./3]//N
Accuracy[2./3]

N[2./3,20]

N[2.``20/3,20]

További furcsaságok az N függvénnyel kapcsolatban, a NumberForm rendesen megadja, amit szeretnék.

NumberForm[Erf[0.4],20]

N[Erf[0.4],20]

N[Erf[4/10],20]

Precision, Accuracy

Cookbookból

Table[{N[(10^n)+(1/7),10],N[(10^n)+(1/7),{Infinity,10}]},{n,0,5}]//TableForm

TableForm[Table[{x=(2^n)+N[(Sqrt[2]),20],Precision[x]},{n,0,10}],TableHeadings->{None,{"Result","Precision"}}]

David Goldberg: “What Every Computer Scientist Should Know About Floating - Point Arithmetic”

Függvények írásmódja

Hagyományos függvény

N[1/2,10]

Infix (vö. műveletek)

(1/2)~N~10

Posztfix (vö. román névelő, transzponálás)

(1/2)//N

Posztfix argumentummal

(1/2)//N[#,10]&

Prefix (vö. algebra)

N@(1/2)

Prefix argumentummal

N[#,10]&@(1/2)

Számoljon végig ugyanazzal a precízióval:

SetPrecision[20.+1/3 12.3/37.8+π,20]

prec=-Log[10,(d/x)];acc==Log[10,d];

Mit is jelent ez itt:

pa={Precision[2.],Accuracy[2.]}

pa[[1]]//N

d1=Solve[-Log[10,(d/2)]==pa[[1]],d]

d2=Solve[-Log[10,d]==pa[[2]],d]

(d/.d1)==(d/.d2)

Azonos bizonytalanságot kaptunk mindkettőből.

Lineáris algebra és pontosság

(Súgóból, az órán nem volt, olvasandó)

HilbertMatrix[4]//MatrixForm

HilbertMatrix[{4,6}]//MatrixForm

HilbertMatrix[4,WorkingPrecision->MachinePrecision]

HilbertMatrix[4,WorkingPrecision->20]

Timing[Inverse[HilbertMatrix[30]];]

Timing[Inverse[N[HilbertMatrix[30]]];]

Timing[Inverse[N[HilbertMatrix[30,WorkingPrecision->80],80]];]

h=HilbertMatrix[12,WorkingPrecision->MachinePrecision];

x=ConstantArray[1,{12}];
b=h.x;

xi=Inverse[h].b

xge=LinearSolve[h,b]

xch = LinearSolve[h,b,Method->"Cholesky"]

xsvd=LeastSquares[h,b]

Map[Norm,{x-xi,x-xge,x-xch,x-xsvd}]

Hyperlink["Egy gyönyörű Monthly-cikk a Hilbert-mátrixról","http://www.jstor.org/stable/pdfplus/2975779.pdf?acceptTC=true"]

Honnan ered a Hilbert-mátrix?

Házi feladatok

1. Határozzuk meg az alábbi függvény összes aszimptotáját:

ℝ\{-5,1}∋x↦((2(x^3)-3x+5)/((x-1)(x+5))).

2. Állítsuk elő minél többféle módon a Hilbert-mátrixokat!

3. Vizsgáljuk meg a Hilbert-mátrixok többi sajátértékének a mérettől való függését!

4. Lineáris algebra (haladó)

Írjunk olyan függvényt, amely egy lineáris egyenletrendszernek meghatározza együttható mátrixát és jobb oldalát, tehát így működik:

ToMatrix[{(Subscript[a, 11])(Subscript[x, 1])+(Subscript[a, 12])(Subscript[x, 2])==(Subscript[b, 1]),(Subscript[a, 21])(Subscript[x, 1])+(Subscript[a, 22])(Subscript[x, 2])==(Subscript[b, 2])}]

eredménye

{{{(Subscript[a, 11])+(Subscript[a, 12])},{(Subscript[a, 21]),(Subscript[a, 22])}},{(Subscript[b, 1]),(Subscript[b, 2])}}