posloupnost_funkci-stejnomerna_konvergence.mws

Nekonecne rady s programem Maple

Stejnomerna konvergence posloupnosti funkci

Karel Srot, xsrot@math.muni.cz

>   

vypocet metodou "krok za krokem"

Tato cast ilustruje overeni stejnomerne konvergence posloupnosti funkci metodou hledani lokalnich extremu. Vypocet sleduje postup provadeny pri rucnim vypoctu.

>   

Priklad 1:

Vysetrete, zda posloupnost { x^n-x^(n+1) } na intervalu [0,1] stejnomerne konverguje k funkci   y=0 .

>    restart;

>   

definujeme posloupnost funkci a dale take funkci predstavujici uvazovanou limitu.

>    fn:=(n,x)->x^n-x^(n+1);

fn := (n, x) -> x^n-x^(n+1)

>    lim_fn:=x->0;

lim_fn := x -> 0

sestrojime animaci funkcni posloupnosti, abychom ziskali predstavu o zpusobu konvergence

>    plots[animate](fn(i,x),x=0..1,i=1..20, frames=20, thickness=2);

[Maple Plot]

>   

Budeme hledat extremy rozdilu  fn(x,n) - lim_fn(x). V krajnich bodech intervalu je evidentne rozdil roven 0.

>    rozdil:=(n,x)->fn(n,x)-lim_fn(x);

rozdil := (n, x) -> fn(n,x)-lim_fn(x)

>    diff(rozdil(n,x),x);

x^n*n/x-x^(n+1)*(n+1)/x

>    solve(%=0,x);

n/(n+1)

rozdil tedy nabyva extremu (lokalniho maxima, jak je patrne z animace) v bode

>    ext:=%;

ext := n/(n+1)

urcime limitu funkcni hodnoty extremu pro   n  jdouci k nekonecnu

>    limit(rozdil(n,ext),n=infinity);

0

Pri n  jdoucim do nekonecna se teda hodnota rozdilu (chyby) blizi k 0. Zadana posloupnost funkci tedy stejnomerne konverguje k funkci y=0 .

>   

Priklad 2:

Vysetrete, zda posloupnost { x^n-x^(2*n) } na intervalu [0,1] stejnomerne konverguje k funkci   y=0 .

>    fn:=(n,x)->x^n-x^(2*n);

fn := (n, x) -> x^n-x^(2*n)

>    lim_fn:=x->0;

lim_fn := x -> 0

>    plots[animate](fn(i,x),x=0..1,i=1..20, frames=20, numpoints=200, thickness=2);

[Maple Plot]

Budeme postupovat stejne jako v predchozim prikladu.

>    rozdil:=(n,x)->fn(n,x)-lim_fn(x);

rozdil := (n, x) -> fn(n,x)-lim_fn(x)

>    diff(rozdil(n,x),x);

x^n*n/x-2*x^(2*n)*n/x

>    solve(%=0,x);

exp(-ln(2)/n)

>    ext:=%;

ext := exp(-ln(2)/n)

>    limit(rozdil(n,ext),n=infinity);

1/4

Hodnota extremu tedy se vzrustajicim n  neklesa k 0 a proto konvergence neni stejnomerna.

>   

Priklad 3:

Vysetrete, zda nize definovana posloupnost funkci konverguje stejnomerne na intervalu [0,1].

>    fn:=(n,x)->x*n/(1+n+x);

fn := (n, x) -> x*n/(1+n+x)

spocitame limitu posloupnosti

>    limit(fn(n,x),n=infinity);

x

>    lim_fn:=x->x;

lim_fn := x -> x

>    rozdil:=(n,x)->fn(n,x)-lim_fn(x);

rozdil := (n, x) -> fn(n,x)-lim_fn(x)

>    diff(rozdil(n,x),x);

n/(1+n+x)-x*n/(1+n+x)^2-1

>    solve(%=0,x);

-n-1+(n^2+n)^(1/2), -n-1-(n^2+n)^(1/2)

>    ext:=%;

ext := -n-1+(n^2+n)^(1/2), -n-1-(n^2+n)^(1/2)

Nalezli jsme dva body, ve kterych funkce nabyva extremu. Overime, zda tyto body (pri n  jdoucim do nekonecna) spadaji do vysetrovaneho intervalu

