matlab数学实验doc.docx
- 文档编号:10296348
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:45
- 大小:34.34KB
matlab数学实验doc.docx
《matlab数学实验doc.docx》由会员分享,可在线阅读,更多相关《matlab数学实验doc.docx(45页珍藏版)》请在冰豆网上搜索。
matlab数学实验doc
matlab数学实验
《管理数学实验》实验报告
班级姓名
实验1:
MATLAB的数值运算
【实验目的】
(1)掌握MATLAB变量的使用
(2)掌握MATLAB数组的创建,
(3)掌握MATLAB数组和矩阵的运算。
(4)熟悉MATLAB多项式的运用【实验原理】
矩阵运算和数组运算在MATLAB中属于两种不同类型的运算,数组的运算是从数组元
素出发,针对每个元素进行运算,矩阵的运算是从矩阵的整体出发,依照线性代数的运算规则进行。
【实验步骤】
(1)使用冒号生成法和定数线性采样法生成一维数组。
(2)使用MATLAB提供的库函数reshape,将一维数组转换为二维和三维数组。
(3)使用逐个元素输入法生成给定变量,并对变量进行指定的算术运算、关系运算、逻辑
运算。
(4)使用MATLAB绘制指定函数的曲线图,将所有输入的指令保存为M文件。
【实验内容】
(1)在[0,2*pi]上产生50个等距采样数据的一维数组,用两种不同的指令实现。
0:
(2*pi-0)/(50-1):
2*pi或linspace(0,2*pi,50)
(2)将一维数组A=1:
18,转换为2×9数组和2×3×3数组。
reshape(A,2,9)
ans=
Columns1through7
135
246
7
8
911
1012
13
14
1517
1618
reshape(A,2,3,3)
ans(:
:
1)=
1
3
5
2
4
6
ans(:
:
2)=
7
9
11
8
10
12
ans(:
:
3)=
13
15
17
14
16
18
matlab数学实验
(3)A=[0234;1350],B=[1053;1505]
,计算数组A、B乘积,计算A&B,A|B,~A,A=
=B,A>B。
A.*B
ans=
0
0
15
12
1
15
0
0
A&B
ans=
0
0
1
1
1
1
0
0
A|B
ans=
1
1
1
1
1
1
1
1
~A
ans=
1
0
0
0
0
0
0
1
A==B
ans=
0
0
0
0
1
0
0
0
A>=B
ans=
0
1
0
1
1
0
1
0
t
t
(4)绘制y=0.5e3
-t*t*sin(t),t=[0,pi]
并标注峰值和峰值时间
添加标题y=0.5e3-t*t*sint,
将所有输入的指令保存为
M文件。
a=0.5
b=1/3
t=0:
0.001:
pi
y=a*exp(b*t)-t.*t.*sin(t)
[y_max,t_max]=max(y)
t_text=['t=',num2str(t(t_max))]
y_text=['y=',num2str(y_max)]
max_text=char('maximum',t_text,y_text)
tit=['y=a*exp(',num2str(b),'t)-t*t*sin(t)']
holdon
plot(t,y,'y.')
plot(t(t_max),y_max,'r')
text(t(t_max)+0.3,y_max+0.1,max_text)
title(tit),xlabel('t'),ylabel('y'),holdoff
matlab数学实验
【实验心得与总结】
通过这次试验让我了解常用简单函数的功能,学会利用函数解决一些;数值计算和符号计
算的实际问题;利用Matlab的help命令查询一些函数的功能。
利用MATLAB可以让繁琐的
计算问题变得更加简单化,如矩阵运算等。
\
实验2:
MATLAB绘图
【实验步目的】
利用MTALAB画墨西哥帽子,及参数方程的图像
【实验原理】
(1)二维绘图命令:
plot(x,y)函数
(2)三维绘图命令中三维曲线:
plot3(x,y,z),
(3)利用mesh函数画三维的网格表面的。
【实验内容】
(含参考程序、实验结果及结果分析等)
x
2cos(t)
画出函数图形
y
t3
0t10。
z
t
方程:
x2cos(t)
y
t3
0
t
10
z
t
【参考程序】
matlab数学实验
>>t=0:
0.1:
4*pi;
>>plot3(2*cos(t),t.^3,t)
【实验结果】
2
2
sinx
y
7.5,7.5]
zf(x,y)
2
x[
y
2
画出曲面
x
的图像。
方程:
sinx2
y2
[
7.5,7.5],y
[7.5,7.5]
zf(x,y)
x
x2
y2
【参考程序】
x=-7.5:
0.5:
7.5;
y=x;
[xx,yy]=meshgrid(x,y);
R=sqrt(xx.^2+yy.^2)+eps;
z=sin(R)./R;
surf(xx,yy,z)
【实验结果】
matlab数学实验
1
0.5
0
-0.5
10
5
10
0
5
0
-5
-5
-10
-10
【实验心得与总结】
Matlab的常见错误:
Innermatrixdimensionsmustagree
1、因为在Matlab的输入变量是矩阵,参与运算的矩阵维数必须对应,矩阵相应元素的
运算必须全部加dot(点),例2中方程如果这样输入:
x=2*(cos(t)+t*sin(t)),就会出现该错
误.
2、mesh函数是用来画三维的网格表面的。
三维空间中的一个点是用(x,y,z)来表示的,
mesh就是把这些点之间用网格连接起来。
实验3:
MATLAB微积分问题的计算
【实验目的】利用MTALAB
求解二重积分、勒展开式及级数求和。
【实验原理】
1.利用int(int(f,x,a,b),y,c,d)
d
b
函数求二重积分计算累次积分
f(x,y)dxdy
c
a
2
.利用泰勒函数taylor
(f,n,x,a)来求
f(x,y)的n-1
阶泰勒展开式
f(x)
n1f(k)(a)?
(xa)k;
k0k!
n2
3.利用函数symsum(f,k,n1,n2)来求级数的和函数
f(k)
k
n1
【实验内容】(含参考程序、实验结果及结果分析等)
2
1x1
xydydx
求02x。
【参考程序】
>>symsxy
>>z=x*y;
>>f=int(int(z,y,2*x,x^2+1),x,0,1)
【实验结果】
f=1/12
matlab数学实验
将f(x)=lnx展开为幂为(x-2)的5阶泰勒展开式。
【参考程序】
>>symsxn;
>>f=(-1)^n*x^(n+1)/(n+1);
>>symsum(f,n,1,inf)
【实验结果】
ans=log(1+x)-x
级数求和
(1)nxn1
x(1,1)。
n1
n1
【参考程序】
>>symsxn;
>>f=(-1)^n*x^(n+1)/(n+1);
>>symsum(f,n,1,inf)
【实验结果】
ans=log(1+x)-x
【实验心得与总结】
1、在实验过程中,要是一句程序结束后加了分号,则说明,不要求执行程序时输出执行
结果;
2、在matlab中是区别大小写的,如果N写成n会出现Undefinedfunctionorvariable'n'.Undefinedfunctionorvariable'n'.的错误提示.
实验4:
MATLAB优化计算
【实验目的】
掌握应用matlab求解无约束最优化问题的方法
【实验原理与方法】
1:
标准形式:
minnf(X)
xR
其中f:
RnR为n元函数
2.无约束优化问题的基本算法一.最速下降法(共轭梯度法)算法步骤:
⑴给定初始点
X0
En,允许误差
0
令k=0;
⑵
计算
f
Xk
;
⑶
检验是否满足收敛性的判别准则:
f
Xk
,
若满足,则停止迭代,得点
X*
Xk,否则进行⑷;
⑷
令Sk
f
Xk
,从Xk出发,沿
Sk进行一维搜索,
即求
k使得:
minfXk
Sk
fXk
kSk;
0
⑸
令Xk
1
Xk
kSk,k=k+1返回⑵.
matlab数学实验
最速下降法是一种最基本的算法,它在最优化方法中占有重要地位
.最速下降法的优点是工
作量小,存储变量较少
初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前
期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法
..牛顿法算法步骤:
(1)
选定初始点X0
En,给定允许误差
0,令k=0;
(2)
求
fXk
2
fXk
1
检验:
若
fXk
则
停止迭代,
X*
Xk.否则,转向(3)
;
(3)
令
Sk
[2f
Xk
]
1
fXk(牛顿方向);
(4)
Xk1
Xk
Sk,
k
k
1
转回
(2).
如果f是对称正定矩阵
A的二次函数,则用牛顿法经过一次迭代
就可达到最优点,如不是二次函数,则牛顿法不能一步达到极值点,
但由于这种函数在极值点附近和二次函数很近似
因此牛顿法的收
敛速度还是很快的.
牛顿法的收敛速度虽然较快,
但要求Hessian矩阵要可逆,要计算二阶导数和逆矩阵,就加
大了计算机计算量和存储量.
【实验内容】
1.求f=2exsinx在0 主程序为wliti1.m: f='2*exp(-x).*sin(x)'; fplot(f,[0,8]);%作图语句 [xmin,ymin]=fminbnd(f,0,8) f1='-2*exp(-x).*sin(x)'; [xmax,ymax]=fminbnd(f1,0,8) 运行结果: xmin=3.9270 xmax=0.7854 ymin=-0.0279 ymax=0.6448 2.对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如何剪法使水槽的容积最大? 先编写M文件fun0.m如下: functionf=fun0(x) 2 )x 解: 设剪去的正方形的边长为 x,则水槽的容积为: (32x f=-(3-2*x).^2*x; miny=-(32x2)x,0 主程序为 建立无约束优化模型为: wliti2.m: [x,fval]=fminbnd('fun0',0,1.5); xmax=x fmax=-fval运算结果为: xmax=0.5000,fmax=2.0000. 即剪掉的正方形的边长为 0.5米 时水槽的容积最大,最大容积为 2立方米. 实验5: MATLAB图论问题计算 【实验目的】 了解用Matlab软件求解图论模型及层次分析模型的方法。 【实验内容与原理】 内容: 1.某城市要建立一个消防站,为该市所属的七个区服务,如图所示.问应设在那个区,才能使它至最远区的路径最短。 matlab数学实验 2.某矿区有七个矿点,如图所示.已知各矿点每天的产矿量 q(vj)(标在图的各顶点上).现 要从这七个矿点选一个来建造矿厂. 问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂 所在地的总运力(千吨公里)最小. 原理: 利用层次分析法和图论方法模型的一般概念,理解建立层次分析法和图论方法模型的一般方法,初步学会建立层次分析法和图论方法模型以解决实际问题。 【操作方法与步骤】 步骤: 1. (1)用Floyd算法求出距离矩阵 D=(dij) . (2)计算在各点vi设立服设 施的最大服务距离 S(vi) S(vi)max{dij} i 1,2, 1j S(vk) min{S(vi)} (3)求出顶点vk,使 1 i 建立M文件 a=[03infinfinfinfinf; 302inf182.5inf; inf2062infinf; infinf603infinf; inf182304inf; inf2.5infinf401.5; infinfinfinfinf1.50]; [D,R]=floyd(a) 点击运行 则vk就是要求的建立消防站的地点.此点称为图的中心点. 2. (1)求距离阵D=(dij). (2)计算各顶点作为选矿厂的总运力m(vi) m(vi) q(vj)dij j1 i1,2, matlab数学实验 m(vk) min{m(vi)} , (3)求vk使 1i (4)建立M文件 a=[03infinfinfinfinf; 302infinf4inf; inf2062infinf; infinf601infinf; infinf2104inf; inf4infinf401.5; infinfinfinfinf1.50]; [D,R]=floyd(a) q=[3,2,7,1,6,1,4]; m=0; fori=1: 7 forj=1: 7 m=m+q(i)*D(i,j); end m m=0; end 点击运行 (5)则vk就是选矿厂应设之矿点.此点称为图G的重心或中位点. 【实验结果与分析】 实验结果与分析: 1. S(v1)=10,S(v2)=7,S(v3)=6,S(v4)=8.5,S(v5)=7,S(v6)=7,S(v7)=8.5 S(v3)=6,故应将消防站设在v3处。 2. 0 3 5 8 7 7 8.5 3 0 2 5 4 4 5.5 5 2 0 3 2 6 7.5 D 8 5 3 0 1 5 6.5 7 4 2 1 0 4 5.5 7 4 6 5 4 0 1.5 8.5 5.5 7.5 6.5 5.5 1.5 0 由上述公式可得: m(v1)=38.5*3=115.5,m(v2)=23.5*2=47,m(v3)=23.5*7=164.5,m(v4)=28.5,m(v5)=23.5*6=141,m(v6)=27.5,m(v7)=35*4=140 再求其中的最小值,m(v6)=27.5,则v6就是选矿厂应设之矿点. 实验6: MATLAB计算机模拟计算 matlab数学实验 【实验目的】 学会用数学软件matlab和蒙特卡洛方法估计积分值,并于其中应用概率论中的概率密度等知识点。 【实验问题】 估计积分值,并对误差进行估计。 【实验要求】 针对要估计的积分选择适当的概率分布设计蒙特卡洛估计算法;利用计算机产生所选分布的随机样本的估计积分值;通过计算平均误差对估计结果进行评价。 【实验过程分析】 (x为运行结果平均值,y为样本方差)估计程序如下: clc; clear; m=10; n=10000; d=0; e=0; fori=1: m d=0; a=rand(1,n); forj=1: n b=a(j)+2; c=b^2; e(i)=d+c/n; d=e(i); end fprintf('e=%.8f\n',e(i)) end p=sum(e)/m; forj=1: m; s(j)=(e(j)-p)^2; end q=sum(s); fprintf('x=%.8f\ny=%.8f\n',p,q); 结果为: e=6.34879520 e=6.34068140 e=6.35081124 e=6.31353632 e=6.35586630 e=6.33058791 e=6.32419121 e=6.33707454 matlab数学实验 e=6.30357011 e=6.35063255 x=6.33557468 y=0.00304243 2.估计程序变动如下: b=a(j)*3; c=b*sin(b)*3; 结果为: e=3.12211717 e=3.11373037 e=3.07484948 e=3.08660758 e=3.10052243 e=3.10475698 e=3.13762746 e=3.16481618 e=3.11552000 e=3.09615989 x=3.11167076 y=0.00669223 3.估计程序变动如下: b=exp(-a(j)^2/2); c=b/n*(2*pi)^0.5; e(i)=d+c/2; 结果为: e=0.88617655 e=0.88538972 e=0.88635209 e=0.88575809 e=0.88653705 e=0.88606366 e=0.88634011 e=0.88613926 e=0.88573325 e=0.88644154 x=0.88609313 y=0.00000132 4.估计程序变动如下: b=exp(a(j)^2); c=b/n; e(i)=d+c; 结果为: e=1.46211146 e=1.46154792 matlab数学实验 e=1.46327379 e=1.46256348 e=1.46318297 e=1.46235828 e=1.46241378 e=1.46316145 e=1.46203052 e=1.46280489 x=1.46254485 y=0.00000320 5.估计程序变动如下: b=a(i)*4; c=1/((1+b^2)^0.5); e(i)=d+c*4/n; 结果为: e=1.98511173 e=1.02167881 e=1.26713031 e=0.98770837 e=1.14216662 e=1.75642022 e=1.97055988 e=1.96227794 e=1.83229787 e=1.06190231 x=1.49872541 y=1.90228258 【实验结果与分析】 通过对实验所得平均值与真实值的比较,可以看出实验结果与真实值相比非常接近,而且样本方差很小,从而说明概率分布的选取比较适当,计算机实验很准确。 实验7: MATLAB与马尔科夫预测模型 【实验目的】 基于matlab编程应用马尔可夫预测模型 【实验原理】 马尔可夫通过实践认为: 世界上无论是社会领域还是自然领域,有一类事物的变化过程只与事物的近期状态有关,与事物的过去状态无关,这类事物的性质称为无后效性。 例如,事物π,从初始状态π(0)起,变动一次后为π (1),变动n次后为π(n),则π(n)仅与π(n-1)有关,与n-1以后的各次变动无关。 马尔可夫链: 如果n个连续变动的事物,在变动的过程中,其中任一次变动的结果都 具有无后效性,那么,这n个连续变动事物的集合,就叫做马尔可夫链,这类事物的演变过程就叫做马尔可夫过程。 【实验内容】 1.农业收成变化预测 考虑某地区农业收成变化的三个状态,即“丰收”、“平收”和“欠收”。 记E1为“丰收” matlab数学实验 状态,E2为“平收”状态,E3为“欠收”状态。 下表给出了该地区1965~2004 年期间农 业收成的状态变化情况。 试计算该地区农业收成变化的状态转移概率矩阵,并进行预测。 使用matlab实现如下: P=[0.20000.46670.3333;0.53850.15380.3077;0.36360.45450.1818]; %读入状态转移概率矩阵 x=[0,1,0]; %读入初始状态概率向量(2004年的农业收成状态) fori=1: 11%预测今后11年(2005-2015)的农业收成状态 y=x*P^i en
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 数学 实验 doc