华南理工大学-数学实验报告一

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《数学实验》报告

1. 问题描述

讨论调和级数∑

(1

n ∞

n=1

)的变化规律,

(1)画出部分和数列{Sn}变化的折线图,观察变化规律;

(2)引入数列{Hn}:Hn=S2n – Sn ,作图观察其变化,猜测是否有极

限 (3)引入数列{Gn }:Gn=S2n ,作图观察其变化,寻找恰当的函数拟

合;

(4)讨论部分和数列{Sn }的变化规律。

2. 问题分析与实验过程

1

n 随着n 的增大,其数值逐渐减少,因此可以猜测调和级数∑

(1

n

n=1)

曲线的变化趋势是逐步趋缓的。根据这个,按照题目要求引入各种要求的数列,然后用MATLAB 进行求解,得出各个数列的曲线,然后进行分析得出结论。在用MATLAB 求解时,把各个函数分成几个独立模块,方便调试。

程序:

模块a :实现显示调和级数∑

(1

n

n=1)曲线变化的功能

function test2a(n)

fn = [1]; %定义fn 的初值为1 for i = 2:n

fn = [fn,fn(i-1)+1/i]; %定义fn = ∑(1

n ∞

n=1

)

end

plot(fn) %显示函数fn 的曲线变化图

模块b: 实现显示数列{Hn}的曲线变化的功能 function test2b(n)

fn = [1]; %定义fn 的初值为1 for i = 2:2*n

fn = [fn,fn(i-1)+1/i]; %定义fn = ∑

(1

n ∞

n=1

)

end

Hn = [1/2]; %定义Hn 的初值为0.5 for i = 1:n

Hn = [Hn,fn(2*i)-fn(i)];

%定义Hn = ∑(

1

2∗n

n=1) - ∑

(1

n

n=1)

end

plot(Hn) %显示函数Hn 的曲线变化图

模块c :实现显示数列{Gn}曲线变化的功能

function test2c(n)

Gn = [1.5]; %定义Gn 的初值为1.5 for i = 2:n

Gn = [Gn,Gn(i-1)+1/(2*i)+1/(2*i-1)];

%定义Gn = ∑(1

2∗n ∞

n=1

)

end

plot(Gn) %显示函数Gn 的曲线变化图

模块d:实现对数列{Gn}的拟合功能

function y = test2d(n) Gn = [1.5]; for i = 2:n

Gn = [Gn,Gn(i-1)+1/(2*i)+1/(2*i-1)]; end xn = 1:n;

Gn = exp(Gn); %令Gn = e ^(Gn)

y = polyfit(xn,Gn,1) %对Gn = e ^(Gn)进行一阶拟合

模块e :实现比较数据跟拟合数据吻合程度的功能

function y = test2e(n) Gn1 = [];

for i = 1:n

Gn1 = [Gn1,log(3.5621*i+0.8910)];

%设置拟合函数Gn1 = log(3.5621*i+0.8910)end

Gn2 = [1.5];

for i = 2:n

Gn2 = [Gn2,Gn2(i-1)+1/(2*i)+1/(2*i-1)];

end

x = 1:n;

plot(x,Gn1,'b',x,Gn2,'r*') %显示拟合函数Gn1和原始函数Gn2的曲线图进行比较,确定两个函数的吻合程度。

运行结果(直接输出运行结果或者抓取Matlab运行结果的图片):模块a:

模块b:

模块c:

模块d:

模块e:

问题回答:

(1)

由图可知,数列{Sn}的曲线随着n的增大而逐步增大,但是n越大,Sn的上升逐步趋缓。

(2)

由图可知,数列{Hn}在刚开始时的上升幅度非常大,但是n增大到一定值后,Hn的上升趋缓,并逐步稳定。可以猜测数列{Hn}有极限。(3)

由模块c显示的数列{Gn}的曲线变化,猜测Gn为一指数函数,设

Gn=ln(a*n+b)。令Gn=e^Gn,然后进行一阶拟合。经一系列验证后,证明上述正确。

(4)部分和数列{Sn}随着n的增大而逐步增大,变化曲线跟对数函数的变化曲线相似,n越大,Sn的上升幅度逐步趋缓。

3.实验总结和实验感悟

总结:

通过这次实验,我学会了如何去拟合一个函数。这需要大量的数据调试,要不断地猜测其最接近哪种函数,然后不断的代数据进去拟合,直到得到一个比较理想的结果。还有,就是要注意自变量的取值范围,前后要一致。最后,我感受到模块化函数高效性和方便性。

感悟:

我觉得MATLAB是一种非常实用的编程软件,它的语法简单易懂,不繁琐,而且功能强大。以后可以加强对MATLAB的学习。

相关文档
最新文档