数学建模【作业题-解析汇总(数据处理方法、规划模型、图与网络模型、微分方程模型、统计模型、系统评价决策模型)】
1、指数函数-平面图形-作图(plot)2、极坐标作图(polar)3、参数函数作图(plot)4、空间曲面图形作图(meshgrid)水仙花数第3章 数据处理方法1、估计每隔1/10小时的温度值。2、作出山区的地貌图和等高线图,插值方法比较。3、多项式拟合方法4、非线性最小二乘拟合获得待定系数第4章 规划模型1.求下列线性规划问题的解.1、原始输入2、集合法2.使用 fmincon 求解非线性规
目 录
作业2、非线性规划模型求解:使用 fmincon 求解下列非线性规划问题。
第2章 软件介绍
第2章 软件介绍作业1
用subplot分别在不同的坐标系下作出四条曲线:
- 平面图形(参数方程):plot
- 空间三维曲线:plot3
- 空间曲面:mesh
- 极坐标:polar
步长越小,越密集,光滑程度越好!
1、指数函数-平面图形-作图(plot)
1)曲线
的图形,要求曲线颜色为蓝色,曲线形式为虚线,标记符为“o”,图形的标题为“平面图形作图”;
exp 指数函数 【 x0本身是矢量(向量),矢量运算要用“.”。】
x0 = -5:0.1:5;
y0 = exp(-x0.^2);
plot(x0,y0,'b--o') % b:蓝色;--:虚线;o:标记符号(英文字母o)plot(x, y, style)描点分段拟合(x, y),style有三部分:b--o (颜色,线条,点)
x0 = -5:0.1:5;
y0 = exp(-x0.^2);
plot(x0,y0,'b--*')
2、极坐标作图(polar)
四叶玫瑰线
;(polar函数),要求图形的标题为“极坐标作图”;
polar(r, p, style):做极坐标(r, p)图像。
3、参数函数作图(plot)
叶形线
,要求图形颜色为红色,图形曲线为点画线”.-”,图形标题为:“参数函数作图”;
向量运算:加“.” 。
% 3、叶形线
t = 0:0.1:5000;
x2 = 3*t./(1+t.^3);
y2 = 3*t.^2./(1+t.^3);
% plot(x2,y2,'r-.*')
4、空间曲面图形作图(meshgrid)
,其中-30<x<30,-30<y<30,做出函数在给定范围内的曲面图形,图形标为“空间曲面图形作图”.
meshgrid(x, y) :以x轴、y轴做出平面格点;mesh(X, Y, Z)做空间图像。
% 4、空间曲面
x = -10:0.05:10; % x是向量
y = x; % y也是向量
[X, Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps; % eps:一个很小的正数【开根号,可能会有误差,eps相当于误差的补偿。】
Z = sin(pi*R);
![]()
5、题解and运行截图
subplot(m, n, i)做一个m*n的画布,下一张图画在第i个位置。
title(str)设置当前图像的标题为str。
% 1、指数函数
x0 = -5:0.1:5;
y0 = exp(-x0.^2);
% plot(x0,y0) plot(x0,y0,'b--o')
% 2、四叶玫瑰线
theta = 0:0.01*pi:2*pi;
rho = sin(2*theta);
% 3、叶形线
t = 0:0.1:5000;
x2 = 3*t./(1+t.^3);
y2 = 3*t.^2./(1+t.^3);
% plot(x2,y2,'r-.*')
% 4、空间曲面
x = -10:0.05:10;
y = x;
[X, Y] = meshgrid(x,y);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(pi*R);
subplot(2,2,1),plot(x0,y0,'r--o'),title('平面图形作图')
subplot(2,2,2),polar(theta,rho,'*'),title('极坐标作图')
subplot(2,2,3),plot(x2,y2,'r.-'),title('参数函数作图')
subplot(2,2,4),mesh(X,Y,Z),title('空间曲线图形作图')
保存图形【英文 命名】【文件 --> 另存为】
- .fig:保留文件所有信息。
- .jpg
- .png(文件小,不太清晰)
- .bmp(所占空间大)
第2章 软件介绍作业2
求所有的“水仙花数”
建立一个命令M-文件:求所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。
例如,153是一个水仙花数,因为153=13+53+33。
i = 0; j = 0; m = 0; k = 1;
a = zeros(); % 空数组 未定义几维
for i = 1:9 % 百位
for j = 0:9 % 十位
for m = 0:9 % 个位
if i*100 + j*10 + m == i^3 + j^3 + m^3;
a(k,1) = i; %第1行的第1个位置 存放i
a(k,2) = j; %第1行的第2个位置 存放j
a(k,3) = m; %第1行的第3个位置 存放m
a(k,4) = i^3 + j^3 + m^3; %第1行的第4个位置 存放和
k = k + 1;
end
end
end
end
a
第3章 数据处理方法
3.1、数据插值练习题
1、估计每隔1/10小时的温度值。
在1-12的11小时内,每隔1小时测量一次温度,测得的温度依次为:5,8,9,15,25,29,31,30,22,25,27,24。试估计每隔1/10小时的温度值。
hours = 1:12;
temps = [5 8 9 15 25 29 31 30 22 25 27 24];
h = 1:0.1:12;
t = interp1(hours,temps,h,'spline') % (直接输出数据将是很多的)
plot(hours, temps, '+')
hold on
plot(h, t, hours, temps, 'r:') %作图
xlabel('Hour'),ylabel('Degrees Celsius')
2、作出山区的地貌图和等高线图,并对几种插值方法进行比较。
某山区地貌:
在某山区测得一些地点的高程如下表。平面区域为
(1200<=x<=4000,1200<=y<=3600)
试作出该山区的地貌图和等高线图,并对几种插值方法进行比较。
X
Y
1200
1600
2000
2400
2800
3200
3600
4000
1200
1130
1250
1280
1230
1040
900
500
700
1600
1320
1450
1420
1400
1300
700
900
850
2000
1390
1500
1500
1400
900
1100
1060
950
2400
1500
1200
1100
1350
1450
1200
1150
1010
2800
1500
1200
1100
1550
1600
1550
1380
1070
3200
1500
1550
1600
1550
1600
1600
1600
1550
3600
1480
1500
1550
1510
1430
1300
1200
980
通过此题对最近邻点插值、双线性插值方法和双三次插值方法的插值效果进行比较。
3.2、数据拟合练习题
3、多项式拟合方法
分别用多项式拟合的方法,在不同阶次下 拟合 函数y=(x2-3x+5)e-5xsinx中给出的数据。
该数据的三次多项式拟合:
>> x0=0:0.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0);
>> p3=polyfit(x0,y0,3); vpa(poly2sym(p3),10)
ans =
2.839962923*x^3-4.789842696*x^2+1.943211631*x+.5975248921e-1
绘制拟合曲线:
>> x=0:0.01:1; ya=(x.^2-3*x+5).*exp(-5*x).*sin(x);
>> y1=polyval(p3,x); plot(x,y1,x,ya,x0,y0,'o')
>>p6=polyfit(x0,y0,6); y2=polyval(p6,x);
>>vpa(poly2sym(p6),10)
就不同的次数进行拟合:
>> p4=polyfit(x0,y0,4); y2=polyval(p4,x);
>> p5=polyfit(x0,y0,5); y3=polyval(p5,x);
>> p8=polyfit(x0,y0,8); y4=polyval(p8,x);
拟合最高次数为8的多项式:
>> vpa(poly2sym(p8),5)
ans =
-8.2586*x^8+43.566*x^7-101.98*x^6+140.22*x^5-125.29*x^4+74.450*x^3-27.672*x^2+4.9869*x+.42037e-6
Taylor幂级数展开:
>> syms x; y=(x^2-3*x+5)*exp(-5*x)*sin(x);
>> vpa(taylor(y,9),5)
ans =
5.*x-28.*x^2+77.667*x^3-142.*x^4+192.17*x^5-204.96*x^6+179.13*x^7-131.67*x^8
4、非线性最小二乘拟合获得待定系数
由下面语句生成一组数据,其中ai为待定系数。
>> x=0:.1:10;
>> y=0.12*exp(-0.213*x)+0.54*exp(-0.17*x).*sin(1.23*x);
并且该数据满足y(x)=a1*exp(-a2*x)+a3exp(-a4*x)*sin(a5*x)采用非线性最小二乘拟合获得待定系数,使得目标函数的值最小。
2、编写函数:
>> f=inline('a(1)*exp(-a(2)*x)+a(3)*exp(-a(4)*x).*sin(a(5)*x)','a','x');
>> [xx,res]=lsqcurvefit(f,[1,1,1,1,1],x,y);
>>xx'
>>res
输出结果:
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
ans =
0.1197
0.2125
0.5404
0.1702
1.2300
res =
7.1637e-007
修改最优化选项:
>> ff=optimset; ff.TolFun=1e-20; ff.TolX=1e-15; % 修改精度限制
>> [xx,res]=lsqcurvefit(f,[1,1,1,1,1],x,y,[],[],ff); xx',res
Optimization terminated successfully:
Relative function value changing by less than OPTIONS.TolFun
ans =
0.1200
0.2130
0.5400
0.1700
1.2300
res =
9.5035e-021
绘制曲线:
>> x1=0:0.01:10; y1=f(xx,x1); plot(x1,y1,x,y,'o')
第4章 规划模型
作业1、线性规划模型求解:求下列线性规划问题的解.
1、原始输入
Max = 400*x1 + 1000*x2 + 300*x3 - 200*x4;
-2*x2 + x3 + x4 = 0;
2*x1 + 3*x2 <= 16;
3*x1 + 4*x2 <= 24;
x3 < 5;
end
2、集合法
!Max = 400*x1 + 1000*x2 + 300*x3 - 200*x4;
! -2*x2 + x3 + x4 = 0 等式约束;
! 2*x1 + 3*x2 <= 16 不等式约束;
! 3*x1 + 4*x2 <= 24 不等式约束;
! x3 < 5 不等式约束;
!四行四列的约束矩阵 ;
sets:
k/1..4/:c,x,b; ! 四维变量集合k, ;
h/1..3/; !;
links(k,k):constr; !四行四列 矩阵用constr表示;
endsets
data:
c = 400 1000 300 -200;
b=0 16 24 5;
constr = 0,-2,1,1
2,3,0,0
3,4,0,0
0,0,1,0;
enddata
max=@sum(k(I):c(I)*x(I)); ! 目标函数 c*x k(I): I从1到4 Σci*xi;
@sum(k(J):constr(1,J)*x(J))=b(1); !等式约束 k(J): J从1到4 矩阵的第1行 ;
@for(h(I):@sum(k(J):constr(I+1,J)*x(J))<=b(I+1));
end
作业2、非线性规划模型求解:使用 fmincon 求解下列非线性规划问题。
% xiti2.m文件
function ff = xiti2(x)
ff = x(1)^2 - 2*x(1)*x(2) + 2*x(2)^2 - 4*x(1) - 12*x(2) + x(3)^2;
% contxiti2.m文件
function [c1, ceq1] = contxiti2(x) % c1 不等式、ceq1 等式
c1 = 2*x(1)^2 + x(2) - 3*x(3) - 2;
ceq1 = 2*x(1)^2 + 5*x(2)^2 + 8*x(3)^2 - 4;
% xiti2tiaoyong.m文件
x0 = [0 1 1];
A = [-2, 2, -1]; % 线性不等式约束
b = -5;
Aeq = [1, 1, 2];
beq = 2;
lb = [];ub = [8, 4, 1];
[x, fval] = fmincon(@xiti2, x0, A, b, Aeq, beq, lb, ub, @contxiti2);
% @xiti2:调用目标函数 @contxiti2:调用非线性约束 x0:初始条件
% A、b 不等式线性约束 Aeq, beq:等式线性约束 lb 下界, ub 上界
第5章 图与网络模型
作业1、最小生成树问题:给出8个城市间的最小生成树。
北京(Pe)、东京(T)、莫斯科(Mo)、纽约(N)、渥太华(O)、墨西哥城(Me)、伦敦(L)、巴黎(Pa)各城市之间的航线距离如表5.1所列,给出8个城市间的最小生成树。
表5.1八城市间的航线距离
L
Me
Mo
N
O
Pa
Pe
T
L
56
26
35
53
21
51
60
Me
56
55
33
36
91
124
113
Mo
26
55
180
31
28
57
80
N
35
33
180
5
58
150
108
O
53
36
31
5
56
104
96
Pa
21
91
28
58
56
82
94
Pe
51
124
57
150
104
82
20
T
60
113
80
108
98
94
20
% 将伦敦(L)、墨西哥城(Me)、莫斯科(Mo)、纽约(N)、渥太华(O)、巴黎(Pa)、北京(Pe)、东京(T) % 分别标为顶点1、2、3、4、5、6、7、8.记图G(V, E, W),用matlab求最小生成树如下: a=zeros(8); a(1,2)=56;a(1,3)=26;a(1,4)=35;a(1,5)=53;a(1,6)=21;a(1,7)=51;a(1,8)=60; a(2,3)=55;a(2,4)=33;a(2,5)=36;a(2,6)=91;a(2,7)=124;a(2,8)=113; a(3,4)=180;a(3,5)=31;a(3,6)=28;a(3,7)=57;a(3,8)=80; a(4,5)=5;a(4,6)=58;a(4,7)=150;a(4,8)=108; a(5,6)=56;a(5,7)=104;a(5,8)=96; a(6,7)=82;a(6,8)=94; a(7,8)=20; a=a+a'; % 以上:构造8个城市间的模型 G=sparse(a); % 转稀疏矩阵 % G必须是稀疏矩阵 直接调用算法,可以不转化为稀疏矩阵 Tree:最小生成树 Pred:前驱节点 [Tree,pred]=graphminspantree(G, 'method', 'Kruskal') nodestr={'L', 'Me', 'Mo', 'N', 'O', 'Pa', 'Pe', 'T'} % 给8个点命名 h=view(biograph(Tree,nodestr,'ShowArrows','off','ShowWeights','on')) % view转可视图 biograph画图 'ShowArrows','off' 给不给箭头,不给箭头(无向图);给不给权重 给
建模过程中,如果能够将结果转为可视化的图(或 表...),一定要转化为可视化的图(或 表...)。
文字描述,看起来 比较费劲(尤其对于 非专业阅读者)。
view()函数:画图 biograph 【解法2:直接使用Kruskal算法,可以不将矩阵转为稀疏矩阵】
作业2、最大流问题:试求从仓库可运往市场的最大流量
某产品从仓库运往市场销售。已知各仓库的可供量、各市场需求量及从i仓库至j市场的路径的运输能力如表5.2所列(0表示无路可通),试求从仓库可运往市场的最大流量,各市场需求能否满足?
市场j
仓库i
1
2
3
4
可供量
A
30
10
0
40
20
B
0
0
10
50
20
C
20
10
40
5
100
需求量
20
20
60
20
3个发点,4个收点 --> 构造虚拟点:1个发点、1个收点 ------ 集中发货点 发给 A、B、C(容量是可供应量),收点(需求量)
发点到收点的最大流(两点之间,经过中间网络的最大流)
% 解:应用最大流算法必须是单源单汇的网络,因此,构造一个虚拟发点Vs, % A、B、C的可供应量分别为20、20、100,可令弧VsA、VsB、VsC上的容量分别为 % 20、20、100。构造一个虚拟收点Vt,由于市场1、2、3、4的需求量分别为20、20、 % 60、20,可令弧1vt、2vt、3vt、4vt的容量分别为20、20、60、20。构造赋权有 % 向图G=(V,E,W),其中顶点集V,弧集为E,W为对应各弧容量的邻接矩阵,计算时, % 将点Vs,A,B,C,1,2,3,4,vt分别编号为1、2、3、4、5、6、7、8、9 % 从仓库到市场的最大流问题归结为求Vs到Vt的最大流。用matlab求解如下: a=zeros(n); % 生产0矩阵 a(1,2)=20;a(1,3)=20;a(1,4)=100; a(2,5)=30;a(2,6)=10;a(2,8)=40; a(3,7)=10;a(3,8)=50; a(4,5)=20;a(4,6)=10;a(4,7)=40;a(4,8)=5; a(5,9)=20;a(6,9)=20;a(7,9)=60;a(8,9)=20; % 建立9*9的邻接矩阵 上三角 a=sparse(a); % 转为稀疏矩阵 [b,c]=graphmaxflow(a,1,9) % 用命令函数求两点之间的最大流 点1到点9之间的最大流 % 求得从仓库运往1、2、3、4市场流量为20、20、50、20,最大流量为110,其中市场3不能满足需求。
第6章 微分方程模型
作业1、考虑广义 Lorenz 系统
会形成混沌现象!
z`:z(三维列向量)对自变量的导数
将z替换为w,容易区分。
解存在:b<2
1、Mathematica求解
三维空间图
b = 0.5
![]()
b = -0.8
b = -1
b = -1.5
b = -0.1
b = 0.1
![]()
2、Matlab求解
% 1、Loren1.m文件
function dydx = Loren1(t, y)
global b;
dydx = [8*y(1)-y(3)*(y(1)-y(2));
-16*y(2)-y(3)*(y(1)-y(2));
-y(3)+(y(1)-y(2))*(b*y(2)+y(1))];
% 2、aa.m文件
function aa()
global b;
b = -0.5;
x0=[-3.1 1 5];
[t,y]=ode45('Loren1',[0,30],x0);
plot(t,y(:,1),'r-',t,y(:,2),'b*',t,y(:,3),'g--');
figure;
plot3(y(:,1),y(:,2),y(:,3));
grid on;
b = 0.5、0.8、1.8...
作业2、相似种群竞争
function dp = two(t,x)
global r1 r2 alpha beta n1 n2;
dp = [r1*x(1)*(1-(x(1)+alpha*x(2))/n1);
r2*x(2)*(1-(x(2)+beta*x(1))/n2)];
function bb()
global n1 n2 alpha beta r1 r2;
n1=100;
n2=100;
alpha=1.2;
beta=0.8;
r1=1;
r2=1;
x0=[10,10];
[t,x]=ode45(@two,[0,100],x0);
plot(t,x(:,1),'b-.',t,x(:,2),'r--') % plot(t,x)
figure
plot(x(:,1),x(:,2))
图1:蓝线---x(1) 一直在增加;红线---x(2) 一直在减小。
x(2)最终灭绝。
Mathematica求解
第7章 统计模型
作业1、方差分析问题
仅供参考!!!
x=[0.81,1.32,2.35;
0.75,1.41,2.50;
0.74,1.35,2.43
0.86,1.38,2.36;
0.82,1.40,2.44;
0.87,1.33,2.46;
0.75,1.43,2.40;
0.74,1.38,2.43;
0.72,1.40,2.21;
0.82,1.40,2.45;
0.80,1.34,2.38;
0.75,1.46,2.40];
[p,table,stats] = anova1(x)
作业2、回归方程
某研究人员需要分析我国固定资产投资状况的影响因素,选取可能的5个影响因素:国内生产总值、商品房屋销售额、财政支出、社会消费品零售总额、进出口总额,统计共15年的各项指标如表7-2所示,试在a=0.05的显著水平下进行多元回归分析,进行总体显著性检验并判断哪些因素对固定资产投资有着显著影响,并给出回归方程。
仅供参考!!!
y=[3791.7,4753.8,4410.4,4517,5594.5,8080.1,13072.3,17042.1,20019.26,22913.55,24941.11,28406.17,29854.71,32917.73,37213.49];
x1=[11962.5,14928.3,16909.2,18547.9,21617.8,26638.1,34634.4,46759.4,58478.1,67884.6,74462.6,78345.2,82067.46,89442.2,95933.3];
x2=[1100967,1472164,1637542,2018263,2378597,4265938,8637141,10184950,12577269,14271292,17994763,25133027,29878734,39354423,48627517];
x3=[2262.18,2491.21,2823.78,3083.59,3386.62,3742.2,4642.3,5792.62,6823.72,7937.55,9233.56,10798.18,13187.67,15886.5,18902.58];
x4=[5820,7440,8101.4,8300.1,9415.6,10993.7,12462.1,16264.7,20620,24774.1,27298.9,29152.5,31134.7,34152.6,37595.2];
x5=[3084.2,3821.8,4155.9,5560.1,7225.8,9119.6,11271,20381.9,23499.9,24133.8,26967.2,26857.7,29896.3,39274.2,42193.3];
subplot(3,2,1),plot(x1,y);
subplot(3,2,2),plot(x2,y);
subplot(3,2,3),plot(x3,y);
subplot(3,2,4),plot(x4,y);
subplot(3,2,5),plot(x5,y);
x=[ones(15,1),x1',x2',x3',x4',x5'];
[b,bint,r,rint,s]=regress(y',x,0.05)
>> chp7
b =
1.0e+03 *
2.7533
0.0006
0.0000
-0.0010
-0.0007
-0.0001
bint =
1.0e+03 *
0.7111 4.7955
0.0003 0.0009
0.0000 0.0000
-0.0027 0.0008
-0.0017 0.0002
-0.0003 0.0001
r =
189.3647
687.4560
-69.6550
-613.1074
-269.0122
-131.8150
-200.1423
547.3856
-221.4922
389.3957
-193.6889
-236.4957
385.4662
-587.5474
323.8879
rint =
1.0e+03 *
-0.8479 1.2267
-0.0761 1.4510
-1.1203 0.9809
-1.5364 0.3101
-1.2682 0.7302
-1.2281 0.9645
-0.8727 0.4724
-0.1715 1.2663
-1.1731 0.7301
-0.5322 1.3110
-1.1527 0.7654
-0.8833 0.4103
-0.2014 0.9723
-1.3790 0.2039
-0.3605 1.0082
s =
1.0e+05 *
0.0000 0.0157 0.0000 2.4572
>>
第8章 系统评价决策模型
作业1、选择战斗机
仅供参考!!!
作业2、优秀队员的选拔
现假设有 20 名队员准备参加全国大学生数学建模竞赛,根据队员的能力和水平要选出18名优秀队员分别组成6 个队,每个队3名队员去参加比赛。选择队员主要考虑的条件依次为有关学科成绩、智力水平、动手能力、写作能力、外语水平、协作能力和其它特长等,各队员得分见表 8.2(8.2.xlsx)。请问该如何选择?
仅供参考!!!
![Logo](https://devpress.csdnimg.cn/79de2bf0b7994defa4242ef90d5513fa.jpg)
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)