Nekonecne rady s programem Maple
Mocninne rady
Karel Srot, xsrot@math.muni.cz
> |
> | currentdir("c:/devel/maple/phd/export/"): |
> |
Obor konvergence
> | restart: |
> | read "posl_a_rady_fci_proc.mpl": |
> |
Priklad 1:
Naleznete obor konvergence mocninne rady
> | an:=n->(-1)^n/(n+sqrt(n)); |
> | simplify(an(n)/an(n+1)); |
> | r:=limit(abs(%), n=infinity); |
> | csum(subs(x=-3, an(n)), n); |
> | csum(subs(x=-1, an(n)), n); |
Oborem konvergence je tedy interval [-3,-1].
> |
> |
Priklad 2:
Urcete obor konvergence mocninne rady
> | an:=n->(1+1/n)^(n^2); |
> | simplify(1/abs(an(n))^(1/n)); |
> | r:=limit(%, n=infinity); |
> | csum(subs(x=-r, an(n)), n); |
> | csum(subs(x=r, an(n)), n); |
Oborem konvergence je interval ( -1/e. 1/e ) .
> |
> |
> | infolevel[sum]:=2: |
> | infolevel[TestSeriesConvergence]:=2: |
> |
Priklad 3:
Urcete polomer konvergence a soucet mocninne rady
> | an:=(n,x)->2^n*x^(2*n); |
> | TestSeriesConvergence(an(n,x),n,x); |
TestSeriesConvergence: Series identical zero when x = 0
TestSeriesConvergence: Trying ration test
TestSeriesConvergence: Limit: 2*x^2
TestSeriesConvergence: Range solved: RealRange(Open(-1/2*2^(1/2)),Open(1/2*2^(1/2)))
TestSeriesConvergence: Checking isolated points
TestSeriesConvergence: Diverges at point x = 1/2*2^(1/2)
TestSeriesConvergence: Diverges at point x = -1/2*2^(1/2)
> | sum(an(n,x),n=0..infinity); |
convert/hypergeom/from: Function 2^x*x^(2*x) satisfies the criteria
> |
Priklad :
Urcete obor konvergence mocninne rady
> | an:=(n,x)->2^n*x^n/n^2; |
> | TestSeriesConvergence(an(n,x),n,x); |
TestSeriesConvergence: Series identical zero when x = 0
TestSeriesConvergence: Trying ration test
TestSeriesConvergence: Limit: 2*abs(x)
TestSeriesConvergence: Range solved: RealRange(Open(-1/2),Open(1/2))
TestSeriesConvergence: Checking isolated points
TestSeriesConvergence: Converges at point x = -1/2
TestSeriesConvergence: Converges at point x = 1/2
> |
Priklad:
Urcete obor konvergence a soucet mocninne rady
> | an:=(n,x)->(-1)^(n+1)*(x^(n+1))/(n*(n+1)); |
> | sum(an(n,x),n=1..infinity); |
convert/hypergeom/from: Function -(-1)^(x+1)*x^(x+2)/(x+1)/(x+2) satisfies the criteria
> | TestSeriesConvergence(an(n,x),n,x); |
TestSeriesConvergence: Series identical zero when x = 0
TestSeriesConvergence: Trying ration test
TestSeriesConvergence: Limit: abs(x)
TestSeriesConvergence: Range solved: RealRange(Open(-1),Open(1))
TestSeriesConvergence: Checking isolated points
TestSeriesConvergence: Converges at point x = -1
TestSeriesConvergence: Converges at point x = 1
> |
> |
Priklad:
Urcete obor konvergence mocninne rady
> | an:=(n,x)->(n!)^2*x^n/(2*n)!; |
> | TestSeriesConvergence(an(n,x),n,x); |
TestSeriesConvergence: Series identical zero when x = 0
TestSeriesConvergence: Trying ration test
TestSeriesConvergence: Limit: 1/4*abs(x)
TestSeriesConvergence: Range solved: RealRange(Open(-4),Open(4))
TestSeriesConvergence: Checking isolated points
TestSeriesConvergence: Diverges at point x = -4
TestSeriesConvergence: Diverges at point x = 4
> |
> |
soucet mocninne rady
> | restart: |
> | read "posl_a_rady_fci_proc.mpl": |
> |
Priklad:
Urcete soucet mocninne rady
> | an:=(n,x)->x^(4*n-3)/(4*n-3); |
> | TestSeriesConvergence(an(n,x),n,x); |
> | assume(x::RealRange(Open(-1),Open(1))); |
pokusime se ziskat soucet rady pomoci procedury sum().
> | sum(an(n,x),n=1..infinity); |
> | ?LerchPhi |
> | Sum(an(n,x),n=1..infinity); |
> | diff(%,x); |
> | simplify(%); |
> | s1:=value(%); |
> | s2:=subs(x=t,s1); |
> | int(s2,t=0..x); |
> | r:=int(s2,t); |
> | r:=convert(op(1,r),ln)+op(2,r); |
> | eval(r,t=x)- eval(r,t=0); |
dalsi moznost vypoctu pomoci parcialnich zlomku:
> | convert(s2,parfrac); |
> | int(%,t); |
> | r:=eval(%,t=x)-eval(%,t=0); |
> | evalc(Re(r)); |
> | evalc(Im(r)); |
> |
rozvoj funkce do mocninne rady
> | restart; |
> | read "posl_a_rady_fci_proc.mpl": |
> |
Priklad:
Urcete Taylorovy polynomy stupnu 1, 3, 5 funkce
se stredem v bode
.
> | f:=exp(x/2): |
> | x0:=1: |
> |
> | taylor(f,x=1,2); |
> | convert(%, polynom); |
> | convert(taylor(f,x=1,4), polynom); |
> | convert(taylor(f,x=1,6), polynom); |
> | coeftayl(f,x=1,3); |
> |
Priklad:
Urcete Tayloruv polynom stupne deset funkce
se stredem v bode
.
> | f:=exp(-x^2); |
> | convert(taylor(f,x,11), polynom); |
> |
Priklad:
Rozvinte funkci
do mocninne rady a urcite obor konvergence.
> | convert(exp(2*x),Sum); |
> | subs(_k1=k,%); |
> | an:=(n,x)->(2*x)^n/n!; |
> | TestSeriesConvergence(an(n,x),n,x); |
Priklad:
Rozvinte funkci ln(1+x) do mocninne rady a urcete obor konvergence.
> | convert(ln(1+x),Sum); |
Prislusna mocninna rada neni konvergentni na celem definicnim oboru funkce ln(1+x).
> | FunctionAdvisor( sum_form, ln(x+1)); |
> | assume(x::RealRange(Open(-1),Open(1))); |
> | convert(ln(x+1),Sum); |
> | an:=(n,x)->x*(-x)^n/(1+n); |
> | TestSeriesConvergence(an(n,x) ,n,x); |
> |
> |
Animace mocninnych rozvoju
> | restart; |
> | read "posl_a_rady_fci_proc.mpl": |
> |
Priklad:
Animaci znazornete konvergenci Maclaurinova rozvoje funkce y=sin(x).
> | f:=x->sin(x): |
> | fn:=(n,x)->convert(taylor(f(x),x,n+1), polynom): |
> | fn(5,x); |
> | graf_fce:=plot(f,-10..10,thickness=2, color=green): |
> | graf:=n->plots[display](graf_fce,plot(fn(n,x),x=-10..10,y=-5..5,thickness=2)): |
> | plots[display](seq(graf(i),i=0..19), insequence=true,scaling=constrained); |
> |
> |
Priklad:
Animaci znazornete konvergenci Taylorova rozvoje se stredem v bode x=1 funkce
.
> | f:=x->sqrt(1+1/x); |
> | fn:=(n,x)->convert(taylor(f(x),x=1,n+1), polynom): |
> | fn(5,x); |
> | graf_fce:=plot(f,-2..4,thickness=2, color=green): |
> | graf:=n->plots[display](plot(fn(n,x),x=-2..4,y=0..5,thickness=2),graf_fce): |
> | plots[display](seq(graf(i),i=0..19), insequence=true,scaling=constrained); |
> |
> |
Priklad:
Pomoci animace znazornete konvergenci mocninne rady
> | fn:=(n,x)->(-1)^(n+1)*(x^(n+1))/(n*(n+1)): |
> | TestSeriesConvergence(fn(n,x),n,x); |
> | s:=sum(fn(n,x),n=1..infinity); |
> | sn:=(n,x)->sum(fn(k,x),k=1..n): |
> |
> | graf_s:=plot(s,x=-1..1,color=green,thickness=3): |
> | pruh:=plotVerticalStrip(RealRange(-1,1),-0.5..1.5): |
> | graf:=n->plots[display](pruh, plot(sn(n,x),x=-2..2, y=-0.5..1.5, thickness=2), graf_s): |
> | plots[display](seq(graf(i),i=1..15), insequence=true, scaling=constrained); |
> |
> |