实验七 matlab求解级数有关计算
1.级数的基本概念
常数项级数:称用加号将数列
an的项连成的式子
a1?a2?a3???an??为(常数项)无穷级数,简记为
?an?1?n。称级数
?an?1?n前n项构成的和
nSn?a1?a2?a3???an??akk?1
为级数的部分和。若n??limSn?S,则称级数
?an?1?n收敛,其和为S。
Taylor级数:设函数f(x)在包含x?a的区域内具有各阶导数,则称幂级数
?n?0?f(n)(a)f(2)(a)f(n)(a)n2(x?a)?f(a)?f'(a)(x?a)?(x?a)???(x?a)n??n!2!n!
为函数f(x)在x?a的Taylor级数,当a?0时称为Maclaurin(麦克劳林)级数。 2.级数的MATLAB命令
MATLAB中主要用symsum,taylor求级数的和及进行Taylor展开。 symsum(s,v,a,b) 表达式s关于变量v从a到b求和 taylor(f,a,n) 将函数f在a点展为n-1阶Taylor多项式 可以用help symsum, help taylor查阅有关这些命令的详细信息
例1 先用taylor命令观测函数y?sinx的Maclaurin展开式的前几项,例如观测前6项, 相应的MATLAB代码为:
>>clear; syms x;
>>taylor(sin(x),0,1) >>taylor(sin(x),0,2) >>taylor(sin(x),0,3) >>taylor(sin(x),0,4) >>taylor(sin(x),0,5) >>taylor(sin(x),0,6) 结果为:
ans =0 ans =x ans =x
ans =x-1/6*x^3
ans =x-1/6*x^3
ans =x-1/6*x^3+1/120*x^5
然后在同一坐标系里作出函数y?sinx和它的Taylor展开式的前几项构成的多项式函
x3x3x5y?x,y?x?,y?x??,?,3!3!5!数的图形,观测这些多项式函数的图形向y?sinx的图形的逼近的情况。例如,在区间[0,?]上作函数y?sinx与多项式函数
x3x3x5y?x,y?x?,y?x??3!3!5!图形的MATLAB代码为:
>>x=0:0.01:pi; y1=sin(x); y2=x; y3=x-x.^3/6; y4=x-x.^3/6+ x.^5/120; >>plot(x,y1,x,y2,’:’,x,y3, ’:’,x,y4,’:’)
结果如图3.1,其中实线表示函数y?sinx的图形。
1.510.5001234 图3.1 y?sinx的泰勒级数
类似地,根据函数的Taylor级数
x2x4x6cosx?1?????,x?(??,??),2!4!6!x2x3xe?1?x????,x?(??,??),2!3!x2x3x4ln(1?x)?x?????,x?(?1,1],234?(??1)2(1?x)??1??x?x??,x?(?1,1).2!
作图观测其展开式的前几项多项式逼近原函数的情况。
例2 利用幂级数计算指数函数。指数函数可展开为幂级数
x2x3xne?1?x???????,x?(??,??),2!3!n!
x其通项为x^n/prod(1:n),因此用下列循环相加就可计算出这个级数
>>x=input('x='); n=input('n='); y=1; %输入原始数据,初始化y
>>for i=1:n