




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆聿蒃螂虿肅蒂蒁羅羁肈薄螈袇肇蚆羃膅肇莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膅腿薁蚂肁芈蚃袇羇芇莃蚀袂芆薅袆袈芅蚈螈膇芅莇羄肃芄蒀螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆聿蒃螂虿肅蒂蒁羅羁肈薄螈袇肇蚆羃膅肇莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膅腿薁蚂肁芈蚃袇羇芇莃蚀袂芆薅袆袈芅蚈螈膇芅莇羄肃芄蒀螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄蒄蒇蚁膃蒃蕿袆聿蒃螂虿肅蒂蒁羅羁肈薄螈袇肇蚆羃膅肇莅螆肁肆蒈羁羇膅薀螄袃膄蚂薇节膃蒂螂膈膂薄蚅肄膁蚇袁羀膁莆蚄袆膀葿衿膅腿薁蚂肁芈蚃袇羇芇莃蚀袂芆薅袆袈芅蚈螈膇芅莇羄肃芄蒀螇罿芃薂羂袅莂蚄螅膄莁莄薈肀莀蒆螃羆荿蚈薆羂荿莈袂袈莈蒀蚄膆莇薃袀肂莆蚅蚃羈蒅莅袈袄 实验三级数【实验目的】1 了解级数的有关理论。2 了解函数的Taylor展开式3学习掌握MATLAB软件有关的命令。【实验内容】1 求函数的Taylor级数,并考察它的Taylor展开式的前几项构成的多项式函数向的图形的逼近的情况2 计算级数的值3 验证Euler公式【实验准备】1 级数的基本概念数项级数:称用加号将数列的项连成的式子为(常数项)无穷级数,简记为。称级数前项构成的和为级数的部分和。若,则称级数收敛,其和为。Taylor级数:设函数在包含的区域内具有各阶导数,则称幂级数为函数在的Taylor级数,当时称为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命令观测函数的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 =0ans =xans =xans =x-1/6*x3ans =x-1/6*x3ans =x-1/6*x3+1/120*x5然后在同一坐标系里作出函数和它的Taylor展开式的前几项构成的多项式函数的图形,观测这些多项式函数的图形向的图形的逼近的情况。例如,在区间上作函数与多项式函数图形的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,其中实线表示函数的图形。图3.1 的泰勒级数类似地,根据函数的Taylor级数作图观测其展开式的前几项多项式逼近原函数的情况。练习2 利用幂级数计算指数函数。指数函数可展开为幂级数其通项为xn/prod(1:n),因此用下列循环相加就可计算出这个级数x=input(x=); n=input(n=); y=1; %输入原始数据,初始化yfor i=1:n y=y+xi/prod(1:i); end, vpa(y,10), %将通项循环相加,得y执行此程序,分别带入x=1,2,4,-4这四个数,取n=10,y的结果如下2.718281801, 7.388994709, 54.44310406, .9671957672e-1而用vpa(exp(1),10), vpa(exp(2),10), vpa(exp(4),10), vpa(exp(-4),10)命令可得的10位精确有效数字为2.718281828, 7.389056099, 54.59815003, .1831563889e-1对照可知,用级数法计算的有效数字分别为8,4,2,0位。由此可以看出,这个程序虽然原理上正确,但不好用。对不同的x,精度差别很大。其他存在的问题有:这个程序不能用于x的元素群运算;当x为负数时,它成为交错级数,收敛很慢;此程序要做次乘法,n很大时,乘法次数太多,计算速度很低;对不同的x,要取不同的n才能达到精度要求,因此n不应由用户输入,应该由软件按精度要求来选。正对上面的四个问题,可以采用下面四种方法改进:(1)允许数组输入,改进输出显示x=input(x=); n=input(n=); y=ones(size(x); %输入原始数据,初始化yfor i=1:n y=y+x.i/prod(1:i); %循环相加s1=sprintf(%13.0f,i); s2=sprintf(%15.8f,y); %将结果变为字符串disp(s1,s2) %显示end,执行此程序,输入x=1 2 4 -4,n=10,结果为 1 2.00000000 3.00000000 5.00000000 -3.00000000 2 2.50000000 5.00000000 13.00000000 5.00000000 3 2.66666667 6.33333333 23.66666667 -5.66666667 4 2.70833333 7.00000000 34.33333333 5.00000000 5 2.71666667 7.26666667 42.86666667 -3.53333333 6 2.71805556 7.35555556 48.55555556 2.15555556 7 2.71825397 7.38095238 51.80634921 -1.09523810 8 2.71827877 7.38730159 53.43174603 0.53015873 9 2.71828153 7.38871252 54.15414462 -0.19223986 10 2.71828180 7.38899471 54.44310406 0.09671958(2)可以利用exp(-x)=1/exp(x)来避免交错级数的计算;(3)为了减少乘法次数,设一个中间变量z,它的初始值为z=ones(size(x),把循环体中的计算与句改为y=y+z; z=x.*z/i;这样,求得的z就是z=x.i/i!,于是每个循环只需做一次乘法,计算整个级数只需n次乘法。按这种计算,y的初始值改为y=zeros(size(x)(4) 为了按精度选择循环次数,不该使用for循环,而用while语句,它可以设置循环的条件语句,通常可用y+z-ytol,tol是规定的允许误差.只要相邻的两次y值之差大于tol,循环就继续进行,直到小于tol为止.当x较大时,exp(x)仍能很快收敛,还可以利用关系式,令x1=x/k.k通常取大于x而最接近x的2的幂,例如x=100,就取k=128,可以保证x1的绝对值小于1,这时级数收敛得很快.从练习中可以看出,n取10时(即级数取10项)就能保证7位有效数,而可以化成,即exp(x1)的7次自乘,总共用17次乘法就可完成的计算,这既保证了精度,又提高了速度.练习3 编写任意函数展开为各阶泰勒级数的程序,并显示其误差曲线.对于任意函数y=f(x),其泰勒展开式为其中为余项,也就是泰勒展开式的误差.MATLAB语句为fxs=input(输入y=f(x)的表达式,s); %输入原始条件,fxs是字符串K=input(输入泰勒级数展开式的阶K);a=input(展开的位置a=); b=input(展开的区间半宽度b=);x=linspace(a-b,a+b); %构成自变量数组,确定其长度和步长lx=length(x); dx=2*b/(lx-1);y=eval(fxs); %求出y的准确值subplot(1,2,1), plot(x,y,.), hold on %y的准确值用点线绘出%求出a点的一阶导数,注意求导后数组长度减少1Dy=diff(y)/dx; Dya(1)=Dy(round(lx-1)/2); yt(1,:)=y(round(lx/2)+Dya(1)*(x-a); %求y的一阶泰勒展开,绘图plot(x,yt(1,:)for k=2:K Dy=diff(y,k)/(dxk); Dya(k)=Dy(round(lx-k)/2); %求a点k阶导数 yt(k,:)=yt(k-1,:)+Dya(k)/prod(1:k)*(x-a).k; %求y的k阶导数 plot(x,yt(k,:); %绘图 e(k,:)=y-yt(k,:); %求出yt的误差endtitle(fxs,的各阶泰勒级数曲线), %注意如何组成标注的字符串grid, hold off, subplot(1,2,2)for k=1:K plot(x,e(k,:), hold on, end %绘制误差曲线title(fxs,的各阶泰勒级数误差曲线),grid,hold off执行此程序,输入fxs=cos(x),K=5,a=0.5,b=2,所得曲线见图3.2(又变为误差曲线).读者可以改变其坐标系范围以仔细观测最关心的部分,也可输入其他函数做验算,注意输入函数应符合元素群运算规则.图3.1 的泰勒级数及误差曲线练习4 计算级数的值,可用symsum命令,相应的MATLAB代码为:clear; syms k;simple(symsum(1/k2,1,Inf) %simple求解最简形式,Inf为无穷大结果为: ans =1/6*pi2类似地可验证可以猜想有其中是正整数,请验证.注:可用公式来计算的近似值。如果要精确到小数点后15位,相应的MATLAB代码为:digits(20); %设置今后数值计算以20位相对精度进行a=1.0; kk=1.0; %赋初值for n=1:20, kk=kk/n;, a=a+kk;, endvpa(a,17) %以17位相对精度给出a的值结果为练习5 (调和级数 ) 自然数的倒数组成的数列称为调和数列,由调和数列构成的级数称为调和级数,我们把它的前项部分和记为。计算时和的值,并计算它们的差,相应的MATLAB代码为:H(1)=1; C(1)=1;for n=2:100, H(n)=H(n-1)+1/n;, %for为循环语句c(n)=H(n)-log(n+1);,C(n)=H(n)-log(n);, end注意观测单调递减、单调递增,二者相互接近的现象。 计算时和的值,注意观测单调递减、单调递增,二者趋于同一极限的现象。并求出这个常数。 极限称为欧拉(Euler)常数,可以证明它是一个无理数。显然,而由于当时趋于0,故趋于同一个极限。【练习与思考】1. 用taylor命令观测函数的Maclaurin展开式的前几项, 然后在同一坐标系里作出函数和它的Taylor展开式的前几项构成的多项式函数的图形,观测这些多项式函数的图形向的图形的逼近的情况(1) (2) (3) (4) (5) (6) 2. 求公式中的数的值.3. 利用公式来计算的近似值。精确到小数点后100位,这时应计算到这个无穷级数的前多少项?请说明你的理由.4. 用练习3中所用观测法判断下列级数的敛散性(1) (2) (3) (4) (5) (6) (7) (8) 蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀莈螃羇肆莇袅膃蒅莆蚅羅莁莅螇芁芇莄袀肄膃莃羂袆蒁莃蚂肂莇蒂螄袅芃蒁袆肀腿蒀薆袃肅葿螈聿蒄蒈袀羁莀蒇羃膇芆蒇蚂羀膂蒆螅膅肈薅袇羈莇薄薇膃芃薃虿羆腿薂袁节膅薁羄肄蒃薁蚃袇荿薀螆肃芅蕿袈袆膁蚈薈肁肇蚇蚀袄莆蚆螂聿莂蚆羄袂芈蚅蚄膈膄蚄螆羀蒂蚃衿膆莈蚂羁罿芄螁蚁膄膀莈螃羇肆莇袅膃蒅莆蚅羅莁莅螇
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐史西方古典音乐知识点归纳梳理
- 应急消防考试试题及答案
- 六一公司举行活动方案
- 六一创意舞台活动方案
- 六一布置职场活动方案
- 六一幼儿结婚活动方案
- 六一活动互动策划方案
- 六一活动冷餐活动方案
- 六一活动小龙虾活动方案
- 六一活动美业活动方案
- 操作规程储气罐安全操作规程
- 电厂物资管理系统解决方案
- 初一数学(下)难题百道及答案
- 七年级下实数及实数的计算
- 中国古典文献学(全套)
- 《抖音平台商品销售策略研究10000字(论文)》
- 两用物项-最终用户用途证明
- 2023-2024学年贵州省铜仁市小学数学五年级下册期末高分预测题
- 会议记录(空白)
- GB/T 20624.2-2006色漆和清漆快速变形(耐冲击性)试验第2部分:落锤试验(小面积冲头)
- GB/T 15474-2010核电厂安全重要仪表和控制功能分类
评论
0/150
提交评论