学建模与数学实验课程设计题目答案.docx
《学建模与数学实验课程设计题目答案.docx》由会员分享,可在线阅读,更多相关《学建模与数学实验课程设计题目答案.docx(21页珍藏版)》请在冰豆网上搜索。
学建模与数学实验课程设计题目答案
数学建模与数学实验课程设计题目的解答过程
1、一元线性回归问题
在某产品表明腐蚀刻线,下表是试验活得的腐蚀时间(x)与腐蚀深度(y)间的一组数据。
试研究两变量(x,y)之间的关系。
X
5
5
10
20
30
40
50
60
65
90
100
y
5
6
8
13
15
17
19
25
25
29
35
其中:
x------腐蚀时间(秒);------腐蚀深度(y)(
)。
要求:
1)画出散点图,并观察y与x的关系;
2)求y关于x的线性回归方程:
,求出a与b的值;
3)对模型和回归系数进行检验;
4)预测x=120时的y的置信水平为0.95的预测区间。
5)编程实现上述求解过程。
注:
参考书目:
1、《概率论与数理统计》,浙江大学编,高等教育出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
程序:
x=[051020304050606590100];
y=[5681315171925252935];
scatter(x,y)
clearall;clc
x=[051020304050606590100]';
X=[ones(11,1)x];
Y=[5681315171925252935]';
[b,bint,r,rint,stats]=regress(Y,X);
b,bint,stats
clearall;clc
x=[051020304050606590100];
y=[5681315171925252935];
[p,Y]=polyfit(x,y,1)
[Y,DELTA]=polyconf(p,120,Y)
结果:
p=0.28745.6273
Y=
R:
[2x2double]
df:
9
normr:
4.1973
Y=
40.1208
DELTA=
4.0236
图列:
2、多元线性回归问题
根据下述某猪场25头育肥猪4个胴体性状的数据资料,试进行瘦肉量y对眼肌面积(x1)、腿肉量(x2)、腰肉量(x3)的多元线性回归分析。
序
号
瘦肉量
y(kg)
眼肌面积
x1(cm2)
腿肉量
x2(kg)
腰肉量
x3(kg)
序号
瘦肉量y(kg)
眼肌面积x1(cm2)
腿肉量x2(kg)
腰肉量x3(kg)
1
15.02
23.73
5.49
1.21
14
15.94
23.52
5.18
1.98
2
12.62
22.34
4.32
1.35
15
14.33
21.86
4.86
1.59
3
14.86
28.84
5.04
1.92
16
15.11
28.95
5.18
1.37
4
13.98
27.67
4.72
1.49
17
13.81
24.53
4.88
1.39
5
15.91
20.83
5.35
1.56
18
15.58
27.65
5.02
1.66
6
12.47
22.27
4.27
1.50
19
15.85
27.29
5.55
1.70
7
15.80
27.57
5.25
1.85
20
15.28
29.07
5.26
1.82
8
14.32
28.01
4.62
1.51
21
16.40
32.47
5.18
1.75
9
13.76
24.79
4.42
1.46
22
15.02
29.65
5.08
1.70
10
15.18
28.96
5.30
1.66
23
15.73
22.11
4.90
1.81
11
14.20
25.77
4.87
1.64
24
14.75
22.43
4.65
1.82
12
17.07
23.17
5.80
1.90
25
14.35
20.04
5.08
1.53
13
15.40
28.57
5.22
1.66
要求:
1)画出散点图y与x1,y与x2,y与x3并观察y与x1,x2,x3的关系;
2)求y关于x1,x2,x3的线性回归方程:
-----
(1),求出
的值;
3)对上述回归模型和回归系数进行检验;
4)再分别求y关于单个变量x1,x2,x3的线性回归方程:
----
(2),
-----(3),
-----(4)求出
的值;
分别求y关于两个变量x1,x2,x3的线性回归方程:
----(2’),
---(3’),
-----(4’)求出系数
的值;并说明这六个回归方程对原来问题求解的优劣。
5)编程实现上述求解过程。
注:
参考书目:
1、《概率论与数理统计》,浙江大学编,高等教育出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
程序:
(1)
loadmy.txt
my
A=my;
y=A(:
2);
x1=A(:
3);
x2=A(:
4);
x3=A(:
5);
subplot(2,2,1)
plot(x1,y,'r+')
subplot(2,2,2)
plot(x2,y,'g+')
subplot(2,2,3)
plot(x3,y,'y+')
结果:
p=
0.28745.6273
Y=
R:
[2x2double]
df:
9
normr:
4.1973
Y=
40.1208
DELTA=
4.0236
图列:
(2)(3)程序:
x=[ones(25,1),x1,x2,x3];
[b,bint,r,rint,stats]=regress(y,x);
subplot(2,2,4)
b,bint,stats,rcoplot(r,rint)
结果:
b=
0.8539
0.0178
2.0782
1.9396
bint=
-1.99953.7073
-0.04290.0784
1.51992.6365
0.87992.9993
stats=
0.843637.74530.00000.2114
(4)题程序:
clearall;clc
loadmy.txt
my;
A=my;
y=A(:
2);
x1=A(:
3);
x2=A(:
4);
x3=A(:
5);
x1=[ones(25,1),x1];
[b1,bint1,r1,rint1,stats1]=regress(y,x1);
rcoplot(r1,rint1)
x2=[ones(25,1),x2];
[b2,bint2,r2,rint2,stats2]=regress(y,x2);
x3=[ones(25,1),x3];
[b3,bint3,r3,rint3,stats3]=regress(y,x3);
b1,bint1,stats1,b2,bint2,stats2,b3,bint3,stats3
clearall;clc
loadmy.txt
my;
A=my;
y=A(:
2);
x1=A(:
3);
x2=A(:
4);
x3=A(:
5);
x4=[ones(25,1),x1,x2];
[b4,bint4,r4,rint4,stats4]=regress(y,x4);
x5=[ones(25,1),x1,x3];
[b5,bint5,r5,rint5,stats5]=regress(y,x5);
x6=[ones(25,1),x2,x3];
[b6,bint6,r6,rint6,stats6]=regress(y,x6);
b4,bint4,stats4,b5,bint5,stats5,b6,bint6,stats6
clearall;clc
结果:
b1=
12.5544
0.0917
bint1=
9.049616.0593
-0.04370.2271
stats1=
0.07871.96350.17451.1370
b2=
2.5718
2.4579
bint2=
-0.70115.8447
1.80773.1082
stats2=
0.726761.14230.00000.3373
b3=
9.4446
3.3462
bint3=
6.340912.5482
1.45905.2334
stats3=
0.369113.45430.00130.7786
模型优劣分析:
load my.txt
my;
A=my;
y=A(:
2);
x1=A(:
3);
x2=A(:
4);
x3=A(:
5);
z1=12.5544+0.0917*x1;
c1=mean(y-z1)
z2=2.5718+2.4579*x2;
c2=mean(y-z2)
z3=9.4446+3.3462*x3;
c3=mean(y-z3)
z4=2.0661+0.0318*x1+2.3961*x2;
c4=mean(y-z4)
z5=8.3031+0.0559*x1+3.1668*x3;
c5=mean(y-z5)
z6=1.1077+2.1058*x2+1.9787*x3;
c6=mean(y-z6)
结果:
c1 =
1.3880e-005
c2 =
1.2516e-004
c3 =
-1.3840e-005
c4 =
-7.0204e-004
c5 =
-0.0012
c6 =
1.3480e-005
总结:
所得模型的值与原来的y值做差所得的平均值来看最后一个模型及z6=1.1077+2.1058*x2+1.9787*x3与原值做差的平均值更接近于0说明此模型对原问题的求解更好。
文本文档
My=115.0223.735.491.21
212.6222.344.321.35
314.8628.845.041.92
413.9827.674.721.49
515.9120.835.351.56
612.4722.274.271.5
715.827.575.251.85
814.3228.014.621.51
913.7624.794.421.46
1015.1828.965.31.66
1114.225.774.871.64
1217.0723.175.81.9
1315.428.575.221.66
1415.9423.525.181.98
1514.3321.864.861.59
1615.1128.955.181.37
1713.8124.534.881.39
1815.5827.655.021.66
1915.8527.295.551.7
2015.2829.075.261.82
2116.432.475.181.75
2215.0229.655.081.7
2315.7322.114.91.81
2414.7522.434.651.82
2514.3520.045.081.53
3、优化理论中的线性规划问题---生产安排。
某公司打算利用具有下列成分(见下表)的合金配制一种新型合金100公斤,新合金含铅,锌,锡的比例为3:
2:
5。
合金品种
1
2
3
4
5
含铅%
含锌%
含锡%
30
60
10
10
20
70
50
20
30
10
10
80
50
10
40
单价(元/kg)
8.6
6.0
8.9
5.7
8.8
要求:
(1)根据题意,列出该问题的线性规划模型;
(2)利用单纯形法求解
(1)中的模型,并写出分配方案;
(3)编程实现上述求解过程;
(4)利用程序验证上述模型的最优解。
注:
参考书目:
1、《运筹学》,《运筹学》教材编写组编,清华大学出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
(1)
(2)(3)解答过程:
利用单纯形法解方程组
得一基解
Lingo软件
min=8.6*x1+6.0*x2+8.9*x3+5.7*x4+8.8*x5;
0.3*x1+0.1*x2+0.5*x3+0.1*x4+0.5*x5=30;
0.6*x1+0.2*x2+0.2*x3+0.1*x4+0.1*x5=20;
0.1*x1+0.7*x2+0.3*x3+0.8*x4+0.4*x5=50;
输出结果:
Globaloptimalsolutionfoundatiteration:
3
Objectivevalue:
744.4444
VariableValueReducedCost
X111.111110.000000
X20.0000000.1111111E-01
X344.444440.000000
X444.444440.000000
X50.0000000.1888889
RowSlackorSurplusDualPrice
1744.4444-1.000000
20.000000-11.96111
30.000000-7.572222
40.000000-4.683333
4、非线性方程求解
分别用二分法、牛顿切线法、迭代法求解非线性方程
的非负实数根。
要求:
(1)精确到
,取不同的初值计算,输出初值、根的近似值和迭代次数,分析根的收敛域。
(2)编写二分法、牛顿切线法的程序。
(可以用Matlab或C语言)。
(3)迭代法求解(可构造不同的迭代公式,如
等)。
(4)比较三种方法的优劣。
注:
参考书目:
1、《高等数学(上)》,同济大学编,高等教育出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
1)迭代法程序:
x0=input('初值')r=input('允许的误差')forn=1:
500000000;x1=3.*sin(x0);ifabs(x1-x0)\n');x1fprintf('迭代次数:
\n');n结果:
初值1
x0=
1
允许的误差0.000001
r=
1.0000e-006
方程的根:
x1=
2.2789
迭代次数:
n=
4238200
2)牛顿切线法程序:
建立M函数文件:
function[y,dirv_y]=funnewton(x)
y=sin(x)-x/3;
dirv_y=cos(x)-1/3;
编写主程序文件:
clear all;clc
x=0:
0.0001:
2*pi;
y1=sin(x);
y2=x/3;
plot(x,y1,x,y2);
grid on
clear all
Error=1e-6;
format long
x=2.3;
fork=1:
100;
[y,dirv_y]=funnewton(x);
xk=x;
x=x-y/dirv_y;
if(abs(xk-x)<=Error)
break;
end
x
结果:
x=
2.27903035381451
图列:
二分法程序:
clc;cleara=0;b=3;fa=sin(a)-a/3;fb=sin(b)-b/3;c=(a+b)/2;fc=sin(c)-c/3;iffa*fb>0,break,endwhileabs(fc)>1*10^(-6)c=(a+b)/2;fc=sin(c)-c/3;iffb*fc>0b=c;fb=fc;elsea=c;fa=fc;endendformatlongfx=fc,x=c结果:
x=2.27886199951172
5、非线性回归问题-------多项式回归
给动物口服某种药物A1000mg,每间隔1小时测定血药浓度(g/ml),得到表9-5的数据(血药浓度为5头供试动物的平均值)。
血药浓度与服药时间测定结果表:
服药时间x(小时)
1
2
3
4
5
6
7
8
9
血药浓度y(g/ml)
21.89
47.13
61.86
70.78
72.81
66.36
50.34
25.31
3.17
要求:
1)画出散点图y与x,并观察y与x的关系;
2)求y关于x的一元线性回归方程:
-----
(1),求出
的值;
3)对上述回归模型和回归系数进行检验;
4)再求y关于x的一元多项式线性回归方程。
(如:
----
(2))求出
的值,并比较二个回归方程对原来问题求解的优劣。
5)编程实现上述求解过程。
注:
参考书目:
1、《概率论与数理统计》,浙江大学编,高等教育出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
程序:
closeall;clearall
x=[123456789]';
X=[ones(9,1)x];
Y=[21.8947.1361.8670.7872.8166.3650.3425.313.17]';
scatter(x,Y,'*')
[b,bint,r,rint,stats]=regress(Y,X);
b,bint,stats
subplot(2,2,1)
z=b
(1)+b
(2)*x
plot(x,Y,'k+',x,z,'r')
[p,S]=polyfit(x',Y',2)
S=polyconf(p,x',Y')
subplot(2,2,2)
plot(x',Y','k+',x',S,'r')
结果:
b=
60.61111111111114
-2.79666666666667
bint=
1.0e+002*
0.175********5661.03630945857656
-0.104414919167160.04848158583383
stats=
1.0e+002*
0.000965749826370.007482910761450.004156760827176.27136526984127
z=
57.81444444444447
55.01777777777780
52.22111111111113
49.42444444444446
46.62777777777779
43.83111111111111
41.03444444444445
38.23777777777777
35.44111111111110
p=
-3.7623593073593134.82692640692640-8.36547619047621
S=
R:
[3x3double]
df:
6
normr:
5.48713414502882
S=
Columns1through8
22.6990909090908846.2389393939393762.2540692640692470.7444805194805071.7101731601731465.151********71751.0674025974026129.45893939393940
Column9
0.32575757575759
图列;
6、非线性规划问题
现有两种原料
和
数量分别为1200千克和1500千克,需要分配用于生产3种产品.其中每种产品生产的产量
与两种原料的关系分别为:
每种产品的利润函数为:
问:
应如何分配,才能使生产三种产品的总利润最大.
要求:
1)介绍非线性规划理论;
2)求出最优解.
注:
参考书目:
1、《运筹学》,《运筹学》教材编写组编,清华大学出版社。
2、《数学实验》,萧树铁主编,高等教育出版社。
先建立M文件:
functionf=myfun(x)
f=-0.05*x
(1)^2*x(4)+0.01*(0.005*x
(1)^2*x(4))^2-...
0.08*x
(2)*x(5)^2+0.01*(0.008*x
(2)*x(5)^2)^2-...
0.1*x(3)*x(6)+0.01*(0.01*x(3)*x(6))^2;
然后编写主程序文件:
clearall;clc
A=[];
b=[];
Aeq=[111000;000111];
beq=[1200;1500];
lb=[000000];
ub=[];
x0=[111111]';
x=fmincon(@myfun,x0,A,b,Aeq,beq,lb,ub)
结果:
x=
1.0e+003*
0.00828160919212
-0.00000000000000
1.19171839080788
1.45804377960301
-0.00000000000000
.0419********