数学建模2-4
- 格式:ppt
- 大小:633.50 KB
- 文档页数:33
数学建模部分课后习题解答1.在稳定的椅子问题中,如设椅子的四脚连线呈长方形,结论如何? 解:模型假设(1) 椅子四条腿一样长,椅脚与地面接触处视为一点,四脚的连线呈长方形 (2) 地面高度是连续变化的,沿任何方向都不会出现间断(没有像台阶那样的情况),即从数学角度来看,地面是连续曲面。
这个假设相当于给出了椅子能放稳的必要条件(3) 椅子在任何位置至少有三只脚同时着地。
为了保证这一点,要求对于椅脚的间距和椅腿的长度而言,地面是相对平坦的。
因为在地面上椅脚间距和椅腿长度的尺寸大小相当的范围内,如果出现深沟或凸峰(即使是连续变化的),此时三只脚是无法同时着地的。
模型建立在上述假设下,解决问题的关键在于选择合适的变量,把椅子四只脚同时着地表示出来。
首先,引入合适的变量来表示椅子位置的挪动。
生活经验告诉我们,要把椅子通过挪动放稳,通常有拖动或转动椅子两种办法,也就是数学上所说的平移与旋转变换。
然而,平移椅子后问题的条件没有发生本质变化,所以用平移的办法是不能解决问题的。
于是可尝试将椅子就地旋转,并试图在旋转过程中找到一种椅子能放稳的情形。
注意到椅脚连线呈长方形,长方形是中心对称图形,绕它的对称中心旋转180度后,椅子仍在原地。
把长方形绕它的对称中心旋转,这可以表示椅子位置的改变。
于是,旋转角度θ这一变量就表示了椅子的位置。
为此,在平面上建立直角坐标系来解决问题。
设椅脚连线为长方形ABCD,以对角线AC 所在的直线为x 轴,对称中心O 为原点,建立平面直角坐标系。
椅子绕O 点沿逆时针方向旋转角度θ后,长方形ABCD 转至A1B1C1D1的位置,这样就可以用旋转角)0(πθθ≤≤表示出椅子绕点O 旋转θ后的位置。
其次,把椅脚是否着地用数学形式表示出来。
当椅脚与地面的竖直距离为零时,椅脚就着地了,而当这个距离大于零时,椅脚不着地。
由于椅子在不同的位置是θ的函数,因此,椅脚与地面的竖直距离也是θ的函数。
由于椅子有四只脚,因而椅脚与地面的竖直距离有四个,它们都是θ的函数,而由假设(3)可知,椅子在任何位置至少有三只脚同时着地,即这四个函数对于任意的θ,其函数值至少有三个同时为0。
数学建模分类
一、基于数学规划的建模方法
1. 线性规划模型
2. 整数规划模型
3. 二次规划模型
4. 非线性规划模型
5. 动态规划模型
6. 最优化问题建模
二、基于统计分析的建模方法
1. 线性回归模型
2. 逻辑回归模型
3. 主成分分析模型
4. 马尔可夫模型
5. 时间序列模型
6. 方差分析模型
三、基于图论的建模方法
1. 最短路径模型
2. 最小生成树模型
3. 拓扑排序模型
4. 最大流模型
5. 最小费用流模型
6. 图着色问题建模
四、基于优化方法的建模方法
1. 遗传算法模型
2. 蚁群算法模型
3. 粒子群优化模型
4. 模拟退火模型
5. 遗传规划模型
6. 蚁群优化模型
五、基于随机过程的建模方法
1. 马尔可夫链模型
2. 随机游走模型
3. 泊松过程模型
4. 随机差分方程模型
5. 随机微分方程模型
6. 随机优化问题建模
六、基于决策分析的建模方法
1. 决策树模型
2. 神经网络模型
3. 支持向量机模型
4. 贝叶斯网络模型
5. 人工智能模型
6. 多目标决策问题建模。
实验二: 微分方程模型Matlab 求解与分析一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [2] 熟悉MATLAB 软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程; [4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程(组)的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
(1) 微分方程 例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2')输出:ans =tan(t+C1)(2)求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值为1,自变量为x 输出:ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x'''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) (2)微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
数学建模作业姓名:叶勃学号:班级:024121一:层次分析法1、 分别用和法、根法、特征根法编程求判断矩阵1261/2141/61/41A ⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦11/2433217551/41/711/21/31/31/52111/31/5311A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦的特征根和特征向量(1)冪法求该矩阵的特征根和特征向量 程序为:#include<iostream> #include<math.h> using namespace std;#define n 3 //三阶矩阵#define N 20 #define err 0.0001 //幂法求特征值特征向量 void main(){cout<<"**********幂法求矩阵最大特征值及特征向量***********"<<endl; int i,j,k;double A[n][n],X[n],u,y[n],max;cout<<"请输入矩阵:\n"; for(i=0;i<n;i++) for(j=0;j<n;j++)cin>>A[i][j]; //输入矩阵 cout<<"请输入初始向量:\n"; for(i=0;i<n;i++)cin>>X[i]; //输入初始向量 k=1; u=0;while(1){ max=X[0]; for(i=0;i<n;i++) {if(max<X[i]) max=X[i]; //选择最大值 }for(i=0;i<n;i++)y[i]=X[i]/max; for(i=0;i<n;i++)X[i]=0;for(j=0;j<n;j++)X[i]+=A[i][j]*y[j]; //矩阵相乘}if(fabs(max-u)<err){cout<<"A的特征值是 :"<<endl; cout<<max<<endl; cout<<"A的特征向量为:"<<endl; for(i=0;i<n;i++) cout<<X[i]/(X[0]+X[1]+X[2])<<" ";cout<<endl;break;}else{if(k<N) {k=k+1;u=max;} else {cout<<"运行错误\n";break;}}} }程序结果为:(2)和法求矩阵最大特征值及特征向量程序为:#include<stdio.h>#include<iostream>#include<math.h> using namespace std;#define n 3 //三阶矩阵#define N 20void main(){int i,j,k;double A[n][n],w[n],M[n],u[n],W[n][n],max;cout<<"********和法求矩阵的特征根及特征向量*******"<<endl;cout<<"请输入矩阵:\n";for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>A[i][j]; //输入矩阵 //计算每一列的元素和M[0]=0;M[1]=0;M[2]=0;for(i=0;i<n;i++)for(j=0;j<n;j++){M[i]+=A[j][i];}//将每一列向量归一化for(i=0;i<n;i++)for(j=0;j<n;j++){W[j][i]=A[j][i]/M[i];}//输出按列归一化之后的矩阵Wcout<<"按列归一化后的矩阵为:"<<endl;for(i=0;i<n;i++)for(j=0;j<n;j++){cout<<W[i][j]<<" ";if(j==2)cout<<endl;} //求特征向量w[0]=0;w[1]=0;w[2]=0;for(i=0;i<n;i++)for(j=0;j<n;j++){w[i]+=W[i][j];}cout<<"特征向量为:"<<endl; for(i=0;i<n;i++){u[i]=w[i]/(w[0]+w[1]+w[2]);cout<<u[i]<<" "<<endl;}//求最大特征值max=0;for(i=0;i<n;i++){w[i] = 0;for(j=0;j<n;j++){w[i] += A[i][j]*u[j];}}for(i = 0;i < n;i++){max += w[i]/u[i];}cout<<"最大特征根为:"<<endl;cout<<max/n<<endl; }运行结果为:(3)根法求矩阵最大特征值及特征向量:程序为:#include<stdio.h>#include<iostream>#include<math.h>using namespace std;#define n 3 //三阶矩阵#define N 20void main(){int i,j;double A[n][n],w[n],M[n],u[n],W[n][n],max;cout<<"********根法求矩阵的特征根及特征向量*******"<<endl; cout<<"请输入矩阵:\n";for(i=0;i<n;i++)for(j=0;j<n;j++)cin>>A[i][j]; //输入矩阵//计算每一列的元素和M[0]=0;M[1]=0;M[2]=0;for(i=0;i<n;i++)for(j=0;j<n;j++){M[i]+=A[j][i];}//将每一列向量归一化for(i=0;i<n;i++)for(j=0;j<n;j++){W[j][i]=A[j][i]/M[i];}//输出按列归一化之后的矩阵Wcout<<"按列归一化后的矩阵为:"<<endl;for(i=0;i<n;i++)for(j=0;j<n;j++){cout<<W[i][j]<<" ";if(j==2)cout<<endl;}//求特征向量//w[0]=A[0][0];w[1]=A[0][1];w[2]=A[0][2];w[0]=1;w[1]=1;w[2]=1;for(i=0;i<n;i++){for(j=0;j<n;j++){w[i]=w[i]*W[i][j];}w[i]=pow(w[i], 1.0/3);}cout<<"特征向量为:"<<endl;for(i=0;i<n;i++){u[i]=w[i]/(w[0]+w[1]+w[2]);cout<<u[i]<<" "<<endl;}//求最大特征值max=0;for(i=0;i<n;i++){w[i] = 0;for(j=0;j<n;j++){w[i] += A[i][j]*u[j];}}for(i = 0;i < n;i++){max += w[i]/u[i];}cout<<"最大特征值为:"<<endl; cout<<max/n;}运行结果为:2、编程验证n阶随机性一致性指标RI:运行结果:3、考虑景色、费用、居住、饮食、旅途五项准则,从桂林、黄山、北戴河三个旅游景点选择最佳的旅游地。
考试内容分布:1、线性规划2题,有1题需编程;2、非线性规划2题,有1题需编程;3、微分方程1题,需编程;4、差分方程2题,纯计算,不需编程;5、插值2题,拟合1题,纯计算,不需编程;;6、综合1题(4分),纯计算,不需编程。
一、列出下面线性规划问题的求解模型,并给出matlab计算环境下的程序1.某车间有甲、已两台机床,可用于加工三种工件,假定这两台车床的可用台时数分别为800和900,三种工件的数量分别为400,600和500,且已知用两种不同车床加工单位数量不同工件所需的台时数和加工费用如下表。
问怎样分配车床的加工任务,才能即满足加工工件的要求,又使加工费用最低。
(答案见课本P35, 例1)2.有两个煤厂A,B,每月进煤分别不少于60t、100t,它们负责供应三个居民区的用煤任务,这三个居民区每月需用煤分别为45t, 75t, 40t。
A厂离这三个居民区分别为10km, 5km, 6km,B厂离这三个居民区分别为4km, 8km, 15km,问这两煤厂如何分配供煤,才能使总运输量最小?(1)问题分析设A煤场向这三个居民区供煤分别为x1,x2,x3;B煤场向这三个居民区供煤分别为x4,x5,x6,则min f=10*x1+5*x2+6*x3+4*x4+8*x5+15*x6,再根据题目约束条件来进行解题。
(2) 模型的求解>> f=[10 5 6 4 8 15];>> A=[-1 -1 -1 0 0 00 0 0 -1 -1 -1-1 0 0 -1 0 00 -1 0 0 -1 00 0 -1 0 0 -1];>> b=[-60;-100;-45;-75;-40];>> Aeq=[];>> beq=[];>> vlb=zeros(6,1);>> vub=[];>> [x,fval]=linprog(f,A,b,Aeq,beq,vlb,vub)Optimization terminated.(3) 结果分析x =0.0000 20.0000 40.0000 45.0000 55.0000 0.0000 fval = 960.0000即A 煤场分别向三个居民区供煤0t,20t,40t ;B 煤场分别向三个居民区供煤45t,55t,0t 可在满足条件下使得总运输量最小。
数学建模教学大纲【课程编码】 JSZB0240【适用专业】 信息与计算科学【课 时】 78【学 分】 4【课程性质、目标和要求】数学建模是信息与计算科学专业的一专业课。
它是研究如何将数学方法和计算机知识结合起来用于解决实际问题的一门边缘交叉学科,是集经典数学、现代数学和实际问题为一体的一门新型课程,是应用数学解决实际问题的重要手段和途径。
本课程主要介绍数学建模的概述、初等模型、简单优化模型、微分方程模型、差分方程模型、概率统计模型、图论模型、线性规划模型等模型的基本建模方法及求解方法.数学建模是继本科生高等数学、工程数学之后为了进一步提高运用数学知识解决实际问题的基本技能,培育和训练综合能力所开设的一门新学科。
通过具体实例的引入使学生掌握数学建模基本思想、基本方法、基本类型,学会进行科学研究的一般过程,并能进入一个实际操作的状态。
通过数学模型有关概念、特征的学习和数学模型应用实例的介绍,培养学生数学推导计算和简化分析能力,熟练运用计算机能力;培养学生联想、洞察能力,综合分析能力;培养学生应用数学方法解决实际问题的能力。
【教学时间安排】本课程计4学分,78学时(理论学时54,实验学时24) 学时分配如下:序号课程内容课时备注(教学形式)1建立数学模型4课堂讲授 作业 辅导2初等模型4课堂讲授 作业 辅导3简单的优化模型4课堂讲授 作业 辅导4数学规划模型8课堂讲授 作业 辅导5微分方程模型6课堂讲授 作业 辅导6差分方程模型4课堂讲授 作业辅导7离散模型6课堂讲授 作业 辅导8概率统计模型8课堂讲授 作业 辅导9动态优化模型6课堂讲授 作业 辅导10大作业讲评:露天矿生产的车辆安排4课堂讲授 课堂讨论11实验1:LINDO软件的使用方法4上机练习 12实验2:LINGO软件的使用方法4上机练习13实验3:用LINDO/LINGO软件包求解部分优化建模赛题4上机练习14实验4:用Matlab进行统计回归分析4上机练习15实验5:用Matlab作散点插值4上机练习16实验6:用Matlab作数据拟合4上机练习合 计78【教学内容要点】第一章 建立数学模型一、学习目的要求 使学生正确了解数学描述和数学建模不同于常规数学理论的思维特征,了解数学模型的意义及分类,掌握建立数学模型的一般方法及步骤。
《数学建模》课程教案一、教学内容本节课的教学内容选自《数学建模》教材的第五章,主要内容包括线性规划模型的建立、图与网络模型的建立、整数规划模型的建立以及非线性规划模型的建立。
通过本节课的学习,使学生掌握数学建模的基本方法和技巧,培养学生解决实际问题的能力。
二、教学目标1. 让学生掌握线性规划、图与网络、整数规划和非线性规划模型的建立方法。
2. 培养学生运用数学知识解决实际问题的能力。
3. 提高学生的团队协作能力和创新意识。
三、教学难点与重点1. 教学难点:线性规划、图与网络、整数规划和非线性规划模型的建立及求解。
2. 教学重点:线性规划模型的建立和求解。
四、教具与学具准备1. 教具:多媒体教学设备、黑板、粉笔。
2. 学具:教材、笔记本、文具。
五、教学过程1. 实践情景引入:以一个工厂生产安排的问题为例,引入线性规划模型的建立和求解。
2. 知识点讲解:(1)线性规划模型的建立:讲解目标函数的设定、约束条件的确定以及线性规划模型的标准形式。
(2)图与网络模型的建立:讲解图的概念、图的表示方法以及网络模型的建立。
(3)整数规划模型的建立:讲解整数规划的概念和建立方法。
(4)非线性规划模型的建立:讲解非线性规划的概念和建立方法。
3. 例题讲解:选取具有代表性的例题,讲解模型建立和求解的过程。
4. 随堂练习:让学生分组讨论并解决实际问题,巩固所学知识。
六、板书设计板书设计如下:1. 线性规划模型:目标函数约束条件标准形式2. 图与网络模型:图的概念图的表示方法网络模型的建立3. 整数规划模型:整数规划的概念整数规划的建立方法4. 非线性规划模型:非线性规划的概念非线性规划的建立方法七、作业设计1. 作业题目:(1)根据给定的条件,建立线性规划模型,并求解。
(2)根据给定的条件,建立图与网络模型,并求解。
(3)根据给定的条件,建立整数规划模型,并求解。
(4)根据给定的条件,建立非线性规划模型,并求解。
2. 答案:(1)线性规划模型的目标函数为:Z = 2x + 3y,约束条件为:x + y ≤ 6,2x + y ≤ 8,x ≥ 0,y ≥ 0。