数学实验考试.docx
《数学实验考试.docx》由会员分享,可在线阅读,更多相关《数学实验考试.docx(29页珍藏版)》请在冰豆网上搜索。
数学实验考试
玉溪师范学院2013-2014学年上学期
《数学实验》期末考试
数学实验报告
姓名:
陈维瑾
学号:
2012011148
班级:
2012级1班
专业:
数学与应用数学
完成日期:
2014年7月2
成绩评定:
考试要求:
1、数学实验考试要求大家完成一个完整的数学实验报告,单一性(比如数据分析)的实验报告应包含实验目的、实验内容、实验过程及运行结果,结论分析等内容。
2、内容要多样性,所举例子不能偏离实验目的。
希望每部分能多举例子,这样更能充实实验内容,所举例子尽量体现数学的应用性,比如,数学分析可以分析自己的成绩等。
3、请在Matlab2009R以上版本上完成实验报告。
4、实验内容应紧扣教学内容,可按符号运算、数值计算、图形设计、数据分析和程序设计等分类做实验报告。
相关内容可参看实验3-17,其中实验11、14以及实验18-23可自行选择,但不能照搬课本上的例子。
如数据分析的实验内容请选择自己到目前为止的成绩,并对成绩基于Matlab软件平台进行分析。
5、实验报告需要上交纸质文件及上交电子文档,请在第十九周周五下午5:
00之前上交,纸质文档双面打印即可,注意排版美观大方,体现数学美
目录
实验1Matlab软件基础与矩阵基本运算1
实验2代数基本运算7
实验3函数及其图形显示11
实验6 定积分的定义与计算13
实验8常微分方程和人口模型15
实验14随机模型23
实验1Matlab软件基础与矩阵基本运算
运算符
数学意义
运算符
数学意义
加法运算
点出运算
减法运算
乘幂运算
乘法运算
左除运算
点乘运算
右除运算
1.2.1数学运算符号
例1.1要计算
解:
命令窗口输入
>>4+5*(8-2)-5^2/2
ans=
21.5000
例1.2要计算4+5×π
解:
命令窗口输入
>>4+5*pi
ans=
19.7080
例1.3求
在
时的值
解:
在命令窗口输入
>>x=pi/4;
>>y=cos(x)-log(x)+exp(x)+sqrt(4*x)+asin(x)
y=
5.8177
1.3.1矩阵输入
例1.4
解:
在命令窗口输入
>>A=[6,7,8;6,5,4;3,5,8]
A=
678
654
358
例1.5输入一个4阶单位矩阵、一个5阶正态分布的随机矩阵
解:
在命令窗口输入
>>B=eye(4)
B=
1000
0100
0010
0001
>>randn(5)
ans=
0.5377-1.3077-1.3499-0.20500.6715
1.8339-0.43363.0349-0.1241-1.2075
-2.25880.34260.72541.48970.7172
0.86223.5784-0.06311.40901.6302
0.31882.76940.71471.41720.4889
1.3.3矩阵基本运算
(1)矩阵加法:
;
(2)矩阵乘法:
;
(3)数与矩阵的乘法:
;
(4)矩阵的转置:
;
例1.6
c=4计算A+B,A
B,c
A,A',det(A),inv(A),[V,D]=eig(A)
解:
在命令窗口输入
>>A=[2,4;5,3];B=[3,5;6,4];c=4;
>>A+B
ans=
59
117
>>A*B
ans=
3026
3337
>>c*A
ans=
816
2012
>>A'
ans=
25
43
>>det(A)
ans=
-14
>>inv(A)
ans=
-0.21430.2857
0.3571-0.1429
>>[V,D]=eig(A)
V=
-0.7071-0.6247
0.7071-0.7809
D=
-20
07
1.4.1关系和逻辑运算
1.关系运算符
表1给出了常用的关系操作符
表1关系运算
关系操作符
说明
关系操作符
说明
相等
大于或等于
不相等
小于
大于
小于或等于
表1
例1.7判断
,
,
是否正确,
解:
在命令窗口输入
>>sqrt(2576)>=25
ans=
1
>>2*5*3==2*(5*3)
ans=
1
>>sqrt(24)~=2*sqrt(6)
ans=
0
表2MATLAB逻辑操作符
逻辑操作符
|
说明
与
或
非
表2
例1.8
>>(5>4)&~(3==2)
ans=
1
1.4.2M文件
例1.9用M函数文件绘制当
时,
在
上的图像
解:
打开M文件编辑∕调试器窗口,然后输入
functiony=ex109(beta)
x=-3*pi:
0.1:
3*pi;
y=cos(beta*x).*x.^3
plot(x,y)
将该M函数文件保存为“ex109.m”在Matlab命令窗口输入以下命令:
>>ex109(3)
例1.10下面的程序可用来计算
与
解:
打开M文件编辑∕调试器窗口,然后输入
a=0;b=1;
fork=1:
10
a=a+k;
b=b*k;
end
[a,b]
将该M函数文件保存为“ex110.m”在Matlab命令窗口输入以下命令:
>>ex110
ans=
553628800
例1.11设
求
解:
打开M文件编辑∕调试器窗口,然后输入
functionf=ex111(x)
ifx<-7
f=1/(x+8);
elseif(x>=-7)&(x<=2)
f=x;
else
f=(x-2)*cos(1/(x+1));
end
将该M函数文件保存为“ex111.m”在Matlab命令窗口输入以下命令:
>>ex111(-10)
ans=
-0.5000
>>ex111
(1)
ans=
1
>>ex111(4)
ans=
1.9601
实验2代数基本运算
一、实验目的
(1)学会用MATLAB软件计算整数的整除性的相关性。
(2)学会用MATLAB软件对多项式的相关问题。
(3)解决一些在高等几何二、实验内容判断线性方程是否有解,并求解。
二、实验内容
(1)整除的带余除法、最小公倍数、因式分解、因式分解﹑素数分布﹑不定方程求解等。
(2)多项式的带余除法﹑最大公因式﹑最小公倍数﹑因式分解﹑求根﹑有理分式的部分分式分解。
(3)线性方程组解的判定和求解。
例2.1求2002与2014的最大公因数g,并求整数c,d,使得ac+bd=g。
解:
在命令窗口中输入
>>[g,c,d]=gcd(2002,2014)
g=
2
c=
-168
d=
167
例2.2求2002与2014的最小公倍数。
解:
在命令窗口中输入
>>g=lcm(2002,2014)
g=
2016014
例2.3将252785分解为质因数的乘积。
解:
在命令窗口中输入
>>f=factor(252785)
f=
5133889
例2.4求
的根
程序:
ex204.m文件
clear;
p=[1-2/33-4/34-1/34];
rotofx=roots(p)
执行结果如下:
>>ex204
rotofx=
0.8558+0.9967i
0.8558-0.9967i
0.0359+1.3999i
0.0359-1.3999i
-0.5584+0.9327i
-0.5584-0.9327i
所以所求的根为0.8558+0.9967i,0.8558-0.9967i,0.0359+1.3999i,0.0359-1.3999i,-0.5584+0.9327i,-0.5584-0.9327i。
例2.5判断下列方程组是否有解,如果有,利用MATLAB命令求解:
解
(1)记此线性方程组的系数矩阵为A,右端项为b,在命令窗口中键入如下命令:
>>A=[211;325;245];
>>b=[72225]';
>>ra=rank(A)
ra=
3
>>rb=rank([A,b])
rb=
3
回执结果
这表明矩阵A的秩等于他的增广矩阵的秩,所以此纤芯方程组有唯一解,下面对方程组进行求解,在命令窗口中键入下列命令:
>>x=inv(A)*b
或
>>x=A\b
x=
1.0000
2.0000
3.0000
X即是方程的解
(2)记此线性方程组的系数矩阵为A,右端项为b,在命令窗口中键入如下命令:
>>A=[23-14;3-24-3;61-23;1-21-4];
>>b=[32-22]';
>>ra=rank(A)
ra=
4
>>rb=rank([A,b])
rb=
4
回执结果
这表明矩阵A的秩等于他的增广矩阵的秩,所以此纤芯方程组有唯一解,下面对方程组进行求解,在命令窗口中键入下列命令:
>>x=inv(A)*b
或
>>x=A\b
x=
0.3254
4.0238
0.5476
-2.2937
X即是方程的解
实验3函数及其图形显示
一、实验目的
(4)学会用MATLAB软件作平面函数在各种坐标线下的图形。
(5)学会用MATLAB软件作空间函数在各种坐标线下的图形。
(6)解决一些在高等几何中的一元函数与二元函数的图像问题。
二、实验内容
(1)实验准备
1、平面空间曲线的表示形式
对于平面曲线,常见的有三种表示形式,直角坐标方程
参数方程:
极坐标方程:
表示。
2、MATLAB主要用plot,fplot,plot3三种命令绘制不同的曲线。
plot(x,y)作出函数图.注意:
用plot命令得到的函数图形使用直线段连接相邻节点的折线图;polar(s,t)绘制极坐标;plot3(x,y,z)绘制参数方程给出的空间曲线;fplot(‘fun’),[a,b,c,d]用于绘制函数fun所在的平面区域。
例3.1做分段函数
的图像
解:
程序:
ex301.m文件
x1=-5:
1/50:
0;
y1=sin(x1);
x2=0:
1/50:
5;
y2=log(x2);
plot(x1,y1,x2,y2),gtext('y=sinx'),gtext('y=lnx')
xlabel('x');
ylabel('y');
执行结果如图
>>ex301
例3.2:
作空间曲面
,的图形
解:
程序:
ex302.m文件
x=-8:
1:
8;
y=x;
[X,Y]=meshgrid(x,y);
R=sqrt(X.^2+Y.^2)+eps;
图3.1
Z=tan(R)./R;
mesh(X,Y,Z)
xlabel('x');
ylabel('y');
zlabel('z');
gridon
boxon
>>ex302
再画出等高线图>>contour(X,Y,Z,30)
图3.2
分别如图3.1、3.2
例3.3做出单叶双曲面:
的图形,
其参数方程为x=3usinv;y=2ucosv;z=tanu;
解:
程序:
ex303.m文件
ezmesh('3*sec(u)*sin(v)','2*sec(u)*cos(v)','tan(u)',[0,2*pi,0,2*pi])
执行结果如图
>>ex303
实验6 定积分的定义与计算
一、实验目的
(一)加深定积分概念的理解。
(二)学会用MATLAB计算定积分(数值近似计算和符号演算)。
二、实验内容
(一)用数值计算和图形展示相结合的方法研究函数的积分和随分割细度的变化趋势。
(二)用数值方法和符号演算法计算定积分。
三、实验准备
(一)定积分的定义。
(二)定积分的几何意。
(三)定积分存在的两个充分条件。
例6.1求积分
解:
程序:
ex601.m文件
clearall;
f=inline('exp(2*x)*cos(x).^3');a=0;b=1;
n=30;
x=[];
x
(1)=a;
fork=1:
9
x(n+1)=b;s=0;
fori=1:
n-1
x(i+1)=(i+rand())*(b-a)/n;
end
fori=1:
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=30,s=1.57241
n=90,s=1.57064
n=270,s=1.57072
n=810,s=1.5707
n=2430,s=1.5707
n=7290,s=1.5707
n=21870,s=1.5707
n=65610,s=1.5707
n=196830,s=1.5707
重复运行上述程序得到结果如下表
n
第一次
第二次
第三次
第四次
30
1.57241
1.56535
1.57262
1.57323
90
1.57064
1.57041
1.5714
1.56914
270
1.57072
1.57069
1.57051
1.57076
21870
1.5707
1.5707
1.5707
1.5707
65610
1.5707
1.5707
1.5707
1.5707
196830
1.5707
1.5707
1.5707
1.5707
从上表中更可以发现每次得到的数据是不同的,但差异不大,从当n=21870时开始,每次运行结果都是1.5707,则可以推断该定积分是存在的,其值约为1.5707.
例6.2设
求
,并从图形上来观察随分割点的增多,积分和是否越来越接近定积分的值。
解:
首先编写一个M文件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文件,用来调用difdf.m文件,动态演示定积分。
clearall;
clc
forn=1:
20;
f=inline('cos(x)');
djfdf(f,0,2*pi,n)
pause(0.5)
end
运行yest.m程序
修改pause(0)降低停留时间,再分别取n值为100和600个分割点,得到下图所示
(3)
(2)
(1)
图中阴影部分为积分和,图
(1)分割点为20边界比较粗糙,图
(2)分割点为100,边界已经比较光滑,图(3)分割点为600此时边界已经接近为光滑的曲线,与y=sinx基本重叠。
这说明此时用积分和近似定积分产生的误差已经非常小。
实验8常微分方程和人口模型
一、实验目的
(一)了解常微分方程的基本概念。
(二)了解常微分方程的解析解。
(三)了解常微分方程的数值解。
(四)学习﹑掌握MATLAB软件有关的命令。
二、实验内容
常微分方程的解析解。
例8.1求下列方程的解,先求解析解,再求数值解,并作解函数的曲线图进行比较
(1)解:
求解析式
>>y=dsolve('Dy=-2*y+x^2+1','y(0)=1','x')
y=exp(-2*x)/4-x/2+x^2/2+3/4
(2)求数值解,先编写M函数文件dyex801.m
functiondy=dyex801(x,y)
dy=-2*y+x^2+1;
(3)将解析式和数值解画在同一坐标面上,以比较数值解的误差,编写M文件ex301.m:
[x1,y1]=ode45('dyex801',[0,1],1);
x=0:
0.1:
1;
y=exp(-2*x)/4-x/2+x.^2/2+3/4;
plot(x,y,x1,y1,'ro');
legend('解析解','数值解');
title('微分方程解析解与数值解对比图');
xlabel('x');ylabel('y');
>>ex801
单位:
万人
例8.2综合题
(一)、表1是我国大陆人口5次普查的统计资料,亲对有关数学模型的参数进行拟合,分析结果,并与表2加以对比,最后对我国2010年的人口给出预报,并于第6次人口普查统计加以对比。
(二)、利用表二算出每一年的增长率,并利用该数据
1.计算均值﹑标准差﹑极差﹑偏差﹑峰度,并画出直方图;
2.检验分布的正态性;
3.若检验符合分布,估计正态分布的参数并检验参数。
年分
1953
表1我国人口5次普查表
1964
1982
1990
2000
总人数
59435
69458
100818
113368
126583
年份
总人口
表2我国人口抽样调查推算表
年份
总人口
年份
总人口
单位:
万人
年份
总人口
1949
54167
1962
67295
1975
92420
1988
111026
1950
55196
1963
69172
1976
93717
1989
112704
1951
56300
1964
70499
1977
94974
1990
114333
1952
57482
1965
72538
1978
96259
1991
115823
1953
58796
1966
74542
1979
97542
1992
117171
1954
60266
1967
76368
1980
98705
1993
118517
1955
61465
1968
78534
1981
100072
1994
119850
1956
62828
1969
80671
1982
101654
1995
121121
1957
64653
1970
82992
1983
103008
1996
122389
1958
65994
1971
85229
1984
104357
1997
123626
1959
67207
1972
87177
1985
105851
1998
124810
1960
66207
1973
89211
1986
107507
1999
125909
1961
65859
1974
90859
1987
109300
2000
126583
解:
(一)
(1)计算1950年到2000年的人口五年增长率
>>x=[55196614656620772538829929242098705105851114333121121126583];
fori=1:
10
r(i)=(x(i+1)-x(i))/x(i);
end
r
r=
0.11360.07710.09560.14410.11360.06800.07240.08010.05940.0451
>>mean(r)
ans=
0.0869
>>std(r)
ans=
0.0298
这50年时间内,我国人口五年增长率的平均值为0.0869,标准差为0.0298
(2)1950-2000年我国五年人口增长岁人口变化的变化图像
>>x=[55196614656620772538829929242098705105851114333121121126583];
fori=1:
10
r(i)=(x(i+1)-x(i))/x(i);
end
>>x1=x(2:
11);
>>plot(x1,r)
得到如图
同样的,上图可以看出1950年至2000年我国五年人口增长率随着人口增加而呈现出线性下降的趋势。
(3)对参数进行拟合
①定义参数r和
的函数文件,文件名称为xt.m。
为了减小数字将数据单位改为百万人。
functionf=xt(g)
t=0:
10;
x=[55.19661.46566.20772.53882.99292.42098.705105.851114.333121.121126.583];
f=x-g
(1)./(1+(g
(1)./55.196-1).*exp(-g
(2).*t));
②编写执行文件ex802.m
g0=[150,0.2];
g=lsqnonlin('xt',g0)
t=0:
10;
y=1950+5.*t
f=g
(1)./(1+(g
(1)./55.196-1).*exp(-g
(2).*t))
g=
195.01660.1572
y=
Columns1through10
1950195519601965197019751980198519901995
Column11
2000
f=
55.196061.623268.432575.568082.959990.526998.1793105.8235113.3661120.7187127.8018
结果与表1对比,发现,相差不大。
(4)模型检验
首先在文件xt.m中修改数据如下
functionf=xt(g)
t=0:
9;
x=[55.19661.46566.20772.53882.99292.42098.705105.851114.333121.121];
f=x-g
(1)./(1+(g
(1)./55.196-1).*exp(-g
(2).*t));
在文件ex802.m中修改数据如下
g0=[150,0.2];
g=lsqnonlin('xt',g0);
xm=