- 1、本文档共74页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机模拟—教程.ppt
计算机模拟;
Part 1 概论
;澳洲19名数学家组团赌博3年狂赢156亿元人民币;;1. 蒙特卡罗方法(Monte-Carlo方法, MC)
;97年的A题 每个零件都有自己的标定值,也都有自
己的容差等级,而求解最优的组合方案将要面对着的是一
个极其复杂的公式和108种容差选取方案,根本不可能去求
解析解,那如何去找到最优的方案呢?随机性模拟搜索最
优方案就是其中的一种方法,在每个零件可行的区间中按
照正态分布随机的选取一个标定值和选取一个容差值作为
一种方案,然后通过蒙特卡罗算法仿真出大量的方案,从
中选取一个最佳的。
02年的B题 关于彩票第二问,要求设计一种更好的方
案,首先方案的优劣取决于很多复杂的因素,同样不可能
刻画出一个模型进行求解,只能靠随机仿真模拟。;98 年美国赛A 题 生物组织切片的三维插值处理
94 年A 题逢山开路 山体海拔高度的插值计算;98年B 题 用很多不等式完全可以把问题刻画清楚;92 年B 题用分枝定界法
97 年B 题是典型的动态规划问题
98 年B 题体现了分治算法;97年A 题用模拟退火算法
00年B 题用神经网络分类算法
01年B 题这种难题也可以使用神经网络
美国89年A 题也和BP 算法有关系
美国03年B 题伽马刀问题也是目前研究的课题,目前算法最佳的是遗传算法。;97 年A 题、99 年B 题都可以用网格法搜索; 很多问题都是实际来的,数据可以是连续的,而计
算机只能处理离散的数据,因此需要将连续问题进行
离散化处理后再用计算机求解。比如差分代替微分、
求和代替积分等思想都是把连续问题离散化的常用方
法。; 数值分析研究各种求解数学问题的数值计算方法,
特别是适合于计算机实现方法与算法。;01年A 题中需要你会读BMP 图象
98年美国A 题需要你知道三维插值计算
03年B 题要求更高,不但需要编程计算还要进行处理;什么是计算机模拟;计算机模拟抛硬币;建模分析;建模目的;建立模型;模型求解;计算机模拟的特点;穷举法;穷举法;穷举法(一);穷举法(二);网格法;网格法;搜索示例:三个孩子的年龄(1);三个孩子的年龄(2);三个孩子的年龄(3);三个孩子的年龄(4);
Part 2 模拟方法;方法分类;Monte Carlo法;Monte Carlo法;思考与练习;确??性模拟;确定性模拟;Matlab求解;Matlab求解;Matlab求解;Matlab求解;离散化方法;离散化方法;离散化方法;离散化方法(递归);离散化方法(递归);动态仿真法;动态仿真法;动态仿真法;结合其它方法--插值与拟合;拟合;拟合;随机性模拟;常用命令;;Monte Carlo解决确定性问题;频率方法;建模;模拟;模拟;期望方法;模拟;用蒙特卡罗法解非线性规划问题;基本假设; 在MATLAB软件包中编程,共需3个M文件:randlp.m, mylp.m, lpconst.m.主程序为randlp.m.;% randlp.m
function [sol,r1,r2]=randlp(a,b,n) %随机模拟解非线性规划
debug=1;
a=0; %试验点下界
b=10; %试验点上界
n=1000; %试验点个数
r1=unifrnd(a,b,n,1); %n?1阶的[a,b]均匀分布随机数矩阵
r2=unifrnd(a,b,n,1);
sol=[r1(1) r2(1)];
z0=inf;
for i=1:n
x1=r1(i);
x2=r2(i);
lpc=lpconst([x1 x2]);
if lpc==1
z=mylp([x1 x2]);
if zz0
z0=z;
sol=[x1 x2];
end
end
end;
Part 6 思考与练习;连续系统模拟实例: 追逐问题;1. 建立平面直角坐标系: A(x1,y1), B(x2,y2), C(x3,y3), D(x4,y4).;v=1;
dt=0.05;
x=[0 0 10 10];
y=[0 10 10 0];
for i=1:4
plot(x(i),y(i),.),hold on
end
d=20;
while(d0.1)
x(5)=x(1);y(5)=y(1);
for i=1:4
d=sqrt((x(i+1)-x(i))^2+(y(i+1)-y(i))^2);
x(i)=x(i)+v*dt*(x(i+1)-x(i))/d;
y(i)=
文档评论(0)