Diferenciál, Taylorův polynom
Příklad 1
Pomocí diferenciálu vypočtěte přibližně 29 stupňů. Namalujte graf, na kterém bude původni funkce a funkce použitá k aproximaci.
> | f:=x->sin(x); |
> | x0:=Pi/6; |
> | xx:=29*Pi/180; |
> | evalf(xx); |
> | h:=xx-x0; |
> | dx:=D(f); |
> | f(x0)+dx(x0)*h; |
> | evalf(%); |
> | evalf(sin(29*Pi/180)); |
> | df:=f(x0)+dx(x0)*(x-x0); |
> | plot([f(x), df], x=0..Pi/2); |
Příklad 2
> | restart; |
Vypočtěte přibližně arccotg 1,02. Stejně jako v předcházejícím příkladě namalujte grafy obou funkcí.
> | f:=x->arccot(x); |
> | df:=D(f); |
> | x0:=1; |
> | h:=0.02; |
> | f(x0)+df(x0)*h; |
> | evalf(%); |
> | evalf(arccot(1.02)); |
> | plot([f(x), f(x0)+df(x0)*(x-x0)], x=0.5..1.5); |
Příklad 3
> | restart; |
Určete Taylorův polynom stupně 4 pro funkci a =0. Namalujte graf zadané funkce a Taylorova polynomu.
Dále vypočtěte chybu, které se dopustíte, pokud použijete pro výpočet funkční hodnoty . Namalujte graf chyby pro 〉.
> | f:=x->1/(1+x); |
> | x0:=0; |
> | c0:=f(x0); |
> | c1:=D(f)(x0)*(x-x0)/1!; |
> | c2:=D[1,1](f)(x0)*(x-x0)^2/2!; |
> | c3:=D[1,1,1](f)(x0)*(x-x0)^3/3!; |
> | c4:=D[1,1,1,1](f)(x0)*(x-x0)^4/4!; |
> | c4:=(D@@4)(f)(x0)*(x-x0)^4/4!; |
> | tn:=(n, x0)->(D@@n)(f)(x0)*(x-x0)^n/n!; |
> | tn(4,0); |
> | T4:=c0+c1+c2+c3+c4; |
> | plot([f(x), T4], x=-1..1, y=0..100, color=[red, blue]); |
> | taylor(f(x), x=x0, 5); |
> | whattype(%); |
> | convert(%%, polynom); |
> | readlib(mtaylor); |
> | T:=unapply(mtaylor(f(x), x=x0, 5),x); |
> | evalf(abs(f(0.5)-T(0.5))); |
> | plot(abs(f(x)-T(x)), x=-1..1, y=0..100); |
Příklad 4
Napište Taylorův polynom 3. stupně v bodě =0 funkce =tg.
> | f:=x->tan(x); |
> | derivace1:=D(f); |
> | derivace2:=(D@@2)(f); |
> | derivace3:=(D@@3)(f); |
> | TayloruvPolynom[3]:=f(0)+derivace1(0)*x+derivace2(0)*x^2/(2!)+derivace3(0)*x^3/(3!); |
> | TaylorPol:=(f,x0,n)->sum((D@@i)(f)(x0)/i!*(x-x0)^i,i=0..n); |
> | TaylorPol(f,0,3); |
> | taylor(f(x), x=0, 4); |
> | convert(%, polynom); |
> | plot([f(x), TayloruvPolynom[3]], x=-Pi/3..Pi/3); |
> | plot(abs(f(x)-TaylorPol(f,0,3)), x=-1..1); |
> |