数学建模作业及答案
- 格式:doc
- 大小:1.18 MB
- 文档页数:22
09级数模试题1. 把四只脚的连线呈长方形的椅子往不平的地面上一放,通常只有三只脚着地,放不稳,然后稍微挪动几次,就可以使四只脚同时着地,放稳了。
试作合理的假设并建立数学模型说明这个现象。
(15分)解:对于此题,如果不用任何假设很难证明,结果很可能是否定的。
因此对这个问题我们假设 :(1)地面为连续曲面(2)长方形桌的四条腿长度相同(3)相对于地面的弯曲程度而言,方桌的腿是足够长的(4)方桌的腿只要有一点接触地面就算着地。
那么,总可以让桌子的三条腿是同时接触到地面。
现在,我们来证明:如果上述假设条件成立,那么答案是肯定的。
以长方桌的中心为坐标原点作直角坐标系如图所示,方桌的四条腿分别在A 、B 、C 、D 处,A 、B,C 、D的初始位置在与x 轴平行,再假设有一条在x 轴上的线ab,则ab 也与A 、B ,C 、D 平行。
当方桌绕中心0旋转时,对角线 ab 与x 轴的夹角记为θ。
容易看出,当四条腿尚未全部着地时,腿到地面的距离是不确定的。
为消除这一不确定性,令 ()f θ为A 、B 离地距离之和,()g θ为C 、D 离地距离之和,它们的值由θ唯一确定。
由假设(1),()f θ,()g θ均为θ的连续函数。
又由假设(3),三条腿总能同时着地, 故()f θ()g θ=0必成立(∀θ)。
不妨设(0)0f =,(0)0g >g (若(0)g 也为0,则初始时刻已四条腿着地,不必再旋转),于是问题归结为:已知()f θ,()g θ均为θ的连续函数,(0)0f =,(0)0g >且对任意θ有00()()0f g θθ=,求证存在某一0θ,使00()()0f g θθ=。
证明:当θ=π时,AB 与CD 互换位置,故()0f π>,()0g π=。
作()()()h f g θθθ=-,显然,()h θ也是θ的连续函数,(0)(0)(0)0h f g =-<而()()()0h f g πππ=->,由连续函数的取零值定理,存在0θ,00θπ<<,使得0()0h θ=,即00()()f g θθ=。
数学建模实验题目解答题目一:慢跑者与狗一个慢跑者在平面上沿椭圆以恒定的常速v=1跑步,设椭圆方程为: x=10+20cost, y=20+5sint. 突然有一只狗攻击他. 这只狗从原点出发,以恒定速率w 跑向慢跑者.狗的运动方向始终指向慢跑者.分别求出w=20,w=5时狗的运动轨迹,并分析狗是攻击到慢跑者. 一,建立模型.设时刻t 慢跑者的坐标为(X(t),Y(t)),狗的坐标为(x(t),y(t)), 又X=10+20cost, Y=20+15sint. 由于狗的运动方向始终指向慢跑者,故此时狗与人的坐标连线就是此时狗的轨迹曲线弧处的切线, 即dy/dx=(Y-y)/(X-x), y ’=(dy/dt)/(dx/dt) 又运动时间相同:,解得可得参数方程为:二,求解模型w=20时,建立m-文件xy1.m 如下: function dy=xy1 (t,y) dy=zeros(2,1);dy(1)=20*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);⎪⎪ ⎩ ⎪⎪ ⎨ ⎧ = = - + - + + - + =- + - + + - + = 0) 0 ( ,0 ) 0 ( )sin 15 20 ( )sin 15 20 ( ) cos 20 10 ( )cos 20 10 ( )sin 15 20 ( ) cos 20 10 ( 22 2 2 y x y t y t x t wdtdy x t y t x t wdtdxdy(2)=20*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2); 取t0=0,tf=6.0,建立主程序fangcheng1.m如下:t0=0;tf=6.0;[t,y]=ode45('eq3',[t0 tf],[0 0]);T=0:0.1:2*pi;X=10+20*cos(T);Y=20+15*sin(T);plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'*')轨迹线如下图:发现狗没有攻击到慢跑者,于是,从4.0开始,不断的更改tf的值,发现当tf=3.15时, 刚好追上慢跑者.其轨迹线如下图所示:W=5时, 建立m-文件xy2.m如下:function dy=xy2(t,y)dy=zeros(2,1);dy(1)=5*(10+20*cos(t)-y(1))/sqrt((10+20*cos(t)-y(1))^2+(20+15*sin(t)-y(2))^2);dy(2)=5*(20+15*sin(t)-y(2))/sqrt((10+20*cos(t)- y(1))^2+(20+15*sin(t)-y(2))^2);取t0=0,tf=30立主程序fangcheng2.m如下:t0=0;tf=30[t,y]=ode45('eq4',[t0 tf],[0 0]); T=0:0.1:2*pi;X=10+20*cos(T);Y=20+15*sin(T);plot(X,Y,'-')hold onplot(y(:,1),y(:,2),'*')轨迹线如下图:发现狗没有攻击到慢跑者,当tf=50,轨迹线如下图:在fangcheng2.m不断修改tf的值,分别取tf=60.70…1000…. 可以看出,狗永远追不上慢跑者.。
数学建模试卷及参考答案一、选择题1. 已知函数 $y = 2x^3 - 5x^2 + 3x - 7$,求导数函数 $y'$ 的值。
A) $6x^2 - 10x + 3$\B) $6x - 10x^2 + 3$\C) $6x - 10x + 3$\D) $6x^2 - 10x^2 + 3$答案:A2. 设矩形的长为 $x$,宽为 $y$,满足 $x^2 + y^2 = 25$。
当矩形的面积最大时,求矩形的长和宽。
A) 长为 4,宽为 3\B) 长为 5,宽为 3\C) 长为 4,宽为 2.5\D) 长为 5,宽为 2.5答案:A3. 一条直线过点 $A(1,2)$ 和点 $B(3,-1)$,与另一条直线 $2x + y - 4 = 0$ 平行。
求该直线的方程。
A) $2x - y + 3 = 0$\B) $2x - y - 3 = 0$\C) $-2x + y - 3 = 0$\D) $2x - y - 5 = 0$答案:B4. 已知函数 $y = e^x$,求 $y$ 的微分值。
A) $e^x$\B) $e^x + C$\C) $e^x - C$\D) $C \cdot e^x$答案:A5. 一辆汽车以每小时 60 公里的速度行驶,途中经过两座相距 60 公里的城市。
假设两座城市间有一辆以每小时90 公里的速度行驶的列车,两车同时出发。
求两辆车首次相遇的时间。
A) 0.5 小时\B) 1 小时\C) 1.5 小时\D) 2 小时答案:A二、填空题6. 已知函数 $f(x) = \sin(x)$,求函数 $g(x) = f^{\prime}(x)$。
答案:$g(x) = \cos(x)$7. 若直线 $3x + ky = 2$ 与直线 $2x - y = 3$ 相垂直,则 $k$ 的值为\_\_\_。
答案:$k = 6$8. 设抛物线 $y = ax^2 - 3x + 2$ 的顶点为 $(2,1)$,则 $a$ 的值为\_\_\_。
数学建模试题(带答案)第一章4.在1.3节“椅子能在不平的地面上放稳吗”的假设条件中,将四脚的连线呈正方形改为长方形,其余不变。
试构造模型并求解。
答:相邻两椅脚与地面距离之和分别定义为)()(a g a f 和。
f 和g 都是连续函数。
椅子在任何位置至少有三只脚着地,所以对于任意的a ,)()(a g a f 和中至少有一个不为零。
不妨设0)0(,0)0(g >=f 。
当椅子旋转90°后,对角线互换,0π/2)(,0)π/2(>=g f 。
这样,改变椅子的位置使四只脚同时着地。
就归结为证明如下的数学命题:已知a a g a f 是和)()(的连续函数,对任意0)π/2()0(,0)()(,===⋅f g a g a f a 且,0)π/2(,0)0(>>g f 。
证明存在0a ,使0)()(00==a g a f证:令0)π/2(0)0(),()()(<>-=h h a g a f a h 和则, 由g f 和的连续性知h 也是连续函数。
根据连续函数的基本性质,必存在0a (0<0a <π/2)使0)(0=a h ,即0)()(00==a g a f 因为0)()(00=•a g a f ,所以0)()(00==a g a f8第二章7.10.用已知尺寸的矩形板材加工半径一定的圆盘,给出几种简便有效的排列方法,使加工出尽可能多的圆盘。
第三章5.根据最优定价模型 考虑成本随着销售量的增加而减少,则设kx q x q -=0)( (1)k 是产量增加一个单位时成本的降低 ,销售量x 与价格p 呈线性关系0,,>-=b a bp a x (2) 收入等于销售量乘以价格p :px x f =)( (3) 利润)()()(x q x f x r -= (4) 将(1)(2)(3)代入(4)求出ka q kbp pa bp x r --++-=02)(当k q b a ,,,0给定后容易求出使利润达到最大的定价*p 为bakb ka q p 2220*+--=6.根据最优定价模型 px x f =)( x 是销售量 p 是价格,成本q 随着时间增长,ββ,0t q q +=为增长率,0q 为边际成本(单位成本)。
数学建模MATLAB 语言及应用上机作业11. 在matlab 中建立一个矩阵135792468101234501234A ⎡⎤⎢⎥⎢⎥=⎢⎥-----⎢⎥⎣⎦答案:A = [1,3,5,7,9;2,4,6,8,10;-1,-2,-3,-4,-5;0,1,2,3,4]2. 试着利用matlab 求解出下列方程的解(线性代数22页例14)123412423412342583692254760x x x x x x x x x x x x x x +-+=⎧⎪--=⎪⎨-+=-⎪⎪+-+=⎩ 答案:A=[2 ,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6]; B=[8;9;-5;0]; X=A\B 或A=[2,1,-5,1;1,-3,0,-6;0,2,-1,2;1,4,-7,6] b=[8,9,-5,0]' X=inv(A)*b3. 生成一个5阶服从标准正态分布的随机方阵,并计算出其行列式的值,逆矩阵以及转置矩阵。
答案:A=randn(5) det(A) inv(A) A'4. 利用matlab 求解出110430002A -⎡⎤⎢⎥=-⎢⎥⎢⎥⎣⎦的特征值和特征向量。
答案:A=[-1,1,0;-4,3,0;0,0,2] [V,D]=eig(A)5.画出衰减振荡曲线3sin3t y et -=在[0,4]π上的图像。
要求,画线颜色调整为黑色,画布底面为白色。
(在实际中,很多打印机时黑白的,因此大多数作图要考虑黑白打印机的效果。
) 给出恰当的x ,y 坐标轴标题,图像x 轴的最大值为4π。
6. 生成一个0-1分布的具有10个元素的随机向量,试着编写程序挑选出向量中大于0.5的元素。
数学建模和Matlab 上机作业2(2016-9-20)跟老师做(不用整合进作业中):上机演示讲解:函数,递归的两个例子的写法。
附:1. Fibonacci Sequence (斐波那契数列)在数学上,费波那西数列是以递归的方法来定义: F1= 1;F2= 1;F (n )=F (n-1)+F (n-2) 2. 阶乘举例:数学描述:n!=1×2×……×n ;计算机描述:n!=n*(n-1)!自己做(需要整合进作业中,提交到系统中):1. 写一个m 文件完成分值百分制到5分制的转换(即输入一个百分制,转换后输出一个5级对应的得分,联系条件控制语句)。
2.设银行的年利率为0.2,则五年后的一百万元相当于现在的 万元.3.在夏季博览会上,商人预测每天冰淇淋销量N 将和下列因素有关: (1)参加展览会的人数n ;(2)气温T 超过10℃;(3)冰淇淋的售价由此建立的冰淇淋销量的比例模型应为 。
二、简答题:(25分)1、建立数学模型的基本方法有哪些?写出建模的一般步骤。
(5分)2、 写出优化模型的一般形式和线性规划模型的标准形式。
(10分) 三、(每小题15分,共60分)1、设某产品的供给函数)(p ϕ与需求函数)(p f 皆为线性函数: 9)(,43)(+-=+=kp p f p p ϕ其中p 为商品单价,试推导k 满足什么条件使市场稳定。
2、1968年,介壳虫偶然从澳大利亚传入美国,威胁着美国的柠檬生产。
随后,美国又从澳大利亚引入了介壳虫的天然捕食者——澳洲瓢虫。
后来,DDT 被普通使用来消灭害虫,柠檬园主想利用DDT 进一步杀死介壳虫。
谁料,DDT 同样杀死澳洲瓢虫。
结果,介壳虫增加起来,澳洲瓢虫反倒减少了。
试建立数学模型解释这个现象。
3.建立捕鱼问题的模型,并通过求解微分方程的办法给出最大的捕捞量数学建模 参考答案2.约40.18763.p T Kn N /)10(-=,(T ≥10℃),K 是比例常数 二、1、建立数学模型的基本方法:机理分析法,统计分析法,系统分析法2、优化模型的一般形式将一个优化问题用数学式子来描述,即求函数 ,在约束条件下的最大值或最小值,其中 为设计变量(决策变量), 为目标函数为可行域三、1、解:设Pn 表示t=n 时的市场价格,由供求平衡可知:)()(1n n p f p =-ϕ9431+-=+-n n kp p即: kp k p n n 531+-=- .,...,,,)(m i h i 210==x )(x f u =.,...,,),)(()(p i g g i i 2100=≥≤x x x)(x f Ω∈x Ω∈=x x f u )(max)min(or .,...,,,)(..m i h t s i 210 ==x .,...,,),)(()(p i g g i i 2100=≥≤x x经递推有:kk p kkk k p k p n nn nn n 5)3()3(5)53(31102⋅-+⋅-=++-⋅-=-=-∑Λ0p 表示初始时的市场价格:∞→时当n 若即市场稳定收敛则时,,30,13n p k 即k<<<-。
数学建模例题和答案
题目:
一个汽车公司拥有两个工厂,分别生产两种型号的汽车,A型和B型,每种型号的汽车都有一定的销售价格。
现在,该公司需要在两个工厂中生产A型和B型汽车,使得总收入最大。
答案:
1、建立数学模型
设A型汽车在第一个工厂生产的数量为x,在第二个工厂生产的数量为y,A型汽车的销售价格为a,B型汽车的销售价格为b,则该公司的总收入可以表示为:
总收入=ax+by
2、确定目标函数
由于题目要求使得总收入最大,因此可以将总收入作为目标函数,即:
最大化Z=ax+by
3、确定约束条件
由于两个工厂的生产能力有限,因此可以设置约束条件:
x+y≤M,其中M为两个工厂的总生产能力
4、求解
将上述模型转化为标准的数学规划模型:
最大化Z=ax+by
s.t. x+y≤M
x≥0,y≥0
由于该模型是一个线性规划模型,可以使用数学软件进行求解,得到最优解:
x=M,y=0
即在第一个工厂生产M件A型汽车,在第二个工厂不生产B型汽车,此时该公司的总收入最大,为Ma。
数学建模作业姓名:叶勃学号:班级: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、考虑景色、费用、居住、饮食、旅途五项准则,从桂林、黄山、北戴河三个旅游景点选择最佳的旅游地。
数学建模作业一学校共1000名学生,235人住在A 宿舍,333人住在B 宿舍,432人住在C 宿舍。
学生们要组织一个10人的委员会,试用下列方法分配各宿舍的委员数:(1) 按比例分配取整数的名额后,剩下的名额按惯例分给小数部分较大的。
(2) Q 值方法:m 方席位分配方案:设第i 方人数为i p ,已经占有i n 个席位,i=1,2,…,m .当总席位增加1席时,计算2(1)i i i i p Q n n =+,i=1,2,…,m 把这一席分给Q 值大的一方。
(3) d ’Hondt 方法:将A ,B ,C 各宿舍的人数用正整数n=1,2,3,…相除,其商数如下表:将所得商数从大到小取前10个(10为席位数),在数字下标以横线,表中A,B,C 行有横线的数分别为2,3,5,这就是3个宿舍分配的席位。
(试解释其道理。
)(4) 试提出其他的方法。
数学建模作业二假定人口的增长服从这样的规律:时刻t 的人口为)(t x ,t 到t+ t 时间内人口的增长与m x -)(t x 成正比例(其中m x 为最大容量).试建立模型并求解.作出解的图形并与指数增长模型、阻滞增长模型的结果进行比较。
解:=r(x m -x),r 为比例系数,x(0)=x 0 解为:x(t)= x m -( x m - x 0),如下图粗线,当t →∞时,它与Logistic 模型相似。
数学建模作业三一容器内盛入盐水100L,含盐50g .然后将含有2g/L的盐水流如容器内,流量为3L/min.设流入盐水与原盐水搅拌而成均匀的混合物。
同时,此混合物又以2L/min的流量流出,试求在30min时,容器内所含的盐量。
若以同样流量放进的是淡水,则30min时,容器内还剩下多少盐?要求写出分析过程。
解:设x(t)为t时刻容器内剩余的盐的质量①x(t)=2(100+t)-1.5(100+t)-2X(t=30)=171.24② x(t)=(100+t)-2 X(t=30)=29.59数学建模作业四商业集团公司在123,,A A A 三地设有仓库,它们分别库存40,20,40个单位质量的货物,而其零售商店分布在地区,1,,5i B i ,它们需要的货物量分别是25,10,20,30,15个单位质量。
数学建模作业姓名:叶勃学号:班级: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、考虑景色、费用、居住、饮食、旅途五项准则,从桂林、黄山、北戴河三个旅游景点选择最佳的旅游地。
其中假设目标对准则的比较判断矩阵为11/2433217551/41/711/21/31/31/52111/31/5311A ⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦11251/2121/51/21⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦B 211/31/8311/3831⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦B 31131131/31/31⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦B 41341/3111/411⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦B5111/4111/4441⎡⎤⎢⎥=⎢⎥⎢⎥⎣⎦B建模:计算层次单排序的权向性和一致性检验 成对比较矩阵A 的最大特征值λ=5.073 该特征值对应的归一化向量{}110.0099.0055.0475.0263.0,,,,=ω二数学规划练习练习1某班准备从5名游泳员中选择4人组成接力队,参加学校的4×100m混合泳接力比赛,5名队员4种泳姿的百米平均成绩如表,问如何选拔队员。
从5名队员中选出4名组成接力队,每人一种泳姿,且4人的泳姿各不相同,使接力队的成绩最好。
容易想到的一个办法是穷举法,组成接力队的方案共5!=120种,逐一计算逼供内比较,即可以得到最优方案。
显然这不是解决这类问题的好方法,随着问题规模的变大,穷举法的计算量是无法接受的。
可以用0-1变量表示一个队员是否入选接力对,从而建立这个问题的0-1规划模型,借助现成的数学软件求解。
模型的建立与求解记甲乙丙丁戊分别为队员5,4,3,2,1i ;记蝶泳、仰泳、自由泳分别为泳姿 J=1,2,3,4.记队员i 的第j 种泳姿的百米最好成绩为,即有队员甲乙丙丁戊蝶泳 1’06’’857’’2 1’18’’ 1’10’’ 1’07’’4仰泳 1’15’’61’06’’ 1’14’’21’14’’21’11’’蛙泳 1’27’’1’06’’41’09’’6 1’09’’6 1’23’’8 自由泳58’’6 53’’59’’457’’21’02’’4引入0-1变量x ij,若选择队员i参加泳姿j的比赛,记x ij=1,否则记x ij=0。
根据组成接力队的要求,x ij应满足两个约束条件程序为:练习2 料场的建立与运输建筑工地的位置(用平面坐标a, b表示,距离单位:公里)及水泥日用量d(吨)下表给出。