1057118 赵彬 课程实习报告.docx
《1057118 赵彬 课程实习报告.docx》由会员分享,可在线阅读,更多相关《1057118 赵彬 课程实习报告.docx(15页珍藏版)》请在冰豆网上搜索。
1057118赵彬课程实习报告
上海海洋大学实习报告
实习项目
MATLAB数学实验
学院班级:
信计
(1)班
姓名:
赵彬
学号:
1057118
指导老师:
罗金火
实习(设计)项目
MATLAB数学实验
指导教师
罗金火老师
实习类型
毕业实习□教学实习□课程实习■生产实习□其他□
目的与要求:
一基本要求
1.掌握MATLAB的使用方法,学会使用“帮助”。
2.了解MATLAB在所学各门课程中的应用。
3.学会写实验报告。
二教学内容与时间安排
本课程主要是通过上机操作,掌握所学的数学软件的知识。
通过实验发现问题并解决问题。
要求既要学习与计算机相关的数学处理的知识,又要懂得现有的应用数学软件、软件特点,尤其要了解其应用范围。
。
通过实验了解MATLAB的基本指令以及它的数值计算功能,学会编写计算及绘图程序。
时间为四天,共计32课时。
三教学具体内容如下:
数据建模:
学习数据挖掘和建模的一些基本方法和相关的MATLAB指令,包括插值、拟合和回归分析,计算实验介绍异常数据的处理和线性化建模方法。
建模实验讨论凹轮设计、人口数据拟合和海底测量数据插值等问题。
线性规划与非线性规划:
通过对应用问题进行分析建立数学模型并求解,学习掌握MATLAB有关线性规划和非线性规划求解的指令,加深对线性规划和非
线性规划的理解,加深线性规划和非线性规划模型从“建模到求解”的数学建模主要过程实验活动。
实习内容:
(实习期间各阶段基本内容)
第九章:
(商品销售量与价格)一厂生产的一种电器的销售量Y与竞争对手的价格X1和本厂的价格X2有关,下表是商品在案10个城市的销售记录,试根据这些数据建立Y与X1和X2的关系式,对得到的模型和系数进行检验,若一市本厂的产品的售价格160元,竞争对手售价170元,预测该商品的销售量。
X1120140190130155175125145180150
X210011090150210150250270300250
Y10210012077469326696585
>>clear;
>>X1=[120140190130155175125145180150];X2=[10011090150210150250270300250];Y=[10210012077469326696585];
>>X=[ones(10,1),X1',X2'];Y=Y';Xpred=[160170];Xpred=[160170];
>>[b,bint,r,rint,stats]=regress(Y,X)
b=
66.5176
0.4139
-0.2698
bint=
-32.5060165.5411
-0.20181.0296
-0.4611-0.0785
r=
12.7907
5.2102
-0.8812
-2.8594
-28.0205
-5.4856
-24.8118
15.3055
4.9119
23.8403
rint=
-21.700347.2816
-36.430846.8511
-31.309529.5470
-45.373339.6544
-64.11418.0731
-46.767835.7966
-56.47266.8490
-23.848254.4592
-29.362539.1863
-13.118060.7986
stats=
0.65276.57860.0247351.0445
由程序输出知,stats第一值显示回归方程的置信度不超过70%,第三数值很大,所以不拒绝“H0:
b=0”,即回归模型不成立。
即Y=66.5176+0.4139X1-0.2698X2不成立,系数估计不正确.所以Y与X间不是线性关系即存在非线性关系.做Y与X1,Y与X2,X1与X2的散点图,据图来确定Y与X更加精确的关系.
>>plot(Y,X1,'o')%(见图1)>>plot(Y,X2,'o')%(见图2)
(1)
(2)
plot(X1,X2,'o')%(见图)
(3)(4)
由上散点图
(1),
(2),(3)可知,Y与X1基本分布在一条直线上,所以Y与X1间呈线性关系,Y与X2^2呈线性关系,X1与X2呈线性关系.因此可设Y=beta
(1)+beta
(2)*X1+beta(3)*X2+beta(4)*X2^2+beta(5)*X1*X2来确定Y与X之间的非线性关系。
clear;
>>X1=[120140190130155175125145180150];X2=[10011090150210150250270300250];
>>Y=[10210012077469326696585];X=[ones(10,1),X1',X2'];Y=Y';Xpred=[160170];
>>beta0=[660.4-0.200]';X=[X1',X2'];
>>fun1=inline('beta
(1)+beta
(2)*X(:
1)+beta(3)*X(:
2)+beta(4)*X(:
2).^2+beta(5)*X(:
1).*X(:
2)','beta','X');
>>[beta,R,J]=nlinfit(X,Y,fun1,beta0)
beta=
176.6539
0.0743
-1.2110
0.0019
0.0015
R=
1.1629
0.8554
-2.0908
1.5399
-18.2838
4.2689
-20.1442
14.5033
-9.6173
27.8055
J=
1.0e+004*
0.00010.01200.01001.00001.2000
0.00010.01400.01101.21001.5400
0.00010.01900.00900.81001.7100
0.00010.01300.01502.25001.9500
0.00010.01550.02104.41003.2550
0.00010.01750.01502.25002.6250
0.00010.01250.02506.25003.1250
0.00010.01450.02707.29003.9150
0.00010.01800.03009.00005.4000
0.00010.01500.02506.25003.7500
SST=(Y-mean(Y))'*(Y-mean(Y));SSE=R'*R;
RR=1-SSE/SST
RR=
0.7395
由程序输出结果知相关系数R^2=0.7395,所以它们满足此非线性关系Y=176.6539+0.0743*X1-1.2110*X2+0.0019*X2.^2+0.0015*X1*X2;
>>betaci=nlparci(beta,R,J)
betaci=
-89.5564442.8641
-1.50861.6571
-3.10990.6880
-0.00300.0067
-0.00800.0109
>>[ypre,delta]=nlpredci(fun1,X,beta,R,J);
>>plot(X(:
1),Y,'o',X(:
1),ypre,'*')%(见上图4)
得到某商品的需求量与消费者的平均收入商品价格的统计数据如下,建立回归模型并进行检验,预测平均收入为1000,价格为6时的商品需求量。
需求量
100
75
80
70
50
65
90
100
110
60
收入
1000
600
1200
500
300
400
1300
1100
1300
30
价格
5
7
6
6
8
7
5
4
3
9
多元回归分析
>>x1=[10006001200500300400130011001300300];x2=[5766875439];
>>y=[10075807050659010011060]';x=[x1'x2'];rstool(x,y,'purequadratic')
>>formatshortg
>>X=[ones(10,1)x1'x2'(x1.^2)'(x2.^2)'];
>>[b,bint,r,rint,stats]=regress(y,X)
b=
110.53
0.14643
-26.571
-7.5567e-005
1.8475
bint=
57.26163.8
0.0407690.25209
-43.225-9.9171
-0.0001356-1.5536e-005
0.37453.3205
r=
5.2724
-0.71618
-4.5158
-1.939
-3.3315
3.4566
3.4843
-3.4452
-0.097641
1.832
rint=
-2.899113.444
-10.7439.3103
-11.2792.2472
-11.3787.4997
-12.3215.6583
-5.99812.911
-3.551410.52
-13.0346.1437
-6.38316.1878
-3.32216.9862
stats=
0.9701840.6660.0005260820.577
Rcoplot(r,rint)
解:
由图可以看出平均收入为1000,价格为6时,商品需求量为88.4791+/-16.3387
Stats第一值显示回归方程的置信度超过了97%,第三值很小,拒绝“H0:
b=0”即回归模型Y=110.53
+0.14643*X1-26.571*X2+-7.5567e-005*x1^2+1.8475*X2.^2;成立。
残差图可以看出,所有数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型符合原始数据。
第十章
求线性规划问题:
minf=5x1+4x2+8x3
s.t.x1+2x2+x3=6,
-2x1+x2>=-4,
5x1+3x2<=15,
Xj>=0,j=1,2,3.
解:
所编的MATLAB程序为:
>>a=[5;4;8];b=[2,-1,0;5,3,0];c=[4;15];
>>Aeq=[1,2,1];beq=6;
>>[x,fval]=linprog(a,b,c,Aeq,beq,zeros(3,1))
Optimizationterminated.
x=
0.0000
3.0000
0.0000
fval=
12.0000
求非线性规划问题:
maxf(x)=x1*x2*x3.
-x1+2x2+2x3>=0,
x1+2x2+2x3<=72
S,t10x1-x2=10
解:
建立M文件fun
functionf=fun(x)
f=-x
(1)*x
(2)*x(3);
建立M文件confun
function[c,ceq]=confun(x)
c=[x
(1)-2*x
(2)-2*x(3);x
(1)+2*x
(2)+2*x(3)-72];
ceq=[];
>>x0=[1;1;1];A=[-1,2,2;1,2,2];b=[0;72];
>>Aeq=[];beq=[];
>>VLB=[0;10];VUB=[10;20];
>>[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB)
>>x0=[1;1;1];A=[-1,2,2;1,2,2];b=[0;72];
>>Aeq=[];beq=[];
>>VLB=[0;10];VUB=[10;20];
>>[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,VLB,VUB)
Warning:
Trust-region-reflectivemethoddoesnotcurrentlysolvethistypeofproblem,
usingactive-set(linesearch)instead.
>Infminconat422
Optimizationterminated:
first-orderoptimalitymeasureless
thanoptions.TolFunandmaximumconstraintviolationisless
thanoptions.TolCon.
Activeinequalities(towithinoptions.TolCon=1e-006):
lowerupperineqlinineqnonlin
211
x=
10.0000
10.0000
-5.0000
fval=
500
设有两个建材厂C1和C2,每年沙石的产量分别为35万吨和55万吨,这些沙石需要供应到W1、W2和W3三个建筑工地,每个建筑工地对沙石的需求量分别为26万吨、38万吨和26万吨,各建材厂到建筑工地之间的运费(万元/万吨)如表所示,问题是应当怎么调运才能使得总运费最少?
解:
设c1往w1,w2,w3运送的沙石分别为x1,x2,x3;c2往w1,w2,w3分别为x4,x5,x6.总运费为f则该问题的线性规划模型为:
所编的MATLAB程序为:
f=[10;12;9;8;11;13]
Aeq=[111000;000111;100100;010010;001001]
beq=[35;55;26;38;26]
[x,feval]=linprog(a,[],[],Aeq,beq,zeros(6,1))
所得的结果为:
x1=0,x2=9,x3=26,x4=26,x5=29,x6=0;
Minf=869
综上即知最低运费为869元。
实习报告:
(应包括各实习项目名称、方法手段、材料设备、技术路线、结果、讨论等)
项目名称:
MATLAB数学实验
实验方法:
数据建模线性规划与非线性规划
材料设备:
计算机、matlab软件
技术路线:
1多项式插值和拟合
p=polyfit(x,y,k)用k次多项式拟合向量数据(x,y),返回多项式的降幂系数。
当k>=n-1时,polyfit实现多项式插值。
2非线性最小二乘拟合
c=lsqnonlin(Fun,c0)使用迭代法搜索最优参数c,其中自变量为参数c的函数Fun是误差向量y—f(c,x),c0为参数c的近似值,作为迭代初值
c=lsqnonlin(Fun2,c0,x,y)使用更方便,从外部输入数据,这里Fun2为两变量函数f(c,x)
3回归分析
[b,bint,r,rint,stats]=regress(y,x,alpha)多元回归分析,其中y为因变量观测数据nx1向量,x为自变量观测数据nxp矩阵,b为参数估计值,bint为b的置信区间,r为残差向量y—xb,rint为r的置信区间;stats为检验统计量,第一值是回归方程的置信度吗,第二值是F统计量值,第三值是与F统计量相应的p值
rcolpot(r,rint)残插图
4线性规划与非线性规划
x=linprog(f,A,b)求解线性规划问题中最简单的一类,适合于给出方程组的线性规划问题
x=linprog(f,A,b,Aeq,beq)求解线性规划问题:
minz=fTx,Ax<=b,Aeq.x=beq
x=linprog(f,A,b,Aeq,beq,lb,ub)指定lb<=x<=ub
x=linprog(f,A,b,Aeq,beq,lb,ub,x0)
非线性规划
x=fmincon(@fun,初值,A,b)
x=fmincon(@fun,初值,A,b,Aeq,beq)
x=fmincon(@fun,初值,A,b,Aeq,beq,lb,ub)
x=fmincon(@fun,初值,A,b,Aeq,beq,lb,ub,@nonlcon)
此时当约束条件中缺A和b,Aeq和beq或lb和ub时,相关项可用[]代替以表示省略。
fun写成如下的M函数形式(fun.m):
functionf=fun(x)
f=f(x);
非线性约束条件写成如下的M函数形式(nonlcon.m):
function[c,ceq]=nonlcon(x)
c=c(x);ceq=ceq(x);
[x,f]=fmincon(…)同时返回x处的函数值。
实习总结:
(要重点写出在专业意识、职业技术技能、思想素质等方面的提高)
MATLAB语言是当今国际上科学界(尤其是自动控制领域)最具影响力、也是最有活力的软件。
它起源于矩阵运算,并已经发展成一种高度集成的计算机语言。
它提供了强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面设计、便捷的与其他程序和语言接口的功能。
MATLAB语言在各国高校与研究单位起着重大的作用。
Matlab的应用领域极为广泛,除数学计算和分析外,还被广泛用于自动控制、系统仿真、数字信号处理、图形图像分析、数理统计、人工智能、虚拟现实技术、通信工程、金融系统等领域。
通过MATLAB课程及其实验的学习,使得我对MATLAB的常用指令有了深刻理解,也对MATLAB中数据建模线性规划与非线性规划的编程及其有关实际问题解答有了一定的方法技巧。
也对MATLAB关于作图问题有了一定的了解,MATLAB|中的Help功能提供大量的帮助,只要我们知道函数名就可以通过此功能去挖掘出函数的具体使用方法。
到目前为止我们只学习了MATLAB中简单的拟合、建模、规划、画图、简单矩阵运算等问题,这只是MATLAB中的一小部分,作为我们信息专业不应该只停留在这个层次,应该在以后的学习中加深对MATLAB的进一步了解与学习。
挖掘MATLAB中更多的知识。
教师评价:
学习态度:
端正□一般□较差□
实习纪律:
好□较好□一般□较差□
实习出勤情况:
好□一般□较差□
实习任务完成情况:
优秀□好□一般□较差□
实习报告完成情况:
优秀□好□一般□较差□
动手能力:
强□较强□一般□较差□
团队精神:
好□一般□较差□
创新意识:
强□一般□无□
专业素质:
提高□有所提高□未提高□
实习单位评价:
优秀□好□一般□较差□
其他:
成绩:
教师签字:
年月日
教研室主任签字:
年月日