>    limit(ext[1],n=infinity);

-1/2

>    limit(ext[2],n=infinity);

-infinity

Ani jedna limita nespada do vysetrovaneho intervalu. Overime tedy pouze krajni body intervalu.

>    limit(rozdil(n,0),n=infinity);

0

>    limit(rozdil(n,1),n=infinity);

0

Posloupnost konverguje stejnomerne.

>   

vypocet pomoci procedury TestSequenceUniformConvergence

Zapisnik ilustruje pouziti procedury TestSequenceUniformConvergence pro overovani stejnomerne konvergence posloupnosti funkci.

>   

>    restart;

>    currentdir("c:/devel/maple/phd/export/"):

>    read "posl_a_rady_fci_proc.mpl":

>   

>    infolevel[TestSequenceUniformConvergence]:=2:

>   

Priklad 1:

Overte, zda uvedena funkcni posloupnost konverguje stejnomerne na intervalu [-3,3]

>    fn:=(n,x)->x+x/(1+x^2*n^2);

fn := (n, x) -> x+x/(1+x^2*n^2)

>   

>    g:=[seq(plot(fn(i,x),x=-3..3),i=0..9)]:

>    plots[display](g,insequence=true,scaling=constrained);

[Maple Plot]

>    TestSequenceUniformConvergence(fn(n,x), n, x=-3..3);

TestSequenceUniformConvergence:   Using the limit function:   x

TestSequenceUniformConvergence:   Error function:   x/(1+x^2*n^2)

TestSequenceUniformConvergence:   Extrema points:   [-3, 3, -1/n, 1/n]

TestSequenceUniformConvergence:   Error value at extrema points:   [-3/(1+9*n^2), 3/(1+9*n^2), -1/2/n, 1/2/n]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

Limitou posloupnosti je tedy funkce y=x  a posloupnost funkci konverguje stejnomerne.

>   

Priklad 2:

>    aN:=sqrt(x^2+(1/n));

aN := (x^2+1/n)^(1/2)

>    TestSequenceUniformConvergence(aN, n, x=0..1);

TestSequenceUniformConvergence:   Using the limit function:   x

TestSequenceUniformConvergence:   Error function:   (x^2+1/n)^(1/2)-x

TestSequenceUniformConvergence:   Extrema points:   [0, 1]

TestSequenceUniformConvergence:   Error value at extrema points:   [(1/n)^(1/2), (1+1/n)^(1/2)-1]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

Priklad 3:

>    fn:=(n,x)->sin(n*x)/(n+1);

fn := (n, x) -> sin(n*x)/(n+1)

>    g:=[seq(plot(fn(i,x),x=-5..5),i=1..10)]:

>    plots[display](g,insequence=true,scaling=constrained);

[Maple Plot]

>    TestSequenceUniformConvergence(fn(n,x), n, x=-Pi..Pi);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   sin(x*n)/(n+1)

TestSequenceUniformConvergence:   Extrema points:   [-Pi, Pi, 1/2*Pi/n]

TestSequenceUniformConvergence:   Error value at extrema points:   [-sin(Pi*n)/(n+1), sin(Pi*n)/(n+1), 1/(n+1)]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

>   

Priklad 4:

>    aN:=x^n;

aN := x^n

>    TestSequenceUniformConvergence(aN, n, x=0..1);

TestSequenceUniformConvergence:   Could not find the limit function

FAIL

predame procedure uvazovanou limitu posloupnosti a nechame proceduru overit stejnomernou konvergenci

>    TestSequenceUniformConvergence(aN, n, x=0..1, piecewise(x<1,0,1));

TestSequenceUniformConvergence:   Using the limit function:   piecewise(x < 1,0,1)

TestSequenceUniformConvergence:   Error function:   piecewise(x < 1,x^n,1 <= x,x^n-1)

TestSequenceUniformConvergence:   Derivative not defined at points:   [0, 1]

TestSequenceUniformConvergence:   Extrema points:   [0, 1, 0, 1]

TestSequenceUniformConvergence:   Error value at extrema points:   [0, 0, 0, 0]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

>   

Priklad 5:

>    fn:=(n,x)->exp(n*(x-1));

fn := (n, x) -> exp(n*(x-1))

>    g:=[seq(plot(fn(i,x),x=-infinity..1.1),i=1..20)]:

