实验报告.docx
《实验报告.docx》由会员分享,可在线阅读,更多相关《实验报告.docx(34页珍藏版)》请在冰豆网上搜索。
实验报告
玉溪师范学院2012-2013学年上学期
《数学实验》期末考试
数学实验报告
姓名:
学号:
班级:
2010级一班
专业:
数学与应用数学
完成日期:
评语:
成绩评定:
本次报告,主要是针对本学期学习的数学实验,对其内容中的大部分做出归纳和总结。
主要分为一下五大部分:
一.数值计算
实验目的:
1.学会用MATLAB软件计算极限.最值.定积分
2、了解圆周率的计算历程、及计算方法的发展历程。
3、了解求解数值微分的基本方法。
4、了解误差分析和步长优化及会使用差分法求解数值微分
实验内容:
1.用数值方法计算:
(1)数列和函数的极限。
(2)函数的导数与最值。
(3)计算定积分
(4)数项级数的和。
2、使用不同的方法计算圆周率的近似值。
3,、中心差分公式、前向微分和后向微分公式。
操作过程及运行结果:
例:
1.1求数列极限
程序如下:
symsnan
an=limit((n^3+5^n)^(1/n),n,inf)
结果
an=5
求函数极限:
程序如下:
symsxbn
bn=limit((1-cos(x))/(x*sin(x)),x,0)
结果:
bn=1/2
定积分的定义积分
计算
f=inline('(1+x^2)^(-1)');a=0;b=1;
n=40;
x=[];
x
(1)=a;
fork=1:
8
x(n+1)=b;s=0;
fori=1:
n-1
x(i+1)=(i+rand())*(b-a)/n;
end
fori=i:
n
dxi=x(i+1)-x(i);
c=x(i)+dxi*rand();
s=s+f(c)*dxi;
end
fprintf('n=%g,s=%g\n',n,s);
n=n*3;
end
结果:
n=40,s=0.0132958
n=120,s=0.00575502
n=360,s=0.00155638
n=1080,s=0.000866947
n=3240,s=0.000286178
n=9720,s=0.000102157
n=29160,s=2.11564e-005
n=87480,s=9.02859e-006
、辛普森公式
计算
程序如下
formatlong
n=100;a=0;b=1;sum=0;
symsxfx
fx=4/(1+x^2);
fori=1:
n
xj=a+(i-1)*(b-a)/n;
xi=a+i*(b-a)/n;
xk=(xi+xj)/2;
fxj=subs(fx,'x',xj);
fxi=subs(fx,'x',xi);
fxk=subs(fx,'x',xk);
sum=sum+(fxj+4*fxk+fxi)*(b-a)/(6*n);
end
结果sum=
3.141592653589792
integrate=
pi
integrate=
3.141592653589793
相对误差是:
2.827160e-016
1、求下列级数的和。
程序
n=1:
10;
>>s1=sum(1./(n.*(n+1).*(n+2)));
>>formatlong
>>s1
结果
s1=0.246212121212121
2.圆周率的计算:
1用刘徽的迭代公式,计算圆内接正24576边形的面积,从而得出著名数学家祖冲之得到的圆周率。
代码:
>>x=1;
>>fori=1:
12
x=sqrt(2-sqrt(4-x^2));
S=(3*2^i*x);
end
>>vpa(S,9)%计算精度为9位有效数字
结果:
ans=
3.14159265
利用莱布尼兹级数计算
的近似值。
2.编写以下M脚本文件:
x=0;
fori=1:
1000
x=x+(-1)^(i+1)/(2*i-1);
pai(i)=4*x;
error(i)=(pi-pai(i));
end
fori=1:
10
D(i,:
)=[100*i,pai(100*i),error(100*i)];
end
vpa(D,20)
保存文件名为Ex1703.m,在命令窗口输入:
>>Ex1703
结果:
ans=
[100.,3.1315929035585536866,.99997500312394294042e-2]
[200.,3.1365926848388161474,.49999687509769685789e-2]
[300.,3.1382593295155913893,.33333240742017267166e-2]
[400.,3.1390926574960142936,.24999960937788223703e-2]
[500.,3.1395926555897850641,.19999980000080519460e-2]
[600.,3.1399259880805310274,.16666655092620885625e-2]
[700.,3.1401640828900845293,.14285706997085867442e-2]
[800.,3.1403426540780756682,.12499995117174478310e-2]
[900.,3.1404815428216181772,.11111107681749388121e-2]
1000.,3.1405926538397941350,.99999974999898100236e-3]
实验结论:
通过课本的学习和老师的教导,对于在学习的matlab软件,我们学习了此课程,对于数值计算部分我掌握了
1学会用MATLAB软件计算极限.最值.定积分
2、了解圆周率的计算历程、及计算方法的发展历程。
3、了解求解数值微分的基本方法。
4、了解误差分析和步长优化及会使用差分法求解数值微分
这一些基本知识,虽然在报告中没有把所学的所有内容都进行详尽的阐述和表达,但是基本包括了所学的主要知识点。
对matlab学习的重点内容,我也还有很多的不足,希望老师同学的批评指出。
二.符号运算
实验目的:
1.学会用MATLAB软件计算矩阵、极限.倒数.定积分.。
实验内容:
1用符号演算法计算:
(0)计算矩阵的值。
(1)数列和函数的极限
(2)函数的求解。
(3)不定积分、定积分。
(4)符号常微分方程求解。
(5)项级数的和
操作过程及运行结果:
例1.1求矩阵
的行列式值、逆和特征根。
>>symsa11a12a21a22;A=[a11,a12;a21,a22]
A=
[a11,a12]
[a21,a22]
>>DA=det(A),IA=inv(A),EA=eig(A)
运行结果:
DA=
a11*a22-a12*a21
IA=
[a22/(a11*a22-a12*a21),-a12/(a11*a22-a12*a21)]
[-a21/(a11*a22-a12*a21),a11/(a11*a22-a12*a21)]
EA=
[1/2*a11+1/2*a22+1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]
[1/2*a11+1/2*a22-1/2*(a11^2-2*a11*a22+a22^2+4*a12*a21)^(1/2)]
1.2求极限例:
>>symsx;
>>f=(sqrt(x)-sqrt
(2)-sqrt(x-2))/sqrt(x*x-4);
>>limit(f,x,2,'right')
结果:
ans=
-1/2
1.3求积分:
求积分
。
注意:
内积分上下限都是函数。
程序:
ymsxyz
>>F2=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x^2*y),y,sqrt(x),x^2),x,1,2)
>>VF2=vpa(F2)
结果:
F2=
1610027357/6563700-6072064/348075*2^(1/2)+14912/4641*2^(1/4)+64/225*2^(3/4)
VF2=
224.9215357333114315979071003
1.4函数求解:
①求
的解。
程序:
learall,symsx;s=solve('(x+2)^x=2','x')
结果:
=
.69829942170241042826920133106081
1.5符号常微分方程求解:
求
的解。
程序:
>>S=dsolve('Dx=y,Dy=-x');
>>disp([blanks(12),'x',blanks(21),'y']),disp([S.x,S.y])
结果
x y
[cos(t)*C1+sin(t)*C2,-sin(t)*C1+cos(t)*C2]
1.6求下列级数的和。
n=1:
10;
>>s1=sum(1./(n.*(n+1).*(n+2)));
>>formatlong
>>s1
符号求解为:
symsn;
s2=symsum(1/(n*(n+1)*(n+2)),
实验结论:
对于符号运算的学习
三.图形的可视化
实验目的:
1.学会用MATLAB软件作平面.空间的函数图像。
2.运用图形加深对导数.定积分的理解。
3.加深函数项级数的认识并了解相关函数逼近知识。
实验内容:
1.平面.空间函数在各种坐标系下的图形。
2.用数值计算和图形集合研究:
(1)函数的导数。
(2)积分随分割细度的变化趋势
(3)级数的敛散性
操作过程及运行结果:
1.1①在0≤x≤2π区间内,绘制曲线
y=2e-0.5xcos(4πx)
程序如下:
x=0:
pi/100:
2*pi;
y=2*exp(-0.5*x).*cos(4*pi*x);
plot(x,y)
2、例:
绘制正弦曲线和余弦曲线。
程序:
>>x=[0:
0.5:
360]*pi/180;
>>plot(x,sin(x),x,cos(x));
>>legend('sin','con')
图形:
三维曲线图:
例:
t=0:
pi/100:
20*pi;
x=sin(t);
y=cos(t);
z=t.*sin(t).*cos(t);
plot3(x,y,z);
title('Linein3-DSpace');
xlabel('X');ylabel('Y');zlabel('Z');
gridon;
1.2三维曲面
一个二元函数
如何用三维图形的方式表现出这个曲面?
程序:
>>[x,y]=meshgrid(-3:
1/8:
3)
>>z=3.*(1-x).^2.*exp(-(x.^2)./2-(y+1).^2)-10.*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3.*exp(-(x+1).^2-y.^2)
>>Surf(x,y,z)
>>Shadinginterp
>>Colorbar
图形:
2.用数值计算和图形集合研究
数列和函数的极限:
数列
的极限是多少?
程序:
>>n=1:
3000;
>>xn=0.99.^n;
>>plot(n,xn,'.')
结果
设f(x)=sinx,求
并从图形上观察虽分割增多积分和随着分割点的增多积分和越来越接近定积分值。
程序:
djfdf.m文件
functions=djfdf(f,a,b,n)
close;h=(b-a)/n;s=0;
fori=1:
n
x
(1)=a+(i-1)*h;x
(2)=a+i*h;
x(3)=x
(2);x(4)=x
(1);
t=(x(3)+x(4))/2;y(3)=feval(f,t);
y(4)=y(3);s=s+h*y(3);
fill(x,y,[001]*i/n);
holdon;
end
fplot(f,[a,b]);
holdoff
下面是yest.m文件调用djfdf.m动态演示定积分定义
clearall;
clc
forn=1:
20;
f=inline('sin(x)');djfdf(f,0,4,n)
pause(3)
end
结果:
ans=
3.6372
ans=
1.9652
ans=
1.7828
ans=
1.7246
ans=
1.6986
ans=
1.6847
ans=
1.6764
图形由粗到细,越来越接近定积分的值。
5积分的应用
和
所围成的面积
y=linspace(-1,1,60);
x1=5*y.^2;
x2=1+y.^2;
plot(y,x1,y,x2)
求两个函数的交点
symsy
f=(1+y^2)-5*y^2;
A=int(f,y,-0.5,0.5)
结果:
值:
x=5/4
5/4
y=1/2
-1/2
面积A=2/3
写出
的幂级数的展开式,利用图形考察幂级数部分和逼近函数的情况。
程序:
-2*pi:
0.001:
2*pi;
y0=sin(x0);
symsx;
y=sin(x);
plot(x0,y0,'r--'),axis([-2*pi,2*pi,-1.5,1.5]);
holdon
p=taylor(y,x,2),y1=subs(p,x,x0);
line(x0,y1)
结果:
四.数据分析
实验目的:
1.分析的基本方法
2.进行回归分析的基本命令。
实验内容:
1,一元、多元线性回归,和非线性回归。
2,人口模型的建立。
操作过程及运行结果:
例:
1.一元模型:
为了研究理学院11级学生的总阅览量y与学生人数x的关系得到如下数据:
人数(个)
5101520253035404550
借阅量(本)
2074124212263344396475523575
试研究这些数据的规律性。
解:
输入数据观测散点图。
x=[5101520253035404550]';
y=[2074124212263344396476523575]';
plot(y,x,'*')
输出结果如图:
从散点图中可以看出这些点都在一条直线的附近,这说明y和x具有线性关系。
(2)回归分析及检验,输入
x=[ones(10,1)x];
y=[2074124212263344396475523575]',
[b,bint,r,rint,stats]=regress(y,x)
输出:
b=
-50.2667
12.7588
bint=
-67.3869-33.1464
12.207013.3106
r=
6.4727
-3.3212
-17.1152
7.0909
-5.7030
11.5030
-0.2909
14.9152
-0.8788
-12.6727
rint=
-14.455927.4014
-26.366019.7236
-36.32762.0973
-17.163031.3448
-30.585619.1795
-11.806434.8125
-25.318624.7368
-5.643335.4736
-24.092022.3345
-31.32315.9776
stats=
1.0e+003*
0.00102.84260.00000.1181
即得到
,
,
的置信区是[-67.3869-33.1464],
的置信区是[12.207013.3106];
r
=0.001,F=2.8426,p=0.0000,p<0.05,因此,所得到的回归方程为
y=-50.2667+12.7588x
(3)残差分析,做残差图。
输入
rcoplot(r,rint)
输出如图:
从残差图可以看出,10个数据的残差离零点均较近,并且残差的置信区间均包含零点,这说明回归方程
y=-50.2667+12.7588x
能较好的复合原始数据。
长期以来,人类的繁殖一直在自发地进行着。
只是由于人口数量的迅速膨胀和环境质量的急剧恶化,人们才猛然醒悟,开始研究人类和自然的关系,人口数量的变化规律以及如何进行人口控制等问题。
下表为1952——2011年玉溪的人口统计数据
year
population
1952
954195
1953
969660
1954
991764
1955
997093
1956
1007561
1957
1029359
1958
1000414
1959
958819
1960
954662
1961
953851
1962
983392
1963
1026390
1964
1064236
1965
1098512
1966
1134774
1967
1161507
1968
1202463
1969
1257214
1970
1293588
1971
1334446
1972
1369557
1973
1409070
1974
1443864
1975
1477971
1976
1508149
1977
1540713
1978
1566088
1979
1583247
1980
1596637
1981
1615150
1982
1633216
1983
1649863
1984
1670021
1985
1688972
1986
1710639
1987
1739082
1988
1766938
1989
1794562
1990
1818113
1991
1838075
1992
1852439
1993
1868817
1994
1885623
1995
1905794
1996
1925441
1997
1946349
1998
1971207
1999
1991346
2000
2016780
2001
2034065
2002
2053957
2003
2068473
2004
2085532
2005
2091649
2006
2106416
2007
2122522
2008
2129754
2009
2143592
2010
2145508
2011
2134735
分析数据中隐藏的规律往往可以帮助我们发现建立模型的线索。
因此,利用表中的数据计算1952——2002年玉60年的人口5年增长率
>>x=[95419510293599833921161507136********713];%1952—1977年的人口统计数
>>fori=1:
5
r(i)=(x(i+1)-x(i))/x(i);%1952—1977年的五年增长率
end
>>r
r=
Columns1through3
0.0788-0.04470.1811
Columns4through5
1.17910.1250
玉溪人口的五年增长率为一个常数
以1952为0时刻,此时玉溪人口数位x0,时刻t为x(t),x(t)视为可连续函数
>>x=dsolve('Dx=r*x','x(0)=x0','t')
x=x0*exp(r*t)
根据表中数据,在MATLAB中计算出玉溪人口1952—2011每五年的增长率,程序如下:
>>x=[9541951029359983392116150713695571540713...
1633216173********439194634920539572122522];%1952—2011年的人口统计数
>>fori=1:
11
r(i)=(x(i+1)-x(i))/x(i);%1952——2011年的每五年增长率
end
>>r
r=
Columns1through3
0.0788-0.04470.1811
Columns4through6
0.17910.12500.0600
Columns7through9
0.06480.06520.0507
Columns10through11
0.05530.0334
3)阻滞增长模型(Logistic模型)
通过前面的分析可以看到,人口增长率是准确刻画人口增长规律的一个关键因素,并且“人口增长率为一个常数”的假设不合理,那么应当怎样刻画人口增长的变化规律呢?
为此,作出1952——2011年玉溪五年人口增长率随人口变化而变化的图像。
>>x=[9541951029359983392116150713695571540713...
1633216173********439194634920539572122522];%1952—2011年的人口统计数
>>fori=1:
11
r(i)=(x(i+1)-x(i))/x(i);%1952——2011年的每五年增长率
end
>>x1=x(2:
12);
>>plot(x1,r)
从图中可以清楚的看出,随着人口模型的增加,人口的五年增长率在总体上呈现出线性下降的趋势,
那么,为什么会出现这种趋势呢?
根据草履虫的实验我们可以知道:
一个国家或一个地区内的人口增长率实际上是该地区人口规模的减函数r(x),并且r(xm)=0.
综合以上分析,提出如下新的假设:
玉溪人口的五年增长率r(x)是人口数的线性函数,即
r(x)=r(1-x/xm),
其中r为固定增长率,xm为自然资源和环境条件所能容纳的最大