当前位置:
文档之家› 数学建模第一章作业(章绍辉)
数学建模第一章作业(章绍辉)
P7 Pj P7 Pj
196 495
所以打赌者赢的理论概率 P 为
1 196 251 P 0 1 0.50707 9 495 495
(四)收敛性分析 一次打赌相当于伯努利概型,记为随机变量 X,取值为 0(表示打赌者输)或 1(表示打赌者赢) ,则 X 的期望为 P, 方差为 P(1 P) . n 次打赌,即相互独立地重复试验 n 次,试验结果可记 作随机变量序列 X1 , X 2 , , X n ,则打赌者赢的频率为平均值
方法二(参数方程) 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
评价:虽然半圆周由同样多的折线段连接而成,但是方 法二绘得的图形看起来处处一样光滑,事实上,方法二通过 等分圆心角来取得圆周上的采样点,并连结线段,所以绘得 的“圆形”实际上是正多边形.
( X1 X 2 X n ) n .
弱大数定律: 0 ,都有
n
lim Pr ( X1 X 2 X n ) n P 0 .
( X1 X 2 X n ) n P 1 . 强大数定律: Pr nlim
x
否则绘得的图像会在左边有一段与 x 轴重合. 程序: x=-3:.1:3; y=exp(x); plot(x,y,'k',y,x,'k',[-3,20],[-3,20],'k') axis equal axis([-3,20,-3,20]) grid xlabel('x') ylabel('y') title('y=e^x 和 y=ln x 的函数图像关于直线 y=x 对称')
等待用户从键盘输入数值数组并按回车键;input 将用户从 键盘输入的数值数组赋值给 user_entry 所代表的变量名. (2) user_entry = input('prompt', 's') 第二输入项是
规定的字符“'s'”,表示等待用户从键盘输入的是字符数组. 条件“ x p q 是既约分数,0<x<1,q>0”,即 p 和 q 是 正整数,p<q,p 和 q 的最大公约数等于 1. 例如: 当 q=2 时,有黎曼函数的图像的一个坐标点(1/2 , 1/2); 当 q=3 时,有黎曼函数的图像的两个坐标点(1/3 , 1/3) 和(2/3 , 1/3); 当 q=4 时,有黎曼函数的图像的两个坐标点(1/4 , 1/4) 和(3/4 , 1/4),而 x=2/4 不是既约分数;…… 可见,在程序中应设置二重循环语句: 第一重(外重)是分母 q 从 2 到由键盘输入的最大值的 循环,步长为 1; 第二重(内重)是分子 p 从 1 到 q-1 的循环,步长为 1, 如果 p 和 q 的最大公约数等于 1,就把 p/q 和 1/q 分别添加 入横坐标数组 x 和纵坐标数组 y. 注意 x 和 y 需要在循环语句之前说明为空数组. 当 x 为有理数(0<x<1)时,黎曼函数的图像是离散的 点集;当 x 为无理数(0<x<1)或 x=0 和 1 时,黎曼函数的 图像是 x 轴上的 0 到 1 之间的稠密点集,看起来就是 x 轴上 从 0 到 1 之间的直线段. 因此,图像应该由很多离散点以及
(2) 指数函数 y e 和对数函数 y ln x 的图像关于直线
x
y=x 对称. 解答
x 指 数 函 数 y e 和 对 数 函 数 y ln x 互 为 反 函 数 , 在
MATLAB 函数 plot 的输入当中交换 x 和 y 的次序,就实现 反函数,而且图像就是关于直线 y=x 对称. 根据两点确定一条直线的原理,绘制直线段只需给出两 端点的坐标. 使用命令 axis equal,才能绘得真正的对称图形,加上 坐标网格,能增强对称效果. 指数函数 y e 的自变量 x 的取值区间的左端不能太小,
y
0
0.1
0.2
0.3
0.4
0.5 x
0.6
0.7
0.8
0.9
1
3. 两个人玩双骰子游戏,一个人掷骰子,另一个人打赌 掷骰子者不能掷出所需点数,输赢的规则如下:如果第一次 掷出 3 或 11 点,打赌者赢;如果第一次掷出 2、7 或 12 点, 打赌者输;如果第一次掷出 4,5,6,8,9 或 10 点,记住这个点 数, 继续掷骰子, 如果不能在掷出 7 点之前再次掷出该点数, 则打赌者赢. 请模拟双骰子游戏,要求写出算法和程序,估 计打赌者赢的概率. 你能从理论上计算出打赌者赢的精确概 率吗?请问随着试验次数的增加,这些概率收敛吗? 解答 (一)算法 输入 模拟试验的次数 n; 输出 打赌者赢的概率 p. 第 1 步 初始化计数器 k=0; 第 2 步 对 i=1,2,…,n,循环进行第 3~7 步; 第 3 步 产生两个在 1~6 这 6 个整数中机会均等地取 值的随机数, 并把这两个随机数之和赋值给 x; 第 4 步 如果 x 是 3 或 11,那么 k 加 1,进入下一步循 环;否则,做第 5 步; 第 5 步 如果 x 不是 2、7 和 12,那么做第 6~8 步;否 则,直接进入下一步循环; 第 6 步 产生两个在 1~6 这 6 个整数中机会均等地取 值的随机数, 并把这两个随机数之和赋值给 y; 第 7 步 如果 y 不等于 x,也不等于 7,重复第 6 步所 做的; 第 8 步 如果 y 等于 7,那么 k 加 1,进入下一步循环; 否则,直接进入下一步循环; 第 9 步 计算概率 p=k./n .
关于伸缩变化和MATLAB函数plot的语法的讨论与方法一 相同. 特意选取参数t的步长, 使得半圆周仍然由40段折线连
接而成,如同方法一一样. 程序: t=linspace(0,2*pi,81); % 由40段折线连接成半圆周 x=cos(t); y=sin(t); plot(x,y,'k',2.*x,[y;2.*y],'k') axis equal title('方法二(参数方程)') 绘得的图形:
2 2 2 2 利用伸缩变换: x y 4 的横、纵坐标都是 x y 1的两
x2 2 2 2 倍, y 1 的横、纵坐标分别是 x y 1的两倍和一倍. 4
编写程序时运用好 MATLAB 函数 plot 的语法格式 2 (x 是向量, y 是矩阵) ,以及格式 4,使程序简洁. 使用命令 axis equal,才能绘得真正的圆. 程序: x=-1:.05:1; % 由40段折线连接成半圆周 y=sqrt(1-x.^2); plot(x,[y;-y],'k',2.*x,[y;-y;2.*y;-2.*y],'k') axis equal title('方法一(显函数)')
绘得的图形:
方法一(显函数) 2 1.5 1 0.5 0 -0.5 -1 -1.5 -2 -2.5
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
2.5
评价:方法一绘得的图形在外切圆和椭圆的左右两端看 起来明显还是折线,而在其余地方看起来比较光滑,原因在
dy 外切圆和椭圆的左右两端,导数 趋于无穷大,所以,虽 dx
的图像(要求分母 q 的最大值由键盘输入). 解答 输入的英文单词是 input, 通过在 MATLAB 帮助文档检 索 input 这个关键词,查到实现键盘输入的 MATLAB 函数 是 input,语法格式为: (1) user_entry = input('prompt') 输入项是一个字符
数组,input 将该字符数组显示在命令窗口,作为提示语,
P2 P 12
1 2 3 P P P P , 3 11 , 4 10 , 36 36 36
P5 P9
5 4 6 P P P , 6 , 7 . 8 36 36 36
玩双骰子游戏,第 1 次掷出的点数之和为 3 或 11,则打 赌者赢,可算得此情形打赌者赢的的概率 0 为
(二)MATLAB 程序 n=10000; k=0; for i=1:n x=ceil(rand*6)+ceil(rand*6); if x ==3|x==11 k=k+1; elseif x~=2&x~=7&x~=12 y=ceil(rand*6)+ceil(rand*6); while y~=x&y~=7 y=ceil(rand*6)+ceil(rand*6); end if y==7 k=k+1; end end end p=k/n 注 &与&&,|与||分别是短运算符与长运算符,功能有 区别,但在上面的程序中效果一样。 (三)理论计算 每个骰子的点数有 6 种结果:1,2,3,4,5,6. 掷两 个骰子, 掷出的点数组合 ( x, y) 共有 6× 6=36 种结果. 定义 Pi 是点数之和 x y i (i 2,3, ,12) 的概率,则
中心极限定理:当 n 时,X n nP nP(1 P)
的分布趋向于标准正态分布 (也就是说, 当 n 充分大的时候, 随机变量 ( X1 X 2 X n ) n 的分布近似于均值为 P、方差 为 P(1 P) n 的正态分布). 用循环语句实现以下计算:考虑试验次数 n=100、400、
第一章习题参考答案
1. 请编写绘制以下图形的 MATLAB 命令,并展示绘得 的图形.
x2 2 (1) x y 1、x y 4 分别是椭圆 y 1 的内切 4