一。x=-1:.05:1;y=sqrt(1-x.^2);
plot(x,[y;-y],'k',2.*x,[y;-y;2.*y;-2.*y],'k');
xlabel('x'),ylabel('y');
axisequal
holdon;
x1=0:.05:20;
y1=x1;
x2=0.1:.05:3;
y2=exp(x2);
plot(x1,y1,'k');
plot(x2,y2,'k',y2,x2,'k');
holdoff;
xlabel('x'),ylabel('y');
axisequal
n=input('max n=')x=y=
for q=2:n
for p=1:(q-1)
ifgcd(q,p)==1
x=[x,p./q];
y=[y,1./q];
endend
endplot(x,y,'k.')
axis([0,1,0,1]);
xlabel('x');ylabel('y')
title('riemann function');
二。一) 算法。
输入模拟试验次数n;
输出打赌者赢的概率p;
第1步初始化计数器k=0;
第2步对n=1,2…n循环进行3~7步;
第3步产生两个1~6的随机数求和并赋值给x;
第4步如果x是3或11,那么k加1,进入下一步循环;否则做第5步;
第5步如果产生4,5,6,8,9和10,则进入第6步;否则直接进入下一步循环;
第6步产生两个1~6的随机数求和并赋值给y;
第7步若y的值等于之前x的值,则跳出此步循环;若y的值为7,那么k加1,跳出此步循环;
第8步计算p=k./n。
二)matlab程序。
n=1000;
k=0;m=zeros(1,n);
fori=1:n
x=sum(randi(6,1,2));
switch x
casek=k+1;
caseflag=true;
while flag
y=sum(randi(6,1,2));
switch y
case x;
flag=false;
case 7;
k=k+1;
flag=false;
endend
endm(i)=k;
endfigure;p=m./(1:n);plot(m,p,'b');xlabel('n'),ylabel('p');p=k./n;
上图为不同的n值打赌者赢的概率变化图。
三)理论计算及收敛分析。
每个骰子的点数有 6 种结果:1,2,3,4,5,6. 掷两个骰子,掷出的点数组合( x, y )共有 6×6=36 种结果。
定义pi是点数之和x+y=i(i=2,3,…,12)的概率,则。
p2=p12= p3=p11= p4=p10= p5=p9= p6=p8= p7=
玩双骰子游戏,第 1 次掷出的点数之和为 3 或 11,则打赌者赢,可算得此情形打赌者赢的的概率a为。
a=p11+ p3=
当第 1 次掷出的点数之和是 4,5,6,8,9 或 10,继续掷骰子,直到掷出的点数之和是 7 或原来的值为止,如果先得到的点数之和是 7,则打赌者赢,利用条件概率,可算得此情形打赌者赢的概率b为。
b==所以打赌者赢的理论概率 p 为。
p=a+b=
就上图所示,收敛于。四。
i)程序。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,92,106.
5,123.2,131.7,150.
7,179.3,204.0,226.
5,251.4,281.4];
ea=@(b,t)3.9.*exp(b(1).*t-1790));
ba=nlinfit(t,x,ea,0.03);
ssea=sum((x-ea(ba,t)).2);
eb=@(b,t)b(2).*exp(b(1).*t-1790));
bb=nlinfit(t,x,eb,[0.03,3.9]);
sseb=sum((x-eb(bb,t)).2);
ec=@(b,t)b(2).*exp(b(1).*t-b(3)))
bc=nlinfit(t,x,ec,[0.03,3.9,1790]);
ssec=sum((x-ec(bc,t)).2);
bb(1)-bc(1),sseb-ssec,eb(bb,1790)-ec(bc,1790)];
结果分析:i) 取定x0=3.9,t0=1790,拟合r,则得 r =0.021194,误差平方和等于 17418,最大;
ii) 取定t0=1790 ,拟合x0和 r ,则得x0 =14.994 ,r =0.014223,误差平方和等于 2263.9;
iii) 若拟合t0,x0,r,则得t0=1743.6,x0=x(1743.6)=7.
7507,r =0.014223,误差平方和等于 2263.9,r 、误差平方和以及 x (1790)的计算结果与方法 b 的误差都非常微小,但是 matlab 给出警告信息,指出条件存在病态,参数未必能拟合得好,拟合效果图如下。
plot(t,x,'k+',t,eb(bb,t),'ko')
axis([1780,2010,0,300])
xlabel('年份 t'),ylabel('美国人口 x (百万)')
title('指数增长模型非线性化拟合效果图')
legend('实际值','理论值',2)
2)对x(t)=x0er(t-t0)两边求导数得lnx(t)=r(t-t0)+lnx0,当t0=1790时令y=lnx(t),x=t-t0,β1=r,β0=lnx0,则转化为一次多项式y=β1x+β0,计算数据(ti,xi),计算得(xi,yi),其中。
xi=ti -1790,yi=lnxi(i=1,2,…,22)
用polyfit计算β1,β0最小二乘估计b1,b0,程序如下。
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,92,..
x=t-1790;
y=log(x);
b=polyfit(x,y,1)
r=b(1)
x_0=exp(b(2))
eb=@(a,t)a(2).*exp(a(1).*t-1790));
xhat=eb([r,x_0],t);
sse=sum((x-xhat).^2)
plot(t,x,'k+',t,xhat,'ko')
axis([1780,2010,0,300])
xlabel('年份 t'),ylabel('美国人口 x (百万)')
title('指数增长模型线性化拟合效果图')
legend('实际值','理论值',2)
拟合得x0=6.045,r=0.020219,误差平方和等于 34892,拟合效果图为:
3)绘图程序。
plot(x,x-eb(bb,t),'bo',x,x-xhat,'bh',[0,300],[0,0],'k')
xlabel('美国人口(百万)')ylabel('拟合误差')
title('指数增长模型的拟合误差比较图')
legend('非线性拟合','线性化拟合',3)
原因:因为对于x(t)数值越大的数据,y=lnx(t)由于求对数带来的损失越大,以至于线性化拟合的误差越大。
4)程序如下。
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,92,106.
5,123.2,131.7,150.
7,179.3,204.0,226.
5,251.4,281.4];
za=@(b,t)b(1).*3.9./(3.9+(b(1)-3.9).*exp(-b(2).*t-1790)))
ba=nlinfit(t,x,za,[300,.02]);
ssea=sum((x-za(ba,t)).2);
zb=@(b,t)b(1).*b(3)./b(3)+(b(1)-b(3)).exp(-b(2).*t-1790)))
bb=nlinfit(t,x,zb,[300,.02,3.9]);
sseb=sum((x-zb(bb,t)).2);
zc=@(b,t)b(1).*b(3)./b(3)+(b(1)-b(3)).
exp(-b(2).*t-b(4)))bc=nlinfit(t,x,zc,[300,.02,3.
9,1790]);
ssec=sum((x-zc(bc,t)).2);
由上程序得到结果。
i)若取定x0=3.9,t0=1790,拟合r和n,则得r=0.027353, n =342.44,误差平方和等于1224.9;
ii)若取定t0=1790,拟合x0、r和n,则得x0=7.6981,r=0.021547, n =446.57,误差平方和等于 457.74;
iii)若拟合t0、x0、r和n,得t0=1771.3,x0=5.1752,r =0.021547, n =446.57,误差平方和等于 457.74.
综上(ii)最好,拟合程序及图如下:
plot(t,x,'b+',t,zb(bb,t),'bo')
axis([1780,2010,0,300])
xlabel('年份 t'),ylabel('美国人口 x (百万)')
title('阻滞增长模型非线性拟合效果图')
legend('实际值','理论值',2)
数学建模第一章
第一章方程 组 模型。本章学习目的 1 复习求解方程的基本原理和方法,掌握解方程的图形放 和迭代算法 2 能利用matlab软件编写迭代算法程序,了解迭代过程的图形表示 3 熟练掌握用matlab软件的函数来求解方程和方程组 4 通过范例展现求解实际问题的初步建模过程和matlab程序设计。1.1 ...
数学建模第一章
模型构成 在前面工作的基础上,将问题涉及的各个量符号化,以及各变量之间的内在联系形式化,利用适当的数学工具,将所关心的实际对象抽象为某个数学结构。可以是一个方程组的求解问题,也可以是一个最优化问题,也可以是其它。从简单的角度讲,这一环节要求用尽可能简洁清晰的符号 语言和结构将经过简化的问题进行整理性...
数学建模第一章
第一篇线性规划模型及应用。第一章线性规划问题的数学模型及其解的性质。1 1 1线性规划问题的数学模型。引例 某工厂生产某种型号的机床,每台机床上需要2.9米 2.1米和1.5米长的三种轴各一根,这些轴需要用同一种圆钢制作,圆钢的长度为7.4米。如果要生产100台机床,应如何下料,才能使得用料最省?分...