>    plots[display](g,insequence=true,scaling=constrained);

[Maple Plot]

>    TestSequenceUniformConvergence(fn(n,x), n, x=-infinity..0.9,0);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   exp(n*(-1+x))

TestSequenceUniformConvergence:   Extrema points:   [-infinity, .9]

TestSequenceUniformConvergence:   Error value at extrema points:   [exp(-n*infinity), exp(-.1*n)]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

Test, je-li limitni funkci funkce y=0 i na intervalu [0,1].

>    TestSequenceUniformConvergence(fn(n,x), n, x=0..1, 0);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   exp(n*(-1+x))

TestSequenceUniformConvergence:   Extrema points:   [0, 1]

TestSequenceUniformConvergence:   Error value at extrema points:   [exp(-n), 1]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   1

false

animace zachycujici posloupnost na  intervalu [0,1]

>    g2:=plotStripAroundFunction(0,x=0..1,0.1,color=yellow):

>    g:=[seq(plots[display](plot(fn(i,x),x=0..1),g2),i=1..20)]:

>    plots[display](g,insequence=true,scaling=constrained);

[Maple Plot]

>   

Priklad 6:

>   

>    fn:=(n,x)->x^n-x^(n+1);

fn := (n, x) -> x^n-x^(n+1)

>    TestSequenceUniformConvergence(fn(n,x), n, x=0..1, 0);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   x^n-x^(n+1)

TestSequenceUniformConvergence:   Extrema points:   [0, 1, n/(n+1)]

TestSequenceUniformConvergence:   Error value at extrema points:   [0, 0, (n/(n+1))^n-(n/(n+1))^(n+1)]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

>   

>    g1:=plotStripAroundFunction(0,x=0..1,1/10,color=yellow):

>    graf:=n->plots[display](plot(fn(i,x),x=0..1,thickness=2),g1):

>    plots[display](seq(graf(i),i=1..10),insequence=true,scaling=constrained);

[Maple Plot]

>   

Priklad 7:

>    aN:=(n*x)/(1+n+x);

aN := n*x/(1+n+x)

>    TestSequenceUniformConvergence(aN, n, x=0..1);

TestSequenceUniformConvergence:   Using the limit function:   x

TestSequenceUniformConvergence:   Error function:   n*x/(1+n+x)-x

TestSequenceUniformConvergence:   Extrema points:   [0, 1]

TestSequenceUniformConvergence:   Error value at extrema points:   [0, n/(2+n)-1]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0

true

>   

Priklad 8:

>    aN:=exp(n*(x-1));

aN := exp(n*(-1+x))

>    TestSequenceUniformConvergence(aN, n, x=-infinity..1,0);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   exp(n*(-1+x))

TestSequenceUniformConvergence:   Extrema points:   [-infinity, 1]

TestSequenceUniformConvergence:   Error value at extrema points:   [exp(-n*infinity), 1]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   1

false

>   

Priklad 9:

>    fn:=(n,x)->ln(n*x)/(n*x);

fn := (n, x) -> ln(n*x)/n/x

>    TestSequenceUniformConvergence(fn(n,x), n, x=0.25..3);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   ln(x*n)/n/x

TestSequenceUniformConvergence:   Extrema points:   [.25, 3]

TestSequenceUniformConvergence:   Error value at extrema points:   [4.000000000*ln(.25*n)/n, 1/3*ln(3*n)/n]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   0.

true

>    g2:=plotStripAroundFunction(0,x=0.25..3,1/4,color=yellow):

>    g:=[seq(plots[display](plot(fn(i,x),x=0.25..3,y=-1..1),g2),i=1..50)]:

>    plots[display](g,insequence=true,scaling=constrained);

[Maple Plot]

>   

Priklad 10:

>    aN:=(n*x)/(1+n^2*x^2);

aN := n*x/(1+x^2*n^2)

>    TestSequenceUniformConvergence(aN, n, x=-1..1);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   n*x/(1+x^2*n^2)

TestSequenceUniformConvergence:   Extrema points:   [-1, 1, -1/n, 1/n]

TestSequenceUniformConvergence:   Error value at extrema points:   [-n/(n^2+1), n/(n^2+1), -1/2, 1/2]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   1/2

false

>   

Priklad 11:

>    aN:=x^n-x^(2*n);

