1、《数学建模》实验指引书 目 录 实验一Matlab概述与简朴计算 4学时 实验二 符号函数及其微积分 2学时 实验三 多元函数及其微积分 2学时 实验四 无穷级数及曲线拟合 2学时 实验五 线性代数 2学时 实验六 数理记录
2、 2学时 实验七 优化问题matlab求解 2学时 实验八MATLAB编程基本 4学时 实验一 MATLAB概述与简朴计算 【实验学时】4学时 【实验目和规定】 实验目: 熟悉Matlab工作界面,掌握Matlab基本命令与基本函数,掌握Matlab基本赋值与运算。通过详细实例,掌握Matlab基本用法。 实验规定: 1. 掌握M
3、atlab某些基本操作命令和基本函数; 2.掌握Matla基本赋值与有运算。 【实验环节】 1. 纯熟Matlab软件进入与运营方式及工作界面; 2. MATLAB基本命令与基本函数使用; 3. MATLAB基本赋值与运算。 【实验重要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.显示当前日期,并在屏幕上显示当年度各月月历; fix(clock) 成果:ans = 12 1 21 2 21 2. sind(48)+
4、cosd(24)-log(3.56) 成果:ans = 0.3869 3. x=3.25; y=2*(log(3*x+8))^2-5*log(x) 成果:y = 10.6539 4.输入矩阵,并求矩阵行列式值和逆矩阵。 a=[2 -1 3;3 1 -6;4 -2 9]; det(a) inv(a) 成果:ans = 15 ans = -0. 0. 0. -3.4000 0.4000 1.4000 -0.6667 0 0.3333 实
5、验二 符号函数及其微积分 【实验学时】2学时 【实验目和规定】 实验目:掌握符号函数基本运算、二维图形绘制。 实验规定: 1.掌握符号函数计算; 2.掌握二维图形各种绘制命令。 【实验环节】 1.符号函数计算; 2.绘制二维图形; 3.符号函数极限。 【实验重要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.求函数复合函数:,求; syms x f g f=x^3+3; g=3*tan(3*x-2); compose(f,g) 成果:ans = 27*tan(3*x - 2)^3 + 3 2. 用plot命令作图像
6、 x=[-2:0.01:2]; y=(power(x,3))/3-2; plot(y,x,'r'); hold on; e=exp(1); x=[1:0.01:e]; y=power(2,x)-log(x); plot(y,x) 3.用fplot命令作图像; y='sin(x)'; fplot(y,[0 2*pi]) hold on y='tan(x)-log(x)'; fplot(y,[-pi pi]) 实验三 多元函数及其微积分 【实验学时】2学时 【实验目和规定】 实验目:掌握三维图形绘制,掌握多元函数微积分。 实验规定: 1.纯熟操作各种三维图
7、形绘制; 2.掌握多元函数微积分计算命令。 【实验环节】 1.绘制三维图形; 2.计算多元函数微积分。 【实验重要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.使用mesh命令绘制网格图; x=[-2:0.01:2]; y=[-3:0.01:3]; [x y]=meshgrid(x,y); z=2*x.^2+3*y.^2; mesh(x,y,z); 2.使用surf命令绘制曲面图; x=[-3:0.01:3]; y=[0:0.01:4]; [x y]=meshgrid(x,y); y=x.^2; surf(x,y) 3.
8、 绘制方程空间曲线图; t=[0:0.01:8*pi]; x=2*cos(t); y=2*sin(t); z=2*t; plot3(x,y,z); grid on; 4.绘制矩阵三维条形图图像; x= [3 6 4;2 4 1;1 2 3]; bar3(x) 实验四 符号方程求解 【实验学时】2学时 【实验目和规定】 实验目:纯熟掌握代数方程、线性方程、非线性方程、常微分方程符号解求解命令。 实验规定: 1.能将课本上例题纯熟演习; 2.能运用所学各种方程符号解求解命令纯熟完毕课后习题。 【实验环节】 1.代数方程符号解求解; 2.符号线性方程(组)
9、求解; 3.非线性符号方程求解; 4.常微分方程符号解。 【实验重要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.求高次方程解; syms x a y=power(x,4)-3*a*power(x,3)+4*a.^2*x-2; solve(y,x) 3. 解方程组;+998- syms x y [x y]=solve('2*power(x,3)+x*y-3*y^2-2*y+2=0','power(x,3)-3*x*y=2*y^2+5*y-3=0') 3.解微分方程; dsolve('D3x+x=0','t') 成果:ans =
10、 C8*exp(-t) + C6*exp(t/2)*cos((3^(1/2)*t)/2) + C7*exp(t/2)*sin((3^(1/2)*t)/2) 4. 计算微分方程组; y=dsolve('Dx+3*x-y=0','Dy-8*x+y=0','x(0)=1','y(0)=4','t') 成果:y = y:[1x1 sym] x:[1x1 sym] 实验五 线性代数 【实验学时】2学时 【实验目和规定】 实验目:纯熟掌握矩阵基本操作,会运用解线性方程组命令,能运用命令求解线性方程组数值解。 实验规定: 1.纯熟演习书上例题; 2.能运用
11、所学各种命令求解完毕课后习题。 【实验环节】 1.基本矩阵操作; 2.线性方程组求解; 3.矩阵分解; 4. 线性方程组数值解。 【实验重要仪器及材料】 WindowsXP计算机、Matlab软件 【实验内容】 1.,求A和B点积、叉积,A、B和C混合积; A=[1 2 3]; B=[3 1 4]; C=[9 -1 4]; dot(A,B) cross(A,B) dot(A,cross(B,C)) 成果:ans =17 ans = 5 5 -5 ans = 20 2. ,求, . a=[2 -1;-
12、2 -2]; b=[2 -3;0 -4]; c=[1 2]; d=eye(2); 3*a a+b a*d a.*d a*c a\b a.\b a.^b 成果:ans = 6 -3 -6 -6 ans = 4 -4 -2 -6 ans = 2 -1 -2 -2 ans = 2 0 0 -2 ans = 0.6667 -0.3333 -0.6667 2.3333 ans = 1 3
13、 0 2 ans = 4.0000 -1.0000 1.0000 0.0625 3.求解4阶随机矩阵特性值和特性向量; A=rand(4); [x y]=eig(A) 成果:x = 0.4883 + 0.0000i -0.2208 + 0.2328i -0.2208 - 0.2328i -0.4513 + 0.0000i 0.4126 + 0.0000i 0.6612 + 0.0000i 0.6612 + 0.0000i 0.2778 + 0.0000i 0.6205 + 0.0000i -0
14、1999 + 0.1291i -0.1999 - 0.1291i 0.6267 + 0.0000i 0.4542 + 0.0000i -0.2364 - 0.5894i -0.2364 + 0.5894i -0.5713 + 0.0000i y = 2.4478 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.5604 + 0.3177i 0.0000 + 0.0000i 0.0000 + 0.0000i
15、 0.0000 + 0.0000i 0.0000 + 0.0000i -0.5604 - 0.3177i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i -0.0946 + 0.0000i 4.分别用直接求解法、Jacobi迭代法、Gauss-Seidel迭代法和SOR迭代法求解方程组 直接法:[x1 x2 x3]=solve('12*x1-3*x2+3*x3=15','18*x1-3*x2+x3=15','-x1+2*x2+x3=6') 成果:x1 = 1 x2
16、 = 2 x3 = 3 Jacobi迭代法:.m文献 function [x,k,index]=Jacobi(A,b,ep,it_max) if nargin<4 it_max=100000; end if nargin<3 ep=1e-5; end n=length(A); k=0; x=zeros(n,1); y=zeros(n,1); index=1; while 1 for i=1:n y(i)=b(i); for j=1:n if j~=i
17、 y(i)=y(i)-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10 || k==it_max
index=0;
return;
end
y(i)=y(i)/A(i,i);
end
if norm(y-x,inf) 18、1];
b=[15;15;6];
[x,k,index]=Jacobi(A,b,1e-5,100)
成果:x =
1.0e+20 *
-0.7371
-2.2790
2.4051
k =
100
index =
0
Gauss-Seidel迭代法:.m文献
function [v,sN,vChain]=gaussSeidel(A,b,x0,errorBound,maxSp)
step=0;
error=inf;
s=size(A);
D=zeros(s(1));
vChain=zeros(15,3);k=1;
fx 19、0=x0;
for i=1:s(1)
D(i,i)=A(i,i);
end;
L=-tril(A,-1);
U=-triu(A,1);
while error>=errorBound & step 20、0;0];
[v,sN,vChain]=gaussSeidel(A,b,x0,0.00001,11)
成果:v =
-125.1885
-158.2497
359.0649
sN =
11
vChain =
1.2500 -5.0000 6.0000
-1.5000 4.5000 17.2500
-1.9375 -8.2500 -4.5000
0.3125 -18.1250 20.5625
-8.4219 3.7292 42.5625
-8.4583 -41.34 21、38 -9.8802
-6.6159 -59.0434 80.2292
-33.5681 -17.9523 117.4709
-32.6058 -167.2519 8.3364
-42.6471 -197.8560 307.8980
-125.1885 -158.2497 359.0649
0 0 0
0 0 0
0 0 0
0 0 0 22、
SOR迭代法:.m文献
function [x,k,index]=SOR(A,b,ep,w,it_max)
if nargin<5
it_max=150000;
end
if nargin<4
w=1;
end
if nargin<3
ep=1e-5;
end
n=length(A);
k=0;
x=zeros(n,1);
y=zeros(n,1);
index=1;
while 1
y=x;
for i=1:n
z=b(i);
for j=1:n
if 23、 j~=i
z=z-A(i,j)*x(j);
end
end
if abs(A(i,i))<1e-10 || k==it_max
index=0;
return;
end
z=z/A(i,i);
x(i)=(1-w)*x(i)+w*z;
end
if norm(y-x,inf) 24、A=[12 -3 3;18 -3 1;-1 2 1];
b=[15 ;15;6];
x0=[0;0;0];
[x,k,index]=SOR(A,b)
成果:x =
1
2
3
k =
150000
index =
0
实验六 数理记录
【实验学时】2学时
【实验目和规定】
实验目:纯熟掌握常用基本数据分析函数,能纯熟运用命令计算方差和原则方差、协方差和有关系数。
实验规定:
1.纯熟演习书上例题;
2.能运用所学各种命令求解完毕课后习题。
【实验环节】
1.常用基本数据分析函数;
2.方差与原则方差;
3.协 25、方差和有关系数。
【实验重要仪器及材料】 WindowsXP计算机、Matlab软件
【实验内容】
1.列举某些记录工具箱中玉概率密度函数、分布函数关于函数;
概率密度函数 :
betapdf 贝塔分布概率密度函数 binopdf 二项分布概率密度函数 chi2pdf 卡方分布概率密度函数 exppdf 指数分布概率密度函数 fpdf f分布概率密度函数
gampdf 伽玛分布概率密度函数 geopdf 几何分布概率密度函数 hygepdf 超几何分布概率密度函数 分布函数:
betacdf 贝塔分布累加函数 binocdf 二项分布累加函数 chi2c 26、df 卡方分布累加函数 expcdf 指数分布累加函数 fcdf f分布累加函数 gamcdf 伽玛分布累加函数 geocdf 几何分布累加函数 hygecdf 超几何分布累加函数 logncdf 对数正态分布累加函数
2.论述有哪些记录量可以分别用来描述样本集中趋势和离中趋势。各记录量进行度量时有什么优缺陷;.
方差:优:一次可以分析两个因素独立作用,还可以分析交互作用
缺:当水平较多时,进行分析比较次数多,很麻烦
原则差是离均差平方和平均后方根,更能反映一种数据集离散限度.
普通记录使用原则差更为广泛,特别是样本量足够大状况下,它更能反映数据离散限度
离差:反映 27、了真实值偏离平均值差距。也许浮现成果与平均预期偏离限度,代表风险限度大小。
3.下面列出石某工厂随机选用20只部件装配时间(分钟)
9.8 10.4 10.6 9.6 9.7 9.9 10.9 11.1 9.6 10.2 10.3 9.6 9.9 11.1 10.5
10.1 9.8 10.3 9.7 10.1
设装配时间总体服从正态分布,方差为0.4,与否可以以为装配时间均值在0.05水平上不不大于10.
A=[ 9.8 10.4 10.6 9.6 9.7 9.9 10.9 11.1 9.6 10.2 10.3 9 28、6 9.9 11.1 10.5 10.1 9.8 10.3 9.7 10.1];
mean(A)
std(A)
cov(A)
corrcoef(A)
成果:ans = 10.1600
ans = 0.4860
ans =0.2362
ans=1
实验七 优化问题Matlab求解
【实验学时】2学时
【实验目和规定】
实验目:纯熟掌握线性规划和非线性规划问题优化命令及其调用参数格式。
实验规定:
1.纯熟演习书上例题;
2.能运用所学命令解决实际问题。
【实验环节】
1.线性规划两个优化命令操作;
2.非线性规划各种优化问题命令;
3.二次 29、规划优化命令。
【实验重要仪器及材料】 WindowsXP计算机、Matlab软件
【实验内容】
1.用linprog命令计算优化问题
;
c=[-5;-4;-6];
A=[1,-1,1;3,2,4;3,2,0];
b=[20;42;30];
lb=[0;0;0];
[x,fval]= linprog(c,A,b,[],[],lb);
成果:x =
0.0000
15.0000
3.0000
fval =
-78.0000
2. 计算函数在区间(0,1)内最小值;.
x=fminbnd('(power(x,3)+cos(x)+x*l 30、og(x))/exp(x)',0,1)
y=(power(x,3)+cos(x)+x*log(x))/exp(x)
成果:x =
0.5223
y =
0.3974
3.用fminsearch求最小值点;
f='2*power(x(1),3)+4*x(1)*power(x(2),3)-10*x1*x(2)+x(2)^2)'';
[x,fval,exitflag,output]=fminsearch(f,[0 1000])
成果:x =
1.0e+46 *
-0.0000 5.7337
fval =
-3.2187e+182
ex 31、itflag =
0
output =
iterations:200
funcCount:400
4.用fmincon命令求优化问题在初始点(0,1)处最优解
fun.m:function f=fun (x);
f=x(1)^2+x(2)^2-x(1)*x(2)-2*x(1)-5*x(2);
mycon2.m:function [g,ceq]=mycon2(x);
g=[(x(1)-1)^2-x(2)];
ceq=[]
x0=[0;1];
A=[-2 3];b=[6];
Aeq=[];beq=[];
vlb=[];vub=[] 32、
[x,fval]=fmincon('fun',x0,A,b,Aeq,beq,vlb,vub,'mycon2')
成果:x =
2.9994
3.9992
fval =
-13.0000
实验八 Matlab编程基本
【实验学时】4学时
【实验目和规定】
实验目:理解文献类型和变量类型,掌握M文献几种控制语句,掌握程序调试和错误解决办法。
实验规定:
1.纯熟演习书上例题;
2.能运用所学各种控制语句求解完毕课后习题。
【实验环节】
1.常用基本数据分析函数;
2.方差与原则方差;
3.协方差和有关系数。
【实验重要仪器及材料 33、 WindowsXP计算机、Matlab软件
【实验内容】
1. 用M命令文献绘出曲线及它包络线,t取值范畴为;
t=0:0.001:4*pi;
y=exp(-t/3).*sin(3*t);
plot(t,y)
hold on
plot(t,exp(-t/3),'r:',t,-exp(-t/3),'r:')
2.使用for循环求值;.
s=0;
for i=1:10
s=s+i.^2
end
成果:s =
385
3.有一种4*5矩阵,编程求出其最大值及其所处位置;
a=input('输入一种4*5矩阵');
max=a(1,1);
for i= 34、1:4
for j=1:5
if a(i,j)>max
max=a(i,j);
maxi=i;maxj=j;
end
end
end
max
maxi
maxj
成果:
输入一种4*5矩阵[1 2 3 4 5;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20]
max =
20
maxi =
4
maxj =
5
4.用起泡法对10个数由小到大排序. 即将相邻两个数比较,将小调到前头。
a=input('输入10个数');
n=length(a);
for ii=1:n-1
if a(ii+1)<=a(ii)
t1=a(ii);
a(ii)=a(ii+1);
a(ii+1)=t1;
end
for jj=1:n-1
if a(jj+1)<=a(jj)
t2=a(jj);
a(jj)=a(jj+1);
a(jj+1)=t2;
end
end
end
a
成果:
输入7个数[9 8 7 6 5 4 3 2 1 0]
a =
0 1 2 3 4 5 6 7 8 9






