matlab数学实验.docx

上传人:b****1 文档编号:14498665 上传时间:2023-06-24 格式:DOCX 页数:41 大小:528.26KB
下载 相关 举报
matlab数学实验.docx_第1页
第1页 / 共41页
matlab数学实验.docx_第2页
第2页 / 共41页
matlab数学实验.docx_第3页
第3页 / 共41页
matlab数学实验.docx_第4页
第4页 / 共41页
matlab数学实验.docx_第5页
第5页 / 共41页
matlab数学实验.docx_第6页
第6页 / 共41页
matlab数学实验.docx_第7页
第7页 / 共41页
matlab数学实验.docx_第8页
第8页 / 共41页
matlab数学实验.docx_第9页
第9页 / 共41页
matlab数学实验.docx_第10页
第10页 / 共41页
matlab数学实验.docx_第11页
第11页 / 共41页
matlab数学实验.docx_第12页
第12页 / 共41页
matlab数学实验.docx_第13页
第13页 / 共41页
matlab数学实验.docx_第14页
第14页 / 共41页
matlab数学实验.docx_第15页
第15页 / 共41页
matlab数学实验.docx_第16页
第16页 / 共41页
matlab数学实验.docx_第17页
第17页 / 共41页
matlab数学实验.docx_第18页
第18页 / 共41页
matlab数学实验.docx_第19页
第19页 / 共41页
matlab数学实验.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

matlab数学实验.docx

《matlab数学实验.docx》由会员分享,可在线阅读,更多相关《matlab数学实验.docx(41页珍藏版)》请在冰点文库上搜索。

matlab数学实验.docx

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

135791113

2468101214

Columns8through9

1517

1618

reshape(A,2,3,3)

ans(:

:

1)=

135

246

ans(:

:

2)=

7911

81012

ans(:

:

3)=

131517

141618

(3)A=[0234;1350],B=[1053;1505],计算数组A、B乘积,计算A&B,A|B,~A,A==B,A>B。

A.*B

ans=

001512

11500

A&B

ans=

0011

1100

A|B

ans=

1111

1111

~A

ans=

1000

0001

A==B

ans=

0000

1000

A>=B

ans=

0101

1010

(4)绘制y=0.5

-t*t*sin(t),t=[0,pi]并标注峰值和峰值时间,添加标题y=0.5

-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的help命令查询一些函数的功能。

利用MATLAB可以让繁琐的计算问题变得更加简单化,如矩阵运算等。

\

实验2:

MATLAB绘图

【实验步目的】

利用MTALAB画墨西哥帽子,及参数方程的图像

【实验原理】

(1)二维绘图命令:

plot(x,y)函数

(2)三维绘图命令中三维曲线:

plot3(x,y,z),

(3)利用mesh函数画三维的网格表面的。

【实验内容】

(含参考程序、实验结果及结果分析等)

画出函数图形

方程:

【参考程序】

>>t=0:

0.1:

4*pi;

>>plot3(2*cos(t),t.^3,t)

【实验结果】

画出曲面

的图像。

方程:

【参考程序】

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的常见错误:

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)函数求二重积分计算累次积分

2.利用泰勒函数taylor(f,n,x,a)来求f(x,y)的n-1阶泰勒展开式

3.利用函数symsum(f,k,n1,n2)来求级数的和函数

【实验内容】(含参考程序、实验结果及结果分析等)

【参考程序】

>>symsxy

>>z=x*y;

>>f=int(int(z,y,2*x,x^2+1),x,0,1)

【实验结果】

f=1/12

将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

级数求和

【参考程序】

>>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:

标准形式:

2.无约束优化问题的基本算法

一.最速下降法(共轭梯度法)算法步骤:

⑴给定初始点

,允许误差

令k=0;

⑵计算

⑶检验是否满足收敛性的判别准则:

若满足,则停止迭代,得点

,否则进行⑷;

⑷令

,从

出发,沿

进行一维搜索,

即求

使得:

⑸令

,k=k+1返回⑵.

最速下降法是一种最基本的算法,它在最优化方法中占有重要地位.最速下降法的优点是工作量小,存储变量较少,初始点要求不高;缺点是收敛慢,最速下降法适用于寻优过程的前期迭代或作为间插步骤,当接近极值点时,宜选用别种收敛快的算法.

二.牛顿法算法步骤:

(1)选定初始点

,给定允许误差

,令k=0;

(2)求

检验:

停止迭代,

.否则,转向(3);

(3)令

(牛顿方向);

(4)

转回

(2).

如果f是对称正定矩阵A的二次函数,则用牛顿法经过一次迭代

就可达到最优点,如不是二次函数,则牛顿法不能一步达到极值点,

但由于这种函数在极值点附近和二次函数很近似,因此牛顿法的收

敛速度还是很快的.

牛顿法的收敛速度虽然较快,但要求Hessian矩阵要可逆,要计算二阶导数和逆矩阵,就加大了计算机计算量和存储量.

【实验内容】

1.求f=2

在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.9270ymin=-0.0279

xmax=0.7854ymax=0.6448

2.对边长为3米的正方形铁板,在四个角剪去相等的正方形以制成方形无盖水槽,问如

何剪法使水槽的容积最大?

 

先编写M文件fun0.m如下:

functionf=fun0(x)

f=-(3-2*x).^2*x;

主程序为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.某城市要建立一个消防站,为该市所属的七个区服务,如图所示.问应设在那个区,才能使它至最远区的路径最短。

2.某矿区有七个矿点,如图所示.已知各矿点每天的产矿量

