1、数学实验与数学建模实验报告学 院: 信息科学与工程学院 专业班级: 控制类 0811 班 姓 名: 学 号: 完成时间: 2009 年 11 月 3 日承 诺 书本人承诺所呈交的数学实验与数学建模作业都是本人通过学习自行进行编程独立完成,所有结果都通过上机验证,无转载或抄袭他人,也未经他人转载或抄袭。若承诺不实,本人愿意承担一切责任。承诺人: 2009 年 11 月 4 日11数学实验学习体会这学期的选修课选了数学建模,起初选这门课并不是想学什么东西,只是为了拿学分而已。但当老师说到 MATLAB 这个软件有如此多的功能时,我的注意力被吸引了,原来数学建模实验能这么的贴近实际,并与计算机联系起
2、来,我感觉是我上大学以来上的最有用的一门课。数学建模实验让我们了解和初步实践应用数学知识和方法解决实际问题的全过程,并通过计算机和数学软件进行“实验” ,实验的结果不仅仅是公式定理的推导、套用和手工计算的结论,它还反映了对数学原理、数学方法、建模方法、计算机操作和软件使用等多方面内容的掌握程度和应用的能力。它 真 正 的把 数 学 与 生 活 联 系 了 起 来 。对 MATLAB 的使用可能是我选这门课最大的收获, MATLAB 是一个功能很强大的数学软件,强 大 的 科 学 计 算 机 数 据 处 理 能 力 是 一 般 的 数 学 运 算 软 件无 法 比 拟 的 , 它的数 学 函 数
3、 可 用 于 线 性 代 数 、 统 计 、 傅 立 叶 分 析 、 筛 选 、 优化 以 及 数 值 积 分 等 。 MATLAB 的 绘 图 功 能 也 很 强 , 能 够 绘 出 二 维 和 三 维 函数 图 形 。 这 些 功 能 对 我 们 日 常 生 活 中 的 许 多 方 面 有 很 重 要 的 影 响 , 如 一 些 积分 用 人 工 算 几 乎 是 不 可 能 的 , 而 MATLAB 就 能 很 快 的 算 出 来 , MATLAB也 能 画 出 一 些 我 一 些 我 们 在 脑 海 里 难 以 形 成 模 型 的 图 像 , 这 样 能 更 方 便 我 们对 函 数 的
4、 了 解 。在 这 次 数 学 建 模 的 课 程 的 学 习 中 , 我 基 本 上 掌 握 了 MATLAB 的 一 些 基本 操 作 , 发 现 在 MATLAB 的 使 用 中 help 命 令 的 使 用 能 很 好 的 让 我 们 知 道 一些 函 数 和 命 令 的 使 用 , 特 别 是 在 我 们 输 入 的 MATLAB 语 言 有 错 误 时 , 通 过help 能 让 我 们 很 方 便 的 找 出 错 误 的 原 因 及 改 正 的 方 法 。 还 有 在 用 MATLAB语 言 编 程 的 时 候 尽 量 多 看 一 些 实 例 , 这 样 能 让 我 们 更 加
5、容 易 掌 握 命 令 的 使 用 。多 加 练 习 也 是 一 种 让 我 们 更 加 熟 练 掌 握 MATLAB 使 用 的 一 种 方 法 , 其 实MATLAB 语 言 是 一 种 比 较 简 单 的 编 程 语 言 , 它 不 像 C 语 言 那 样 需 要 繁 杂 的定 义 变 量 , 编 程 语 句 也 十 分 简 单 , 所 以 非 常 容 易 上 手 。 对 MATLAB 的 使 用其 实 我 也 并 不 是 学 得 很 好 , 有 一 些 命 令 也 不 会 使 用 , 但 因 为 其 在 数 学 领 域 强大 的 功 能 我 觉 得 学 好 它 非 常 有 必 要 。1
6、数学建模实验作业1.定义分段函数 101)(2xy并求 x=-2,x=0 和 x=4 时的值.输入命令:x=input(请输入 X 的值:);if x-1)endy则输出结果:请输入 X 的值:-2y=1请输入 X 的值:0y=1请输入 X 的值:4y=0 2.生成 1 到 10 的整数表,取名 a,从 a 中取出第 3 位到第 9 位的元素,计算它们的和.输入命令:x=1:10y=sum(x(3:9)输出:x =1 2 3 4 5 6 7 8 9 10y =423.画出 xarcsin的图象 .输入命令:x=linspace(-pi,pi,1000); plot(x,asin(x);gtex
7、t(y=arcsinx);则得到图形:14.画出 )2ln(1xy及其反函数的图象.输入命令:x=(-2:0.01:2);y=1+log(x+2);plot(x,y,y,y,x,r);title(f(x)及其反函数在区间-2,2上的图形 )则得到图形:5.画出 321xy及其反函数的图象 .输入命令:x=(-10:0.01:10);y=(x.2+1).(1/3);plot(x,y,y,y,x,r);title(f(x)及其反函数在区间-10,10上的图形)则得到图形:16.作椭圆 的图形.输入命令:t=(-1:0.01:2*pi);x=2*cos(t);y=sin(t);plot(x,y);t
8、itle(x=2cost,y=sint 表示的曲线的图形 )则得到图形:tyxsinco217.计算下列极限:; ; ; ;)12(lim.1xx xxcoslim.xxtan0)1(li.3)1ln(lim.41x5. ;6. ;7. ;8. nn)2(li 30sintalixxsil026lixx1.输入命令:syms x;y=2./(x*x-1)-1./(x-1);limit(y,x,1)得结果: ans =-1/22.输入命令:syms x;y=(x-cos(x)/x;limit(y,inf)得结果: ans =13.输入命令:syms x;y=(1./x)tan(x);limit(
9、y,x,0,right)得结果: ans =14.输入命令:syms x;y=log(x).*log(1-x);limit(y,x,1,left)得结果: ans =05.输入命令:syms n;y=(n+1).(n+1)./(n+2).*(n.n);limit(y,inf)得结果: ans =exp(1)6.输入命令:syms x;y=(tan(x)-sin(x)./x3;limit(y,0)得结果: ans =1/27.输入命令:syms x;y=sin(x)./x;limit(y,0)得结果: ans =18.输入命令:syms x;y=(x*x-1)./(6.*x*x-12.*x+1)
10、;limit(y,inf)得结果: ans =1/68.计算下列函数的导数:(1)y=x2+xlnx(2)(3) xey3sin(4)y=ln3(x 2)(5) 1si(1) 输入命令:syms x; dy_dx=diff(x*x+x*log(x)得结果: dy_dx =2*x + log(x) + 1(2) 输入命令:syms x; dy_dx=diff(asin(x/2)+(1-x*x)(1/2)得结果: dy_dx =1/(2*(1 - x2/4)(1/2) - x/(1 - x2)(1/2)(3) 输入命令:syms x; dy_dx=diff(exp(sin(x)3)得结果: dy_
11、dx =3*exp(sin(x)3)*cos(x)*sin(x)2(4) 输入命令:syms x; dy_dx=diff(log(x*x)3)得结果: dy_dx =(6*log(x2)2)/x(5) 输入命令:syms x; dy_dx=diff(x*x*sin(1/x)得结果: dy_dx =2*x*sin(1/x) - cos(1/x)2arc19.计算下列函数的二阶导数: xeycos)1(2(2)y=x2sin2x(3)y=xcosx (1) 输入命令:syms x;y=(exp(x2).*cos(x);diff(y,2)得结果: ans =exp(x2)*cos(x) + 4*x2
12、*exp(x2)*cos(x) - 4*x*exp(x2)*sin(x)(2) 输入命令:syms x;y=x2.*sin(2*x);diff(y,2)得结果: ans =2*sin(2*x) + 8*x*cos(2*x) - 4*x2*sin(2*x)(3) 输入命令:syms x;y=x.*cos(x);diff(y,2)得结果: ans =- 2*sin(x) - x*cos(x)10.求下列函数的偏导数.(1) )sin(2xyz (2)zyxu(1)输入命令:syms x,y;z=x2.*sin(x*y);zx=diff(z,x)zy=diff(z,y)得结果:zx =2*x*sin
13、(x*y) + x2*y*cos(x*y)zy =x3*cos(x*y)(2)输入命令:syms x,y;u=(x/y)z;ux=diff(z,x)uy=diff(z,y)得结果:ux =2*x*sin(x*y) + x2*y*cos(x*y)uy =x3*cos(x*y)11.设 )ln(yxu,求 2xu, y, xu2.输入命令:syms x y;u=x*log(x+y);du2_dx2=diff(diff(u,x),x)du2_dy2=diff(diff(u,y),y)du2_dxy=diff(diff(u,x),y)得结果:du2_dx2 =2/(x + y) - x/(x + y)
14、2du2_dy2 =-x/(x + y)2du2_dxy =1/(x + y) - x/(x + y)212.求下列函数的最大值、最小值.(1) 23xy41x(2) 384(1)输入命令:syms x;y=2.*x.3-3*x.2;dy=diff(y);s=solve(dy)1ezplot(y,-1,4);ymin=subs(y,-1)ymax=subs(y,1)得结果:s =01ymin =-5ymax =-1(2)输入命令:syms x;y=x.4-8*x.2+2;dy=diff(y);s=solve(dy)ezplot(y,-1,3);ymin=subs(y,-1)ymax=subs(
15、y,1)得结果: s =-202ymin =-5ymax =-513.设 z=arcsin(x+y),求 z 的全微分.输入命令:syms x y;z=asin(x+y);dz_x=diff(z,x)dz_y=diff(z,y)得结果:dz_x =1/(1 - (x + y)2)(1/2)dz_y =1/(1 - (x + y)2)(1/2)14.设 ,求输入命令:syms x y;z=atan(y/x);dz_dx=diff(z,x)dz2_dy2=diff(diff(z,y),y)dz2_dxy=diff(dz_dx,y)得结果:dz_dx =-y/(x2*(y2/x2 + 1)dz2_d
16、y2 =-(2*y)/(x3*(y2/x2 + 1)2)yzarctnyxzz2,1dz2_dxy =(2*y2)/(x4*(y2/x2 + 1)2) - 1/(x2*(y2/x2 + 1)15.设 求输入命令:syms x y;z=cos(x2+y2)(1/2);dz_dx=diff(z,x)dz_dy=diff(z,y)dz2_dxy=diff(dz_dx,y)得结果:dz_dx =-(x*sin(x2 + y2)(1/2)/(x2 + y2)(1/2)dz_dy =-(y*sin(x2 + y2)(1/2)/(x2 + y2)(1/2)dz2_dxy =(x*y*sin(x2 + y2)
17、(1/2)/(x2 + y2)(3/2) - (x*y*cos(x2 + y2)(1/2)/(x2 + y2)16.f(x,y)=x3y-3x2y3,求 fx(3,2),f y(3,2),f xy(3,2)输入命令:syms x y;z=x.3.*y-3*x.2.*y.3;dz_dx=diff(z,x);dz_dy=diff(z,y);dz2_dxy=diff(dz_dx,y);x=3;y=2;d1=eval(dz_dx)d2=eval(dz_dy)d3=eval(dz2_dxy)得结果:d1 =-90d2 =-297d3 =-18917.计算下列积分: dxx21)(arcsin.1o.22
18、10arct3xd21lg.4xea05yxzyz 22,cos121.6dx7. )(948.ex1dln9. |2010. xx4)(|2(1)输入命令:syms x;y=1/(asin(x)2*(1-x2)(1/2);int(y,x)得结果: ans =-1/asin(x)(2) 输入命令:syms x;y=x2*(cos(x/2)2;int(y,x)得结果: ans =(x2*sin(x)/2 - sin(x) + x*cos(x) + x3/6(3) 输入命令:syms x;y=x*atan(x);int(y,0,1)得结果: ans =pi/4 - 1/2(4)输入命令:syms
19、x;y=x*(log10(x);int(y,1,2)得结果:ans =2*log(2)-3/4(5)输入命令:syms a x;y=exp(-a*x);int(y,x,0,inf)得结果:ans =limit(-(exp(-a*x)-1)/a,x = Inf)(6) 输入命令:syms x;y=x/(x-1)(1/2);int(y,1,2)得结果: ans =8/3(7) 输入命令:syms x;y=x(1/2)*(1+x(1/2);int(y,4,9)得结果: ans =271/6(8)输入命令:syms x;y=(1+log(x)/x;int(y,1,exp(1)得结果:ans =log(
20、3060513257434037)-50*log(2)+1/2*log(3060513257434037)2-50*log(3060513257434037)*log(2)+1250*log(2)2输入:log(3060513257434037)-50*log(2)+1/2*log(3060513257434037)2-50*log(3060513257434037)*log(2)+1250*log(2)2得结果:ans =1.5000(9) 输入命令:syms x;y=abs(x-1);int(y,0,2)得结果: ans =1(10)输入命令:syms x;y=abs(1-x)*(x-4)
21、2)(1/2);int(y,0,2)得结果: ans =3119.计算二重积分 ,其中 D 是由 x 轴、y 轴和圆 x2+y2=1 所围成的在第一象限部分的区域.输入命令:syms x y;I=int(x*y,x,0, sqrt(1-y2);II=int(I,y,0,1)得结果:II =1/820.计算二重积分 其中 D 表示: .输入命令:syms x y; int(int(exp(-x2-y2),x,-sqrt(1-y2), sqrt(1-y2),y,-1,1)得结果: ans=-exp(-1)*pi+pi21.解方程 012x.输入命令:solve(x*2x-1)得结果:ans =1/
22、log(2)*lambertw(log(2)输入:1/log(2)*lambertw(log(2)得结果:ans =0.444422.上机完成如下的实验任务:1.求微分方程 y+y+xy2=0 的通解.2.求微分方程 的通解及满足初始条件 y(0)=2 的特解.3.求微分方程 的通解及满足初始条件 y(0)=0 的特解.4.求微分方程 的通解及满足初始条件 的特解.5.求微分方程 的通解及满足初始条件 的特解.(1) 输入命令: dsolve(Dy+y+x*y*y=0,x)得结果: ans =-1/(x+1-exp(x)*C1)(2) 输入命令:dsolve(Dy+3*y=8,y(0)=2,x
23、)得结果: ans =8/3-2/3*exp(-3*x)(3) 输入命令:dsolve(Dy-y*tan(x)=sec(x),y(0)=0,x)得结果: ans =x/cos(x)(4) 输入命令:dsolve(D2y-4Dy+3,y(0)=6,x)得结果: ans =1/2*x2+C1*x+6输入命令:dsolve(D2y-4Dy+3,y(0)=6,Dy(0)=10)得结果: ans =1/2*t2+10*t+6(5)输入命令:dsolve(D2y-Dy-x,y(0)=0,x)得结果: ans =-1/2*x2-exp(x)*C2-x+C2输入命令:dsolve(D2y-Dy-x,y(0)=
24、0,Dy(0)=1)得结果: ans =exp(t)*(x+1)-x*t-x-123判别下列级数的敛散性,若收敛求其和(1) 7153(2)12ntgDyd1, 2)(2 yxdyeDx83yxsectan04“ 10)(,6)0(y y1(3)112)(n(4)2ln1)(n(1) 输入命令:yms n;symsum(1/(2*n-1),1,inf)得结果: ans =Inf(2) 输入命令:syms n;symsum(tan(pi./(2*n*sqrt(n+1),1,inf)得结果: ans =sum(tan(pi/(2*n*(n + 1)(1/2), n = 1Inf)(3) 输入命令:
25、syms n;symsum(-1)n/(2*n*sqrt(n+1),1,inf)得结果: ans =sum(-1)n/(n*(n + 1)(1/2), n = 1Inf)/2(4) 输入命令:syms n;symsum(-1)n/(n*log(n),2,inf)得结果: ans =sum(-1)n/(n*log(n), n = 2Inf)24求幂级数22)1(nnx的和函数输入命令:syms n x;symsum(-1)n*xn/(sqrt(n2-n),n,2,inf)得结果: ans =sum(-1)n*xn)/(n2 - n)(1/2), n = 2Inf)25. 作 z=x2+y3 的图
26、形.输入命令:x=-3:0.1:3;y=x;x,y=meshgrid(x,y);z=x.2+y.3;mesh(x,y,z)则得到图像:26.作 z=x2 绕 z 轴的旋转面图形.1输入命令:x=-2:0.1:2;y=x;X,Y=meshgrid(x,y);Z=X.2+Y.2;mesh(X,Y,Z)则得到图像:27.将下列两曲面拼合在一起. 224)1( yxzyxz与(2) z=x2+y2 与 z=6-x2-y2(1)输入命令:x=-2:0.1:2;y=x;X1,Y1=meshgrid(x,y);Z1=(X1.2+Y1.2)/2;mesh(X1,Y1,Z1)hold onX2,Y2=meshg
27、rid(x,y);Z=4-sqrt(X2.2+Y2.2);mesh(X,Y,Z)则得到图像:1输入命令:x=-2:0.1:2;y=x;X1,Y1=meshgrid(x,y);Z1=X1.2+Y1.2;mesh(X1,Y1,Z1)hold onX2,Y2=meshgrid(x,y);Z2=6-X2.2-Y2.2;mesh(X2,Y2,Z2)则得到图像:128.计算输入命令:A=1,2,3,4;0,2,-1,1;1,-1,2,5;B=2,1,4,10;0,-1,2,0;0,2,3,-2;S=A+0.5*B得结果:S =2.0000 2.5000 5.0000 9.00000 1.5000 0 1.
28、00001.0000 0 3.5000 4.000029.求矩阵 的秩.输入命令:A=0,1,2;0,1,1;-1,2,3;r=rank(A)得结果: r =330.判断下列矩阵是否可逆,若可逆,求其逆矩阵. 28541)(620113)(11)3((1)输入命令:A=2,2,-1;1,-2,4;5,8,2;r=rank(A)得结果: r =3故矩阵可逆输入: inv(A)得结果: ans =0.6667 0.2222 -0.1111-0.3333 -0.1667 0.1667-0.3333 0.1111 0.111123010425120433211(2)输入命令:A=1,2,3,4;2,3
29、,1,2;1,1,1,-1;1,0,-2,-6;r=rank(A)得结果: r =4故矩阵可逆输入: inv(A)得结果: ans =22.0000 -6.0000 -26.0000 17.0000-17.0000 5.0000 20.0000 -13.0000-1.0000 -0.0000 2.0000 -1.00004.0000 -1.0000 -5.0000 3.0000(3)输入命令:A=1,1,1,1;1,1,-1,-1;1,-1,1,-1;1,-1,-1,1;r=rank(A)得结果: r =4故矩阵可逆输入: inv(A)得结果:ans =0.2500 0.2500 0.2500
30、 0.25000.2500 0.2500 -0.2500 -0.25000.2500 -0.2500 0.2500 -0.25000.2500 -0.2500 -0.2500 0.250031.解下列线性方程组: 810234)(yxz1325)(zyx623484)(3211xx8951)4(4321xx(1) 输入命令:A=4,2,-1;3,-1,2;11,1,0;B=2,10,8;1x=A/B得结果: x =0.11900.07140.1905(2)输入命令: A=2,3,-1;3,5,2;1,-2,-3;B=1,8,-1;x=A/B得结果: x =0.40910.6212-0.1818
31、(3) 输入命令: A=2,2,-1,1;4,3,-1,2;8,3,-3,4;3,3,-2,-2;B=4,6,12,6;x=A/B得结果: x =0.06030.14660.1638-0.0259(4) 输入命令:A=1,-3,-3,1;3,-1,-3,4;1,5,-9,-8;B=1;4;6; ab得结果: ans =00.6563-0.80210.5625题目:验证及改进马尔萨斯人口模型从 17901980 年间美国每隔 10 年的人口记录如表: 年 份 1790 1800 1810 1820 1830 1840 1850人口(10 6) 3.9 5.3 7.2 9.6 12.9 17.1
32、23.2年 份 1860 1870 1880 1890 1900 1910 1920人口(10 6) 31.4 38.6 50.2 62.9 76.0 92.0 106.5年 份 1930 1940 1950 1960 1970 1980 1人口(10 6) 123.2 131.7 150.7 179.3 204.0 226.5 用以上数据拟合 Malthus(马尔萨斯)人口指数增长模型(注 1)中参数,检验马尔萨斯(Malthus)人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进。练习 1:按照表中的数据,用软件画出数据连线图。练习 2:写出微分方程(见注释)的解,代入初值,初
33、值由上表定。(高数)练习 3:用数据拟合模型中的参数 k , 写出人口增长方程练习 4:验证你所得出的方程,分析是否完全符合现实数据(见注释的分析)练习 5:给出你的改进注意:a.可能用到的 mathematica 命令(部分)画图:ListPlotdata, PlotJoined - True; (数据连线)ListPlotdata, PlotStyle - PointSize0.02( 0.02 为点的大小)详细见,课件 函数画图 部分拟合函数:注意,该拟合是非线性拟合,需要装入 nonlinearfit.m 软件包 使用 NonlinearFit 命令。详细见课件 数值分析部分。b.应该
34、注意的地方1如果你运算时初始年份选 1790,则应该减去 1790,即年份从 0 年开始,因为t=0 时,才有初值 。若选取其他年份为初值,类似处理。9.30N2如果你用某个初值给出了方程,准备拟合 k 时,请注意,由于马尔萨斯人口模型的特点,因该选取前若干项,而不能选取全部年份数据(见注释最后的解释)3练习 4 目的, 即要求你将你已经拟何出了 k 值得人口增长函数 后,kteNt0)(将年份差带入,对照表格,分析。例如分析,距离 1790 年 190 年的 1980 年,你根据方程计算的人口和表格中的实际人口,是否相同,理由。注释 1 马尔萨斯人口模型马尔萨斯(17661834,是英国经济
35、学家和社会学家)在研究百余年的人口统计时发现:单位时间内人口的增加量与当时人口总数是成正比的。马尔萨斯于 1798 年提出了著名的人口指数增长模型。模型的基本假设:人口的增长率是常数,或者说,单位时间内人口的增长量与当时的1人口数成正比。以 表示第 年时的人口数, 就表示第 年时的人口数。 是)(tNt )(tNt)(tN整数,为了利用微积分这一数学工具,将 视为连续、可微函数。这样有)()(tkt其中 为人口的增长率,当 时,由上式得k0(1))()(tNdt设初始条件为 时, ,马尔萨斯人口按几何级数增加(或按指数增长) 的结论00就是来源于方程(1) 。方程(1)称为马尔萨斯人口发展方程。通过高等数学的知识,我们很容易求出方程在初始条件 下的解。0)(N即(2)tkeNt0)(如果 ,(2)式表示人口将以指数规律无限增长。这似乎不太可能。0k人们发现,迁往加拿大的法国移民后代的人口比较符合这个模型,而同一血统的法国本土居民人口的增长却与该模型大相径庭。分析表明,以上这个现象的主要原因是随着人口的增加,自然资源,环境条件等因素对人口增长的限制作用越来越显著。人口较少时,人口的自然增长率基本上是常数,而人口增加到一定数量以后,这个增长率就要随着人口的增加而减少,因此,这个模型在使用的时候有所限制。