数学建模章绍辉答案

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

数学建模章绍辉答案

【篇一:第三次数学建模作业】

数科院105 刘镜韶 20102201092 数科院105 蔡秋荣 20102201166 数科院104 梁浩坤 20102201100

4、不妨令第k年取出奖学金后,继续存在银行的捐款余额为xk,且银行的整存整取的利率为r,奖学金的金额为d万元,则由已知可得:xk+1 =(1+r)xk-d 故:其解为数列:xk =

(x0-d/r)+d/r,且x0=20万元;

①奖学金金额d0.6万元,让存在银行的捐款余额每年逐步增加;

②奖学金金额d=0.6万元,让存在银行的捐款余额每年保持不变;

③奖学金金额d0.6万元,让存在银行的捐款余额每年逐步减少;

故对于不同的情况,不妨通过编程对比xk的变化趋势;程序:

n=20;r=[0.03,0.03,0.03];x=[20,20,20];d=[0.45,0.6,0.75]; for

k=1:n

x(k+1,:)=x(k,:).*(1+r)-d; end

disp(本金为20万时不同的奖学金下余额的变化)

disp(年 0.45万元0.6万元0.75万元) disp([(0:n),x]);

plot(0:n,x(:,1),k^,0:n,x(:,2),ko,0:n,x(:,3),kv) axis([-1,n+1,14,25]) legend(d=0.45,d=0.6,d=0.75,2)

title(本金为20万时不同的奖学金下余额的变化) xlabel(第k

年),ylabel(余额) 其命令窗口显示结果为:

年 0.45万元0.6万元0.75万元 020.000020.000020.0000

1.000020.150020.000019.8500

2.000020.304520.000019.6955

3.000020.463620.000019.5364

4.000020.627520.000019.3725

5.000020.796420.000019.2036

6.000020.970320.000019.0297

7.000021.149420.00001

8.8506 8.000021.333920.000018.6661

9.000021.523920.000018.4761

本金为20万时不同的奖学金下余额的变化

10.000021.719620.000018.2804 11.000021.921220.000018.0788

12.000022.128820.000017.8712

13.000022.342720.000017.6573

14.000022.562920.000017.4371 15.000022.789820.000017.2102

16.000023.023520.000016.9765

17.000023.264220.000016.7358

18.000023.512220.000016.4878 19.000023.767520.000016.2325 第k年20.000024.030620.000015.9694

当利率r=3%时,且以整存整取一年定期的形式来存入银行时;由上述图像可知:

①奖学金金额d≤0.6万元时,可以永久持续下去,实现可持续发展,即用20万元本金所得的利息作为奖学金。

②奖学金金额 d>0.6万元时,20万元本金最终会发送完。

而题目中规定以整存整取一年定期的形式来存入银行,故对于其他

形式的存款形式不作考虑。

5、不妨令第k个月末,老人的养老金余额为xk万元,且月利率为r,故: xk+1=(1+r)xk-0.1 故:其解为数列:

余额

xk = (x0-0.1/r)+0.1/r,且x0=10万元;

当x0-0.1/r0时,数列xk为递增数列,当x0-0.1/r0时,数列xk为

递减数列,当x0-0.1/r=0时,数列xk不增不减,故其平衡点为

x=0.1/r;而老人的养老金什么时候用完,可由编程所得。程序:

x0=10;r=0.003;

x(1)=(1+r).*x0;k=1; while x(k)0

x(k+1)=(1+r).*x(k)-0.1; k=k+1; end n=k;

其命令窗口显示结果为: n =

121

即可知该养老金可以用121个月。

如果该老人想把养老金用到80岁,即需要令x(240)=0;故

x(239)=0.1/(1+r);依次类推可得: x(0)=0.1/(1+r) + 0.1/可由编程所得,+ …… +0.1/

程序:

a=0;b=0.1; for i=1:240

b=b/(1+r);a=a+b; end n=a

其命令窗口显示结果为: n =

17.0908

即老人想在80岁时用完养老金,需要在60岁是存入17.0908万元。

10、用前差公式计算美国人口的人口年增长率r(k)与美国人口的数

量x(k)成二

次函数关系,即:r(k)=

=a(1)x(k)^2+a(2)x(k)+a(3)

故可以通过实际数值拟合出二项式的系数,程序:

f=@(a,x)a(3)+a(2).*x+a(1).*x.^2;

x=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92,106.5 ,123.2,131.7,150.7,179.3,204,226.5,251.4,281.4];

y=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92,106.5 ,123.2,131.7,150.7,179.3,204,226.5,251.4]; r=(x(2:22)-

x(1:21))./(10.*x(1:21)); a=polyfit(x(1:21),r,2) sse=sum((r-

f(a,y)).^2)其命令窗口显示结果为: a =

703.9289e-009 -270.3042e-006 36.8398e-003 sse =

198.5288e-006 即可知:

a1?7.0393?10?7,a2??2.703?10?4,a3?0.03684,误差平方和为

1.9852?10?4 模型假设为一阶非线性差分方程:

2

xk?1?xk?10xk(a1xk?a2xk?a3),k?1,2?? 且令

b1?10a1,b2?10a2,b3?10a3?1,可得:

32

xk?1?b1xk?b2xk?b3xk由已知可得:

b1?7.0393?10?6,b2??2.703?10?3,b3?1.3684,且不妨令x1?3.9利用matlab统计工具箱的非线性拟合函数nlinfit计算参数,可知其程序如下:

函数m文件fun3_4_1_10.m

%非线性拟合美国人口增长模型函数

%假设人口年增长率是人口数量的二次函数 function

y=fun3_10(b,x) y=zeros(size(x)); y(1)=b(4);

for k=2:length(x)

y(k)=b(1).*y(k-1).^3+ b(2).*y(k-1).^2+ b(3).*y(k-1); end 脚本:

t=1790:10:2000;

x=[3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92,106.5 ,123.2,131.7,150.7,179.3,204,226.5,251.4,281.4];

[b1,resd1]=nlinfit(t,x,@ fun3_10,[7.0393e-6,-2.703e-

3,1.3684,3.9]) sse1=sum(resd1.^2)

x1= fun3_10(b1,[t,2010,2020])

(x1(23:24)-x1(22:23))./x1(22:23)./10.*100 subplot(2,1,1)

plot(t,x,k*,t,x1(1:end- 2),ks,[2010,2020],x1(end-1:end),kp)

axis([1780,2030,0,350])

legend(统计值,模拟值,预测值,2)

相关文档
最新文档