(标在图的各顶点上).现要从这七个矿点选一个来建造矿厂.问应选在哪个矿点,才能使各矿点所产的矿运到选矿厂所在地的总运力(千吨公里)最小.

原理:

利用层次分析法和图论方法模型的一般概念,理解建立层次分析法和图论方法模型的一般方法,初步学会建立层次分析法和图论方法模型以解决实际问题。

【操作方法与步骤】

步骤:

1.

(1)用Floyd算法求出距离矩阵D=

(2)计算在各点

设立服设施的最大服务距离

(3)求出顶点

,使

建立M文件

a=[03infinfinfinfinf;

302inf182.5inf;

inf2062infinf;

infinf603infinf;

inf182304inf;

inf2.5infinf401.5;

infinfinfinfinf1.50];

[D,R]=floyd(a)

点击运行

就是要求的建立消防站的地点.此点称为图的中心点.

2.

(1)求距离阵D=

(2)计算各顶点作为选矿厂的总运力

(3)求

使

(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)则

就是选矿厂应设之矿点.此点称为图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.

由上述公式可得:

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,则

就是选矿厂应设之矿点.

实验6:

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

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

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为“丰收”状态,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

end

运行结果如下:

y=0.53850.15380.3077

y=0.30240.41480.2827

y=0.38670.33340.2798

y=0.35860.35890.2823

y=0.36770.35090.2813

y=0.36480.35340.2817

y=0.36570.35260.2815

y=0.36540.35290.2816

y=0.36550.35280.2815

y=0.36540.35280.2815

y=0.36540.35280.2815

2.市场占有率预测

某厂对某产品的市场占有率和销售情况进行了调查:

一月份共销售了50万件,其中普通、一级、特级品分别为35、10、5万件。

二月份中,一月份买普通品的顾客25%的顾客转买一级品,8%的顾客转买特级品;一月份买一级品的顾客10%转买特级品,3%转买普通品;一月份买特级品的顾客2%买普通品,15%转买一级品。

请预测以后月份各个等级产品的市场占有率。

由所给的资料可知

使用matlab实现如下:

P=[0.670.250.08;0.030.870.1;0.020.150.83];

%读入状态转移矩阵

x=[0.70.20.1];

%读入初始状态概率向量(一月份各等级产品的市场占有率)

fori=1:

11%预测今年剩余11个月各产品等级的市场占有率

y=x*P^i

end

运行结果如下:

y=0.47700.36400.1590

y=0.33370.45980.2065

y=0.24150.51440.2441

y=0.18210.54450.2734

y=0.14380.56030.2959

y=0.11910.56780.3131

y=0.10310.57070.3262

y=0.09270.57120.3361

y=0.08600.57050.3435

y=0.08160.56940.3490

y=0.07870.56810.3532

结论:

顾客对普通品的需求有减少的趋势,对一级品和特级品的需求有增加的趋势,因此,可以调整相应等级产品的产量。

实验8:

基于MATLAB的灰色预测模型

【实验目的】

实验目的:

掌握灰色预测模型及其应用

基本内容:

灰色预测模型的提出,建模以及实现代码。

【实验内容】

灰色系统(GreySystem)理论是我国著名学者邓聚龙教授20世纪80年代初创立的一种兼备软硬科学特性的新理论。

该理论将信息完全明确的系统定义为白色系统,将信息完全不明确的系统定义为黑色系统,将信息部分明确、部分不明确的系统定义为灰色系统。

由于客观世界中,诸如工程技术、社会、经济、农业、环境、军事等许多领域,大量存在着信息不完全的情况。

要么系统因素或参数不完全明确,因素关系不完全清楚;要么系统结构不完全知道,系统的作用原理不完全明了等,从而使得客观实际问题需要用灰色系统理论来解决。

灰色预测是应用灰色模型GM(1,1)对灰色系统进行分析、建模、求解、预测的过程。

由于灰色建模理论应用数据生成手段,弱化了系统的随机性,使紊乱的原始序列呈现某种规律,规律不明显的变得较为明显,建模后还能进行残差辨识,即使较少的历史数据,任意随机分布,也能得到较高的预测精度。

因此,灰色预测在社会经济、管理决策、农业规划、气象生态等各个部门和行业都得到了广泛的应用。

一、GM(1,1)模型建立

设有k个原始非负样本序列

为揭示系统的客观规律,灰色系统理论采用了独特的数据预处理方式,对序列{

}进行一阶累加生成,即AGO生成,

由此得生存数列:

GM(1,1)模型的原始形式为:

的紧邻值生存序列

其中

GM(1,1)模型的基本形式:

=

为参数列,且

则GM(1,1)模型

的最小二乘估计参数列满足

关于

的白化方程也叫影子方程为:

定理:

白化方程的解也称时间响应函数为:

GM(1,1)模型

的时间响应序列为

实际预测值为

二、模型检验

为确保所建立的GM(1,1)模型有较高的预测精度,还需要进行以下检验

(1)求出

之残差e(k)、相对误差

和平均相对误差

.

(2)求出原始数据平均值x:

.

三、残差修正模型

,当然我们知道

并不一定全为负或者全为正,这时我们令

同时令

是一个非负序列,我们可以用方法来建立它的GM模型,求解,得出其预测值

而后还原残差预测值

最后用

修正原来的预测值,得到修正后的预测值

.

四、实现代码

clearall

X0=input('请输入序列矩阵');%输入数据请用如例所示形式:

[48.757.1768.7692.15]或者[43823050,44649620,4579375046613050477154404852627049713050],该向量为原始向量X0n=length(X0);

fori=2:

n%开始进行建模可行性分析

Q(i)=X0(i-1)/X0(i);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2