LabWork11
📑 IT Online Mini Campus. Task 2.3
📑 IT Online Mini Campus. Task 2.3
IV. Программа SageMath (Python)
var('k'); E=10^(-4)
X1,X2,H=.5,.7,.05; SEG=[X1,X1+H,..,X2]
def nfind(controlf,sumf,e,seg):
cond=True; n=1
while cond:
diff=[abs(controlf(x)-sumf(x,n)).n()<e for x in seg]
cond=sum(diff)!=len(diff); n+=1
return(n-1)
def nplottable(controlf,sumf,n,seg,var):
t=[['x','sumf(x)','controlf(x)']]
sumline3,sumlinen,controlline=[],[],[]
for x in seg:
t+=[[x,sumf(x,n).n(),controlf(x).n()]]
sumline3+=[[x,sumf(x,2).n()]]
sumlinen+=[[x,sumf(x,n).n()]]
controlline+=[[x,controlf(x).n()]]
(list_plot(sumline3,size=50,
legend_label='sum function n=2',
title='Variant %d: N = %d'%(var,n))+\
list_plot(sumlinen,size=50,color='green',
legend_label='sum function n=%d'%n)+\
list_plot(controlline,color='red',
legend_label='control function'))\
.show(gridlines=True)
show(table(t))
controlf21(x)=2*x-x*exp(-x^2)-sin(x)
sumf21(x,n)=sum((-1)^(k+1)*x^(2*k+1)*(1/factorial(k)+\
1/factorial(2*k+1)),k,1,n)
N21=nfind(controlf21,sumf21,E,SEG)
nplottable(controlf21,sumf21,N21,SEG,21)