数学建模基础入门小程序文件
- 格式:doc
- 大小:229.00 KB
- 文档页数:20
数模菜鸟教程数学建模竞赛新手教程(1)--数模竞赛是什么数学建模竞赛,就是在每年叶子黄的时候(长沙的树叶好像一年到头都是绿的)开始的一项数学应用题比赛。
大家都做过数学应用题吧,不知道现在的教育改革了没有,如果没有大变化,大家都应该做过,比如说[树上有十只鸟,开枪打死一只,还剩几只],这样的问题就是一道数学应用题(应该是小学生的吧),正确答案应该是9只,是吧?这样的题照样是数学建模题,不过答案就不重要了,重要的是过程。
真正的数学建模高手应该这样回答这道题。
“树上有十只鸟,开枪打死一只,还剩几只?”“是无声手枪或别的无声的枪吗?”“不是。
”“枪声有多大?”“80-100分贝。
”“那就是说会震的耳朵疼?”“是。
”“在这个城市里打鸟犯不犯法?”“不犯。
”“您确定那只鸟真的被打死啦?”“确定。
”“OK,树上的鸟里有没有聋子?”“没有。
”“有没有关在笼子里的?”“没有。
”“边上还有没有其他的树,树上还有没有其他鸟?”“没有。
”“有没有残疾的或饿的飞不动的鸟?”“没有。
”“算不算怀孕肚子里的小鸟?”“不算。
”“打鸟的人眼有没有花?保证是十只?”“没有花,就十只。
”“有没有傻的不怕死的?”“都怕死。
”“会不会一枪打死两只?”“不会。
“所有的鸟都可以自由活动吗?”“完全可以。
”“如果您的回答没有骗人,打死的鸟要是挂在树上没掉下来,那么就剩一只,如果掉下来,就一只不剩。
”不是开玩笑,这就是数学建模。
从不同的角度思考一个问题,想尽所有的可能,正所谓的智者千虑,绝无一失,这,才是数学建模的高手。
然后,数学建模高手的搭挡----论文写作高手(暂称为写手吧),会把以上的思想用最好的方式表达出来。
一般的写手会直接把以上的文字放到论文里就成了。
但是专职的数学建模论文的写手不会这样做,她们会先分析这些思想,归整好条理;然后,她们会试着用图画来深入浅出的表达这些思想,或者再使用一些表格;这些都是在Word中进行,当然,如果有不喜欢Microsoft 的朋友或是国粹主义者喜欢用WPS什么的当然也可以。
数学建模基础引言在现代社会,数学建模成为了一种重要的工具和方法,用于解决各种实际问题。
数学建模是一门跨学科的学科,它结合了数学、计算机科学、统计学和领域专业知识,通过数学模型的构建和求解,来描述和解释现实世界中的问题。
本文将介绍数学建模的基础知识和方法。
数学建模的基本流程数学建模的基本步骤包括问题的分析、建立数学模型、模型求解、结果分析和模型验证。
下面将对每个步骤进行详细说明。
问题的分析在进行数学建模之前,首先需要对问题进行充分的分析。
问题的分析包括确定问题的背景和目标,了解问题的限制条件和约束条件,分析问题的关键因素和变量,以及确定问题的求解方法和评价指标。
建立数学模型建立数学模型是数学建模的核心步骤。
在建立数学模型时,需要根据问题的特点选择合适的数学工具和方法,用数学语言来描述问题。
常用的数学模型包括线性模型、非线性模型、动态模型、随机模型等。
在建立数学模型时,需要明确变量的定义和范围,确定各个变量之间的关系,以及选择合适的数学形式来描述这些关系。
模型求解模型求解是指通过数学方法来求解建立的数学模型。
常用的数学方法包括解析解法、数值解法、优化方法等。
在模型求解过程中,需要根据具体的求解方法和算法来进行计算和推导,得到模型的具体解。
根据问题的具体特点,可能需要使用编程语言和计算机软件来实现模型的求解。
结果分析在模型求解之后,需要对求解的结果进行分析和解释。
结果分析需要根据问题的背景和目标,对模型求解的结果进行合理的解释和说明。
可以通过数据分析、图表展示等方式,来对结果进行可视化和呈现,以便更好地理解和评估模型的有效性和应用价值。
模型验证模型验证是指通过实际数据和实验验证建立的数学模型的准确性和可靠性。
在模型验证过程中,需要与实际数据进行对比和验证,对模型的假设和预测进行检验。
如果模型能够对实际问题进行合理的解释和预测,那么可以认为模型具有一定的准确性和可靠性。
数学建模的应用领域数学建模广泛应用于各个领域的研究和实践中。
——暑期培训学号:1003014117系别:动物科学系姓名:刘芳上课时间:2102.704-713 815-9102012-07-05城市居民食品分类及零售价格预测消费者物价指数(Consumer Price Index),英文缩写为CPI,也称消费价格指数,是反映与居民生活有关的产品及劳务价格统计出来的物价变动指标,通常作为观察通货膨胀水平的重要指标,是与人民生活密切相关的参考指标。
城市居民食品零售价格是消费者物价指数的重要组成部分,权威机构研究认为粮食生产、流通成本上涨一定会带动农产品价格总体上涨,特别是2011年异常的气候情况,导致生产成本大量增加,国际粮价对国内供需的影响,食品价格未来可能发生上涨。
刚公布3月份的CPI增幅达5.4%,创32个月来的新高,这使得年内的通货膨胀压力正在增强。
问题1:根据附录建立数学模型,将所涉及食品适当分类,并分析每类食品的特点;问题2:根据附录建立数学模型,预测2011年4、5月的城市居民食品零售价格走势;问题3:写一篇城市居民食品零售价格情况分析和对有关部门建议的文章。
附录是2010.3~2011.4的城市居民食品零售价格数据,数据来源:/cms/frontpage/price_monitor/PriceTypeList.action?type=1B题:水量计算问题辐射井是由一口大口径的竖井和自竖井内周围含水层任意方向、高程打进一层数条水平辐射管组成,地下水沿水平辐射管汇集到竖井中。
辐射井与常规井相比,具有出水量大、寿命长、管理费用低、维修方便、便于集中管理等优点。
从20世纪60年代以来,辐射井技术已在我国推广应用。
如辐射井在华北深基坑工程降水中,取得了较好的效果。
随着北京东直门地铁站采用辐射井降水技术取得成功,目前辐射井技术在地铁施工又发挥着重要作用。
辐射井的出水量,是设计和布置辐射井工作中所需要解决的问题之一。
试在下列假定条件下:(1)潜水含水层均质,隔水底板水平,在平面上无限分布;不考虑水和介质骨架的压缩性。
一、数学模型的定义现在数学模型还没有一个统一的准确的定义,因为站在不同的角度可以有不同的定义。
不过我们可以给出如下定义:“数学模型是关于部分现实世界和为一种特殊目的而作的一个抽象的、简化的结构。
”具体来说,数学模型就是为了某种目的,用字母、数学及其它数学符号建立起来的等式或不等式以及图表、图象、框图等描述客观事物的特征及其内在联系的数学结构表达式。
一般来说数学建模过程可用如下框图来表明:数学是在实际应用的需求中产生的,要解决实际问题就必需建立数学模型,从此意义上讲数学建模和数学一样有古老历史。
例如,欧几里德几何就是一个古老的数学模型,牛顿万有引力定律也是数学建模的一个光辉典范。
今天,数学以空前的广度和深度向其它科学技术领域渗透,过去很少应用数学的领域现在迅速走向定量化,数量化,需建立大量的数学模型。
特别是新技术、新工艺蓬勃兴起,计算机的普及和广泛应用,数学在许多高新技术上起着十分关键的作用。
因此数学建模被时代赋予更为重要的意义。
二、建立数学模型的方法和步骤1. 模型准备要了解问题的实际背景,明确建模目的,搜集必需的各种信息,尽量弄清对象的特征。
2. 模型假设根据对象的特征和建模目的,对问题进行必要的、合理的简化,用精确的语言作出假设,是建模至关重要的一步。
如果对问题的所有因素一概考虑,无疑是一种有勇气但方法欠佳的行为,所以高超的建模者能充分发挥想象力、洞察力和判断力,善于辨别主次,而且为了使处理方法简单,应尽量使问题线性化、均匀化。
3. 模型构成根据所作的假设分析对象的因果关系,利用对象的内在规律和适当的数学工具,构造各个量间的等式关系或其它数学结构。
这时,我们便会进入一个广阔的应用数学天地,这里在高数、概率老人的膝下,有许多可爱的孩子们,他们是图论、排队论、线性规划、对策论等许多许多,真是泱泱大国,别有洞天。
不过我们应当牢记,建立数学模型是为了让更多的人明了并能加以应用,因此工具愈简单愈有价值。
自己整理MATLAB知识1入门例1-1 绘制正弦曲线和余弦曲线。
x=[0:0.5:360]*pi/180;plot(x,sin(x),x,cos(x));例1-2 求方程3x4+7x3+9x2-23=0的全部根。
p=[3,7,9,0,-23]; %建立多项式系数向量x=roots(p) %求根例1-3 求积分quad('x.*log(1+x)',0,1) %‘里是被积函数’0,1分别是积分上下限例1-4 求解线性方程组。
a=[2,-3,1;8,3,2;45,1,-9]; %方程左面系数b=[4;2;17]; %方程右面系数x=inv(a)*b %也可是x=a\b的形式例1-5 水仙花for m=100:999m1=fix(m/100); %求m的百位数字m2=rem(fix(m/10),10); %求m的十位数字m3=rem(m,10); %求m的个位数字if m==m1*m1*m1+m2*m2*m2+m3*m3*m3disp(m)endend例1-6 已知,当n=100时,求y的值。
程序如下:y=0;n=100;for i=1:ny=y+1/(2*i-1);endy例1-7 求[100,200]之间第一个能被21整除的整数for n=100:200if rem(n,21)~=0continueendbreakendn例1-8 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。
求[1,500]之间的全部完数。
for m=1:500s=0;for k=1:m/2if rem(m,k)==0s=s+k;endendif m==sdisp(m);endend例1-9 绘制曲线t=0:0.1:2*pi;x=t.*sin(3*t);y=t.*sin(t).*sin(t);plot(x,y);例1-10 用不同标度在同一坐标绘制曲线y1=0.2e-0.5xcos(4πx) 和y2=2e-0.5xcos(πx) 程序如下x=0:pi/100:2*pi;y1=0.2*exp(-0.5*x).*cos(4*pi*x);y2=2*exp(-0.5*x).*cos(pi*x);plotyy(x,y1,x,y2);例1-11 绘制三维曲线t=0:pi/100:20*pi;x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z);title('Linein 3-D Space');xlabel('X');ylabel('Y');zlabel('Z');grid on;例1-12 绘制三维曲面[x,y]=meshgrid(0:0.25:4*pi);z=sin(x+sin(y))-x/10;mesh(x,y,z);axis([0 4*pi 0 4*pi -2.5 1]);例1-13 使用switch结构判断学生成绩的等级,90分以上为优,80~90为良,70~80为中,60~70为及格,60分以下为不及格。
score=98;s1=fix(score/10); %取十位数switch s1case {9,10}s='优'case 8s='良'case 7s='中'case 6s='及格'otherwises='不及格'end例1-14 使用for结构计算1+2+3+…+100 sum=0;for i=1:100sum=sum+i;endsum另一种方法:i=1;100;a=sum(i)第三种方法:sum=0; i=1;while i<=100sum=sum+i;i=i+1;endsum例1-15例1-16 鸡兔同笼问题:鸡和兔子关在一个笼子里,已知共有头36个,脚100个,求笼关了多少只兔子和多少只鸡?chicken=1;while 1if chicken+(100-2*chicken)/4==36break;endchicken=chicken+1;endchickenrabbit=(100-2*chicken)/4例1-17 设银行年利率为11.25%.将10000元钱存入银行,问多长时间会连本带利翻一番?money=10000;years=0;while money<20000years=years+1;money=money*(1+11.25/100)end例1-18 小猴吃桃问题有一天小猴摘下了若干个桃子,当即吃掉了一半,又多吃了一个.第二天接着吃了剩下的一半,又多吃了一个以后每天都是吃掉尚存的桃子的一半零一个.到第十天早上,小猴准备吃桃子时,看到只剩下 1 个桃子了.问小猴第一天共摘下了多少个桃子?k=10;p(k)=1;while k>=2k=k-1;p(k)=2*(p(k+1)+1);endp(1)另一种方法:x(1)=1;for i=2:10;x(i)=(x(i-1)+1)*2 ;endx(10)第三种方法:m=1;for i=1:9m=2*(m+1);endm例1-19 对任一自然数n,按如下法则进行运算:若n为偶数, 则将n除2;若n为奇数,则将n乘3加1。
将运算结果按上面法则继续运算, 重复若干次后计算结果最终是1.n=input(‘input n=’); %输入数据while n~=1r=rem(n,2); %求n/2的余数if r = =0n=n/2 %第一种操作elsen=3*n+1 %第二种操作endend例1-20 利用for循环求1!+2!+3!+…. +5!的值sum=0;for i=1:5sum=sum+prod(1:i);endsum例1-21 求向量x的各元素的平方和x = input (‘x=’);s=0;for i=1:length(x)s=s+x(i)^2;ends例1-22 计算f(x)=ex,使用break语句当f(x)>1000时终止计算。
x=0:10;for n=xf=exp(n);if f>1000breakendend例1-23 使用for循环将字符串中的数值取出,遇到非数值则跳过。
str='The result is 100.';len=length(str);s=[ ];for n=1:lenif str(n)>'9' | str(n)<'0' %非数值时 continueends=[s str(n)]end例1-24x=-5:0.1:5;if x>=1y=x.^2-1;elseif -1<x<1y=0;elsey=-x.^2-1;endplot(x,y);例1-25 计算s=0;for i=1:10000s=s+1/2^(i+2);end例1-26 用循环求解最小的m ,使其满足 s=0;221101111x x x x x ⎧-≥⎪-<<⎨⎪-+≤-⎩∑=+100001221i i ∑=>m i i 110000while (s<=10000) m=m+1; s=s+m; end例1-27 编写M 脚本文件,分别使用for 和while 循环语句计算 ,当sum>1000时终止程序。
for 循环 clear sum=0 for n=1:1000 sum=n^n+sum if sum>1000 break end end while 循环 sum=0;n=1; while sum<1000 sum=n^n+sum n=n+1∑==101i i isum例1-28 考虑两个多项式a(x)=x3+2x2+3x+4和b(x)= x3+4x2+9x+16的乘积:a=[1 2 3 4] ; b=[1 4 9 16];c=conv(a , b)c =1 6 20 50 75 84 64结果是c(x)=x6+6x5+20x4+50x3+75x2+84x+64。
两个以上的多项式的乘法需要重复使用conv。
例1-29 设x=[1,2,3,4,5,6]; y=[2,5,12,16,13,11];试用这6个散点,拟合一条3次多项式曲线.x=[1,2,3,4,5,6]; y=[2,5,12,16,13,11];f=polyfit(x,y,3);X=linspace(0,6,100);Y=polyval(f,X);plot(x,y,'ro',X,Y,'B-','linewidth',5);例1-30 求极限函数 limit格式 limit(F,x,a) %计算符号表达式F=F(x)的极限值,当x→a 时。
limit(F,a) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→a时。
limit(F) %用命令findsym(F)确定F中的自变量,设为变量x,再计算F的极限值,当x→0时。
limit(F,x,a,'right')或limit(F,x,a,'left') %计算符号函数F 的单侧极限:左极限x→a- 或右极限x→a+。
syms x a t h n;L1 = limit((cos(x)-1)/x)L2 = limit(1/x^2,x,0,'right')L3 = limit(1/x,x,0,'left')L4 = limit((log(x+h)-log(x))/h,h,0)v = [(1+a/x)^x, exp(-x)];L5 = limit(v,x,inf,'left')L6 = limit((1+2/n)^(3*n),n,inf)例1-31 求导函数 diffsyms x y tD1 = diff(sin(x^2)*y^2,2)D2 = diff(D1,y)D3 = diff(t^6,6)计算结果为:D1 = -4*sin(x^2)*x^2*y^2+2*cos(x^2)*y^2D2 = -8*sin(x^2)*x^2*y+4*cos(x^2)*yD3 = 720格式 diff(S,'v')、diff(S,sym('v')) %对表达式S中指定符号变量v计算S的1阶导数。
diff(S) %对表达式S中的符号变量v计算S的1阶导数,其中v=findsym(S)。
diff(S,n) %对表达式S中的符号变量v计算S的n阶导数,其中v=findsym(S)。