Num. Math.—7

gyak fel. (elôzô óra)

Példa ||A(Subscript[||, 2]) definíció alapján közelítve, ill mint felt. optimalizálási probléma megoldása

A=({{12,-2,1},{-2,15,3},{1,-2,10}});

Táblázatot készítünk sok véletlen vektorokból és erre képezzük a maximumot! Ez jól közelíti a def-ban szereplô sup értéket.

T = Table[Table[Random[Real, {-1, 1}], {3}], {10^5}];

T[[1]]

Max[Map[Norm[A.#]/Norm[#]&,T]]

N[Norm[A]]

Feltételes szélsôéertékprobléma megoldásaként a norma.

NMaximize[{Norm[A.{x1,x2,x3}],x1^2+x2^2+x3^2==1},{x1,x2,x3}]

Norm[A]

Maximize[{Norm[A.{x1,x2,x3}],x1^2+x2^2+x3^2==1},{x1,x2,x3}]

GS expicit (n=3) [(Subscript[x, j])=((Subscript[x, j])^((m-1))),(Subscript[y, j])=((Subscript[x, j])^((m))) átnevezéssel]

-DiagonalMatrix[1/{a11,a22,a33}].({{0,a12,a13},{0,0,a23},{0,0,0}}.{y1,y2,y3}+{{0,0,0},{a21,0,0},{a31,a32,0}}.{x1,x2,x3}-{a14,a24,a34})

Jacobi explicit

%/.{y1->x1,y2->x2,y3->x3}

A=(({{1, -2+I, I}, {-2-I, 19, -3}, {-I, -3, 3}}));

Oljuk meg Ax=e1 GS iterációval (nem diag dom!)

PartJG[AV_]:={UpperTriangularize[AV,1],LowerTriangularize[AV,-1],DiagonalMatrix[Table[AV[[j,j]],{j,Length[AV]}]]}

Map[MatrixForm,PartJG[A]]

PA=PartJG[A]

b=Inverse[PA[[3]]+PA[[2]]].{1,0,0}

B=-Inverse[PA[[3]]+PA[[2]]].(PA[[1]])

Eigenvalues[B]//Abs//N

b

NestList[B.#+b&,b,50]//N

LinearSolve[A,{1,0,0}]

Valós gyökök közelítése (Newton, Newton-Raphson)

1

Legyen f kétszer diff. ∃x∈[a,b]: f[x]=0? pl folytonossági megfontolások
Alapötlet: legyen (Subscript[x, 0])egy jó közelítése a gyöknek és használjuk a deriváltat egy jobb közelítés megadására

f ' [(Subscript[x, n])]=(0-f[(Subscript[x, n])])/((Subscript[x, n+1])-(Subscript[x, n]))⟹ (Subscript[x, n+1])=(Subscript[x, n])+((-f [(Subscript[x, n])])/(f ' [(Subscript[x, n])]))

Példa. f[x]=Cos[x]-x^3

f[x_]:=Cos[x]-x^3;
NSolve[f[x]==0,x]

NSolve[x^2-5x+6==0,x]

Plot[f[x],{x,-5,5},PlotRange->{-10,10}]

FindRoot[f[x],{x,1}]

Options[FindRoot]

Most mi is megoldjuk iterációval! ⟶ Nest, NestList, NestWhile

Nest[F,x,3]

NestList[F,x,3]

A Newton-Raphson iteráció magfüggvénye

NewtonRaphsonStep[x_]:=N[x-f[x]/f'[x]];

Nest[NewtonRaphsonStep,1,3]

NestList[NewtonRaphsonStep,1,3]

h[x_]:=1/(2x+1);

Solve[h[x]==x,x]

N[NestList[h,-101/100,20]]

NestList[h,1,14]

Ezt egy kicsit nehezebb megérteni, mindenki próbálkozzon azért!

NestWhile[NewtonRaphsonStep,1,Unequal,2]

InputForm[%]

?MachinePrecision

Konvergencia gyorsaság?

f[x_]:=x^2-5

NewtonRaphsonStepb[x_] := N[x - f[x]/f'[x], 40];

NestList[NewtonRaphsonStepb,3,7]//TableForm

N[Sqrt[5],40]

Asz. hibakonstans ebben az  esetben

T=NestList[NewtonRaphsonStepb,3,7];

Table[(T[[m]]-Sqrt[5])/(T[[m-1]]-Sqrt[5])^2,{m,2,6}]

f''[x]/(2f'[x])/.x->Sqrt[5]//N

Feladat

Adjuk meg 3 tizedesjegy pontossággal, felhasználva a NewtonRaphsonStep fgv-t, az alábbi egyenletek összes zéróhelyét, melyek benne vanak a 0 3 sugarú környezetében.

eq1=(x^2)==5;
eq2=(x^3)==2;
eq3=4 x ((Cos[x])^2)+π/2==2x +Sin[2x];

A harmadik egyenlet esete (3 valós gyök [-3,3]-ban)

f[x_]:=4 x ((Cos[x])^2)+π/2-2x -Sin[2x];

Plot[f[x],{x,-3,3}]

{Nest[NewtonRaphsonStep,-2,4],Nest[NewtonRaphsonStep,1,4],Nest[NewtonRaphsonStep,2,4]}

Az elsô egyenlet
(f függvényt újra definiáljuk mert ez globális a NewtnRaphsonStep-re!)

f[x_]:=(x^2)-5

NewtonRaphsonStep[x]//Simplify

Négyzetgyökvonás

Nest[NewtonRaphsonStep,2,4]

N[(Sqrt[5])]

Most osztályozzuk a valós egyenes pontjait: 
A osztály) Konvergencia van és lim=Sqrt[5], 
B osztály) Konvergencia van és lim=-Sqrt[5], 
C osztály) Nincs konvergencia vagy az interációssorozat nem értelmezhetô

x0

TableForm[Table[Nest[NewtonRaphsonStep,x0,10],{x0,-5,5,1/4}]]

Projektmunka: NR Vizualizáció

Egy lépés viz.

Clear[f,g]

f[x_]:=x^2-5;

g[x_]:=x^3-2;

NewtonRaphsonVis[f_,x0_]:=Module[{x},Plot[f[x],{x,x0-1,x0+1},PlotStyle->{Thickness[.01],RGBColor[0,1,0]},AspectRatio->1,Epilog->{RGBColor[1,0,0],Line[{{x0,f[x0]},{-f[x0]/(D[f[x],x]/.x->x0)+x0,0}}],Line[{{x0,0},{x0,f[x0]}}],RGBColor[0,0,1],PointSize[.03],Point[{-f[x0]/(D[f[x],x]/.x->x0)+x0,0}]}]]

NewtonRaphsonVis[f,3]

Nest[NewtonRaphsonStep,3,1]

NewtonRaphsonVis[g,2]

Memo: f globális NR-re nézve!

f[x_]=g[x];

Nest[NewtonRaphsonStep,2,1]

Kitekintés: Többdimenziós NR

f[x,y]=0
g[x,y]=0

Vektoriteráció

F[{x_,y_}]:={x+1,2y}

NestList[F,{0,1},5]//TableForm

f1[x_,y_]=x^2+y^2-5;
f2[x_,y_]=x-y-1;

Solve[{f1[x,y]==0,f2[x,y]==0},{x,y}]

Meg tudjuk-e közelíteni hasonlóan a megoldásokat?

ContourPlot[{f1[x,y]==0,f2[x,y]==0},{x,-3,3},{y,-3,3},ImageSize->{200,200},GridLines->Automatic,ContourStyle->{{Blue,Thickness[.01]},{Red,Thickness[.01]}}]

Általánosítás 2 dimenzióra a Jacobi mátrix segítségével:

J[x_,y_]=(({{D[f1[x,y],x], D[f1[x,y],y]}, {D[f2[x,y],x], D[f2[x,y],y]}}))

J[1/2,1/2]

NewtonRaphsonStep2D[{x_,y_}]:=N[{x,y}-Inverse[J[x,y]].{f1[x,y],f2[x,y]}];

TableForm[NestList[NewtonRaphsonStep2D,{1/2,1/2},5]]

TableForm[NestList[NewtonRaphsonStep2D,{-3,-1/2},5]]