aN := x^n-x^(2*n)

>    TestSequenceUniformConvergence(aN, n, x=0..1,0);

TestSequenceUniformConvergence:   Using the limit function:   0

TestSequenceUniformConvergence:   Error function:   x^n-x^(2*n)

TestSequenceUniformConvergence:   Extrema points:   [0, 1, exp(-ln(2)/n)]

TestSequenceUniformConvergence:   Error value at extrema points:   [0, 0, exp(-ln(2)/n)^n-exp(-ln(2)/n)^(2*n)]

TestSequenceUniformConvergence:   Maximum limit value at extrema points:   1/4

false

>   

>   

Integrovani a derivovani stejnomerne konvergentni posloupnosti clen po clenu

>    restart;

>   

>    # kvuli procedure barplot

>    currentdir("c:/devel/maple/phd/export/"):

>    read "posl_a_rady_fci_proc.mpl":

>   

Priklad 1:  Integrovani posloupnosti clen po clenu

Uvazme nasledujici posloupnost funkci. Tato posloupnost konverguje na R stejnomerne k funkci f(x)=0 .

>    fn:=(n,x)->piecewise(x<-n,0,x<0,(x+n)/n^2,x<n,(n-x)/n^2,0);

fn := (n, x) -> piecewise(x < -n,0,x < 0,(n+x)/n^2,x < n,(n-x)/n^2,0)

>    MAXCOLORS:=5:

>    graf:=n->plot(fn(n,x),x=-6..6,thickness=2,color=COLOR(HUE,min(0.7*(n-1)/MAXCOLORS,0.7))):

>    plots[display](seq(graf(i),i=1..5));

[Maple Plot]

>    limit(fn(n,x),n=infinity);

0

V pripade uzavreneho intervalu (zde [-5,5]) muzeme zamenit poradi limity a integrace.

>    seq(evalf(int(fn(i,x),x=-5..5)),i=1..20);

1., 1., 1., 1., 1., .9722222222, .9183673469, .8593750000, .8024691358, .7500000000, .7024793388, .6597222222, .6213017751, .5867346939, .5555555556, .5273437500, .5017301038, .4783950617, .4570637119,...
1., 1., 1., 1., 1., .9722222222, .9183673469, .8593750000, .8024691358, .7500000000, .7024793388, .6597222222, .6213017751, .5867346939, .5555555556, .5273437500, .5017301038, .4783950617, .4570637119,...

>   

>    limit(int(fn(n,x),x=-5..5),n=infinity) assuming n::posint;

0

>    limit(int(fn(n,x),x=a..b),n=infinity) assuming n::posint, a::realcons, b::realcons;

0

>   

>    barplot([seq(evalf(int(fn(i,x),x=-5..5)),i=1..50)], color=blue,thickness=2);

[Maple Plot]

Naopak pro x  z celeho oboru R  plati

>    limit(int(fn(n,x),x=-infinity..infinity),n=infinity) assuming n::posint;

1

jelikoz pro kazde jednotlive n  je hodnota integralu rovna jedne.

>    int(fn(n,x),x=-infinity..infinity) assuming n::posint;

1

>   

Priklad 2:  derivovani clen po clenu

Tento priklad ilustruje skutecnost, ze stejnomerna konvergence posloupnosti funkci neni zarukou konvergence jednotlivych derivaci funkci teto posloupnosti.

Uvazme nasledujici posloupnost. Tato posloupnost zrejme konverguje stejnomerne na celem R  k funkci f(x)=0 .

>   

>    fn:=(n,x)->sin(n^2*x)/n;

fn := (n, x) -> sin(n^2*x)/n

>    plots[animate](fn(i,x), x=-5..5, i=1..10,frames=10,scaling=constrained,numpoints=300);

[Maple Plot]

>    diff(sin(n^2*x)/n,x);

cos(n^2*x)*n

>    dfn:=(n,x)->cos(n^2*x)*n;

dfn := (n, x) -> cos(n^2*x)*n

Posloupnosti prvnich derivaci nekonverguje v zadnem bode   `in`(x,R) .

>    plots[animate](dfn(i,x), x=-5..5, i=1..10,frames=10,scaling=constrained,numpoints=300);

[Maple Plot]

>    limit(dfn(n,x),n=infinity);

undefined

>   

>   

>   

>   

>