华南理工大学-数学实验报告一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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的学习。