> # sfb Oct 16, 2001 > # Tangent line revisited > f:=exp(x);a:=0; > fa:=subs({x=a},f);df:=diff(f,x);dfa:=subs({x=a},df);eval(f,x=a);eval(df,x=a); > tanf:=fa+dfa*(x-a);diff(tanf,x); > plot([f,tanf],x=-1..1,title="f and the tangent line"); > plot(f-tanf,x=-1..1,title="tangent line error"); > series(f,x=0,2);convert(series(f,x=0,2),polynom); > df2:=diff(f,x,x);df2a:=subs({x=a},df2);eval(df2,{x=a}); > quadf:=fa+dfa*(x-a)+df2a*(x-a)^2; > diff(quadf,x,x); > quadf:=fa+dfa*(x-a)+(df2a/2)*(x-a)^2; > diff(quadf,x,x); > plot([f,tanf,quadf],x=-1..1,thickness=[3,1,1],linestyle=[1,2,3],color=red,title="f with linear and quadratic approx",legend=["f","tangent line","quad approx"]); > plot([f-quadf,f-tanf],x=-1..1,title="linear and quadratic errors",legend=["quad error","tan error"]); > series(f,x=0,3);convert(series(f,x=0,3),polynom); > df3:=diff(f,x,x,x);df3a:=subs({x=a},df3); > cubicf:=fa+dfa*(x-a)+(df2a/2)*(x-a)^2+(df3a/3!)*(x-a)^3;diff(cubicf,x,x,x); > diff(cubicf,x$3); > plot([f,tanf,quadf,cubicf],x=-1..1,thickness=[3,1,1,3],title="f with taylor of degree <=3",legend=["f","1","2","3"]); > plot([f-tanf,f-quadf,f-cubicf],x=-1..1,title="errors deg <=3",legend=["tan error", "quad error", "cubic error"]); > series(f,x=a,4);convert(series(f,x=a,4),polynom); > deg:=4;tf:=convert(series(f,x=a,deg+1),polynom);plot(f-tf,x=-1..1,title="4th deg error"); > with(plots): > errors:=array(1..4); > for i from 1 to 4 do g:=convert(series(f,x=0,i+1),polynom):errors[i]:=plot(f-g,x=-1..1,title=convert(g,string)):od: > errors[1]; > display(errors); > f:=cos(x); > for i from 1 to 4 do g:=convert(series(f,x=0,i+1),polynom):errors[i]:=plot(cos(x)-g,x=-1..1,title=convert(g,string)):od: > display(errors); > g:=array(1..5); > for i from 1 to 5 do g[i]:=convert(series(f,x=0,2*i+1),polynom); od; > n:=2;plot([f,g[1],g[2],g[3],g[4],g[5]],x=-n*Pi..n*Pi,y=-2..2); > plot([f,convert(series(f,x=0,41),polynom)],x=-6*Pi..6*Pi,y=-2..2); > plot([f,convert(series(f,x=0,41),polynom)],x=-6*Pi..6*Pi,y=-2..2,numpoints=2000); > f:=sqrt(x);plot([f,convert(series(f,x=2,41),polynom)],x=0..20,y=-2..20,numpoints=2000); > series(f,x=2,41);# > f:=arctan(x);a:=0;c:=array(0..5);g:=f; > for i from 0 to 5 do print(eval(g,{x=a}));c[i]:=eval(g,{x=a});g:=diff(g,x);od; > c[0]+c[1]*x+c[2]*x^2/2!+c[3]*x^3/3!+c[4]*x^4/4!+c[5]*x^5/5!; > taylor(f,x=0,13); > taylor(sin(x),x=0,12);taylor(cos(x),x=0,13);taylor(tan(x),x=0,13);# > s:=convert(series(exp(u),u=0,10+1),polynom); > taylorApprox:=exp(u)=s; > subs(u=-x^2,taylorApprox); > subs(u=I*theta,taylorApprox); > # > diff(arctan(x),x); > taylorApprox:=1/(1-x)=convert(series(1/(1-x),x=0,10+1),polynom); > something:=subs(x=-x^2,taylorApprox); > int(lhs(something),x=0..t)=int(rhs(something),x=0..t); > > >