当前位置:文档之家› MATLAB--练习(含代码)

MATLAB--练习(含代码)

MATLAB--练习(含代码)
MATLAB--练习(含代码)

MATLAB 练习

实验一常见分布的概率密度、分布函数生成

[实验目的]

1. 会利用MATLAB软件计算离散型随机变量的概率,连续型随机变量概率密度值。

2.会利用MATLAB软件计算分布函数值,或计算形如事件。

3.会求上分位点以及分布函数的反函数值。

[实验要求]

1.掌握常见分布的分布律和概率密度的产生命令,如binopdf,normpdf

2. 掌握常见分布的分布函数命令,如binocdf,normcdf

3. 掌握常见分布的分布函数反函数命令,如binoinv,norminv

[实验内容]

1 事件A在每次试验中发生的概率是0.3,计算

(1)在10次试验中A恰好发生6次的概率;

(2)在10次试验中A至多发生6次的概率.

binopdf(6,10,0.3)

>> binocdf(6,10,0.3)

2设随机变量X服从参数是3的泊松分布,求概率

poisspdf(6,3)

3设随机变量X服从区间[2,6]上的均匀分布,求

(1)X=4时的概率密度值;

(2).

unifpdf(4,2,6)

>> unifcdf(5,2,6)

4设随机变量X服从参数是6的指数分布,求

(1)X=0,1,2,3,4,5,6时的概率密度值;

(2).

exppdf(0:6,6)

>> expcdf(5,6)

5设随机变量X服从均值是6,标准差是2的正态分布,求

(1) X=3,4,5,6,7,8,9时的概率密度值;

(2)X=3,4,5,6,7,8,9时的分布函数值;

(3)若=0.345,求x;

(4)求标准正态分布的上0.05分位数。

normpdf(3:9,6,2)

normcdf(3:9,6,2)

norminv(0.345,6,2)

norminv(0.95,0,1)

6设随机变量X服从自由度是6的t分布,求

(1)X=-3,-2,-1,0,1,2,3时的概率密度值; (2)X=-3,-2,-1,0,1,2,3时分布函数值; (3)若=0.345,求x;

(4)求t分布的上0.05分位数.

tpdf(-3:3,6)

tcdf(-3:3,6)

tinv(0.345,6)

tinv(0.95,6)

7设随机变量X服从自由度是6的

2

χ分布,求

(1) X=0,1,2,3,4,5,6时的概率密度值;

(2) X=0,1,2,3,4,5,6时的分布函数值;

(3) 若=0.345,求x;

(4) 求

2

χ分布的上0.05分位数.

chi2pdf(0:6,6)

chi2cdf(0:6,6)

chi2inv(0.345,6)

chi2inv(0.95,6)

8设随机变量X服从第一自由度是2,第,二自由度是6的F分布,求

(1) X=0,1,2,3,4,5,6时的概率密度值;

(2) X=0,1,2,3,4,5,6时的分布函数值;

(3) 若=0.345,求x;

(4) 求F分布的上0.05分位数.

fpdf(0:6,2,6)

fcdf(0:6,2,6)

finv(0.345,2,6)

finv(0.95,2,6)

实验二概率作图

[实验目的]

1.熟练掌握MATLAB软件的关于概率分布作图的基本操作

2.会进行常用的概率密度函数和分布函数的作图

3.会画出分布律图形

1.掌握MATLAB画图命令plot

2.掌握常见分布的概率密度图像和分布函数图像的画法

[实验内容]

9事件A在每次试验中发生的概率是0.3,记10次试验中A发生的次数为X.

(1)画出X的分布律图形;

x=0:10;

>> y=binopdf(x,10,0.3);

>> plot(x,y,'.')

>>

(2)画出X的分布函数图形;

x=0:0.01:10;

>> y=binocdf(x,10,0.3);

>> plot(x,y)

10设随机变量X服从参数是6的指数分布,

(1)画出X的概率密度图形

x=0:0.01:10;

>> y=exppdf(x,6);

>> plot(x,y)

(2)画出X的分布函数图形

x=-1:0.01:10;

>> y=expcdf(x,6);

>> plot(x,y)

11设随机变量X服从参数是3的泊松分布。

(1)画出X的分布律图形;

x=0:10;

>> y=poisspdf(x,3);

>> plot(x,y,'.')

(2)画出X的分布函数图形;

>> x=0:0.01:10;

>> y=poisscdf(x,3);

>> plot(x,y)

12 设随机变量X服从区间[2,6]上的均匀分布。

(1)画出X的概率密度图形

x=0:0.01:10;

>> y=unifpdf(x,2,6);

>> plot(x,y,'*')

(2)画出X的分布函数图形

>> x=0:0.01:10;

>> y=unifcdf(x,2,6);

13设随机变量X服从均值是6,标准差是2的正态分布。

(1)画出X的概率密度图形

x=-10:0.01:10;

>> y=normpdf(x,6,2);

>> plot(x,y)

(2)画出X的分布函数图形

> x=-10:0.01:10;

>> y=normcdf(x,6,2);

>> plot(x,y)

(3)在同一个坐标系中画出均值是6,标准差是1,,3的正态分布概率密度图形x=0:0.01:13;

>> y1=normpdf(x,6,1);

>> y2=normpdf(x,6,2);

>> y3=normpdf(x,6,3);

>> plot(x,y1,x,y2,x,y3)

14设随机变量X服从自由度是6的t分布

(1)画出X的概率密度图形

x=-10:0.01:10;

>> y=tpdf(x,6);

>> plot(x,y)

(2)画出X的分布函数图形

x=-10:0.01:10;

>> y=tcdf(x,6);

>> plot(x,y)

15设随机变量X服从自由度是6的

2 分布

(1)画出X的概率密度图形

x=0:0.01:10;

>> y=chi2pdf(x,6);

>> plot(x,y)

(2)画出X的分布函数图形

x=0:0.01:10;

>> y=chi2cdf(x,6);

>> plot(x,y)

16设随机变量X服从第一自由度是2,第,二自由度是6的F分布(1)画出X的概率密度图形

x=0:0.001:10;

>> y=fpdf(x,2,6);

>> plot(x,y)

(2)画出X的分布函数图形

x=0:0.001:10;

>> y=fcdf(x,2,6);

实验三数字特征

[实验目的]

1 加深对数学期望,方差的理解

2理解数学期望,方差的意义,以及具体的应用

3 加深对协方差,相关系数的理解

4 了解协方差,相关系数的具体的应用

[实验要求]

1 概率与频率的理论知识,MATLAB软件

2 协方差,相关系数的理论知识,MATLAB命令cov,corrcoef

[实验内容]

17若~B(20,0.3), 求E(X),D(X).

[M,,V]=binostat(20,0.3)

18随机变量X的概率密度为,求E(X),D(X).

Syms X

f1=x;

f2=2-x;

Ex=int(xf1,0,1)+int(xf2,1,2);

Ex2=int(x^2f1,0,1)+int(x^2f2,1,2);

Dx=Ex2-Ex^2

19设(X,Y)的概率密度为, 求EX,EY.

Syms x y

fxy=8xy;

Ex=int(int(fxyx,y,0,x),x,0,1)

Ey=int(int(fxyy,y,0,x),x,0,1)

20(续19)求cov(X,Y)

Syms x y

fxy=8xy;

Ex=;

Ey=;

Cxy=int(int(fxy(x-Ex)(y-Ey),y,0,x),x,0,1)

21 某种商品每件表面上的疵点数X服从泊松分布,平均每件上有0.8个疵点。若规定表面不超过一个疵点的为一等品,价值10元,表面疵点数大于一个不多于4个的为二等品,价值8元。表面疵点数多于4个则为废品,求产品价值的均值。

解设X表示产品表面上的疵点数,由已知,EX=0.8,且X服从泊松分布,故EX=0.8, =

设Y表示产品价值,则Y有分布律:

==0.8088

=0.1898

=0.0014

故有EY=0(元)

> pro=[ ];

>> price=[0 10 8];

>> pro(2)=poisscdf(1,0.8);

>> pro(3)=poisscdf(4,0.8)-pro(2);

>> pro(1)=1-pro(2)-pro(3)

>> Ey=pro*price'

22 设随机变量X~N(1,9),Y~N(0,16) ,且X与Y的相关系数为,令Z=X/3+Y/2.求(1)E(Z) ,D(Z) ;

(2) 求X 与Z的相关系数。

解根据题意,有E(X)=1,D(X)=9,E(y)=0 ,D(y)=16

由E(Z)=E(X/3)+E(y/2)=E(X)/3+E(Y)/2得

E(Z)=1/3+0=1/3

由,cov(X,Y)= 有

Cov(X,Y)=0.5=6

D(Z)=D(X/3+Y/2)=D(X/3)+D(Y/2)+2cov(X/3,Y/2)

得到D(Z)=D(X)/9+D(Y)/4+2cov((X,Y)

=9/9+16/4+2=3

得cov(X,Z)=cov(X,X/3)+cov(X,Y/2)

=1/3cov(X,X)+1/2cov(X,Y)

=9/3+(-6)=0

[Ex,Dx]=normstat(1,sqrt(9));

>> [Ey,Dy]=normstat(0,sqrt(16));

>> rxy=-0.5;

>> syms x y z

>> z=x/3+y/2;

>> covxy=rxy*sqrt(Dx)*sqrt(Dy);

>> Ez=Ex/3+Ey/2

>> Dz=Dx/9+Dy/4+2*1/3*1/2*(covxy)

>> covxz=Dx/3+covxy/2

实验四统计中的样本数字特征

23随机生成4组10个整数数据,求每组数据的平均值。

> X=fix(20*rand(10,4))

>> M=mean(X)

24 随机生成服从标准正态分布的6组10个数据,求每组数据的极差、样本方差、样本标准差。

X=normrnd(0,1,10,6)

M1=range(X)

M2=var(X)

M3=std(X)

实验五两个正态总体均值差,方差比的区间估计

[实验目的]

1掌握两个正态总体均值差,方差比的区间估计方法

2会用MATLAB求两个正态总体均值差,方差比的区间估计

[实验要求]

两个正态总体的区间估计理论知识

[实验内容]

25 为比较甲乙两种型号步枪子弹的枪口速度,随机地取甲种型号子弹10发,得到枪口速度的平均值为500(m/s ),标准差1.10(m/s );乙种型号子弹20发,得到枪口速度的平均值为496(m/s ),标准差1.20(m/s )。两个总体都近似服从正态分布,且方差相等。求两个总体均值差的置信水平为0.95的置信区间。

t=tinv(0.975,28);

>> s=sqrt((9*1.10^2+1.20^2)/28);

>> d1=(500-496)-t*s*sqrt(1/10+1/20)

>> d2=(500-496)+t*s*sqrt(1/10+1/20)

26 从甲乙两个蓄电池厂生产的产品中,分别抽取10个产品,测得它们的电容量(单位:Ah )为:

甲厂:146 141 138 142 140 143 138 137 142 137

乙厂:141 143 139 139 140 141 138 140 142 136

若蓄电池的电容量服从正态分布,求两个工厂生产的蓄电池的电容量方差之比的置信水平为0.90的置信区间。

x1=[146 141 138 142 140 143 138 137 142 137];

>> x2=[141 143 139 139 140 141 138 140 142 136];

>> s1=var(x1);

>> s2=var(x2);

>> f1=finv(0.95,9,9);

>> f2=finv(0.05,9,9);

>> d1=s1/s1*(1/f1)

>> d2=s1/s2*(1/f2)

实验六 假设检验

[实验目的]

1 会用MATLAB 进行单个正态总体均值及方差的假设检验

2 会用MATLAB 进行两个正态总体均值差及方差比的假设检验

[实验要求]

熟悉MATLAB 进行假设检验的基本命令与操作

[实验内容]

27 某工厂生产10

Ω的电阻,根据以往生产的电阻实际情况,可以认为其电阻值服从正态分布,标准差=0.1Ω.现随机地抽取10个电阻,测得它们的电阻值为(Ω):

9.9 ,10.1 ,10.2 ,9.7 ,9.9, 9.9 ,10 ,10.5 ,10.1 ,10.2

问我们能否认为该厂的电阻的平均值为10Ω?(取=0.1)

x=[9.9 10.1 10.2 9.7 9.9 9.9 10 10.5 10.1 10.2];

>> [h,sig,ci]=ztest(x,10,0.1,0.1)

28 用自动包装机包装大米,袋装米的质量服从正态分布。在机器正常工作情况下,其均值

为0.5kg.某天检查机器工作情况,从已经包装好的大米中随机地抽取9袋,称得质量为(单位:kg):0.497,0.512,0.506,0.515,0.520,0.522,0.498,0.519,0.510

问机器工作是否正常?(取=0.05)

x=[0.497,0.512,0.506,0.515,0.520,0.522,0.498,0.519,0.510];

>> [h,sig,ci]=ttest(x,0.5,0.05)

29 杜鹃总是把蛋生在别的鸟巢中,现在从甲、乙两种鸟巢分别得到杜鹃蛋9只、15只,测得杜鹃蛋的长度数据(单位:mm)如下:

甲鸟巢:21.2,21.6,21.9,22.0,22.0,22.2,22.8,22.9,23.2

乙鸟巢:19.8,20.0,20.3,20.8,20.9,20.9,21.0,21.0,21.1,21.2,21.5,22.0,21.9,21.1,22.3

假设这两个样本来自同方差的正态总体,试鉴别杜鹃蛋的长度差异是由于随机因素造成的,还是与它们被发现的鸟巢不同有关?(取=0.05)

x=[21.2,21.6,21.9,22.0,22.0,22.2,22.8,22.9,23.2];

>> y=[19.8,20.0,20.3,20.8,20.9,20.9,21.0,21.0,21.1,21.2,21.5,22.0,21.9,21.1,22.3];

>> [h,sig,ci]=ttest2(x,y,0.05)

MATLAB编程作业

《Matlab 编程训练》 作业 专 业 学生姓名 班级 学 号 指导教师 完成日期

实训一 MATLAB 语言介绍和数值计算 1.先求下列表达式的值,然后显示MATLAB 工作空间的使用情况并保存变量。 12 2sin851z e =+ . 2. 已知 1234413134787,2033657327A B --???? ????==???? ????-???? ,求下列表达式的值: (1) A+6*B 和A-B+I (其中I 为单位矩阵) A+6*B:

A-B+I: (2)A*B和A.*B A*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] c=A*B 结果: A.*B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=A.*B 结果:

(3)A^3和A.^3 A^3程序: A=[12 34 -4;34 7 87;3 65 7] E=A^3 结果: A.^3程序: A=[12 34 -4;34 7 87;3 65 7] C=A.^3 (4)A/B及B\A A/B程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] C=A/B 结果:

B\A程序: A=[12 34 -4;34 7 87;3 65 7] B=[1 3 -1;2 0 3;3 -2 7] D=B\A 结果: (5)将矩阵C=B\A的右下角2*2子矩阵赋给D, 并(3)保存变量(mat文件)程序: A=[12 34 -4;34 7 87;3 65 7]; B=[1 3 -1;2 0 3;3 -2 7]; C=B*inv(A); D=C(2:3,2:3) 结果:

MATLAB程序设计作业

Matlab程序设计 班级 姓名 学号

《MATLAB程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot的原始数据、一次拟合曲线和三次拟合曲线,给出MATLAB代码和运行结果。 代码如下: x=[1,2,3,4,5,6,7,8,9,10]; y=[1.2,3,4,4,5,4.7,5,5.2,6,7.2]; plot(x,y); title('原始数据'); p=polyfit(x,y,1); q=polyval(p,x); figure,plot(x,q); title('一次拟合'); p=polyfit(x,y,2); q=polyval(p,x); figure,plot(x,q); title('二次拟合'); 运行结果如下:

1 2 3 4 5 6 7 8 9 10 12 3 4 5 6 7 8 原始数据 123 456789 102 2.5 3 3.54 4.5 55.56 6.57一次拟合 123456789 101 2 3 4 5 6 7 二次拟合 2、在[0,3π]区间,绘制y=sin(x)曲线(要求消去负半波,即(π,2π)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 代码如下: clear clc x=(0:0.01:3*pi); y=sin(x); plot(x,y); y1=(y>=0).*y; figure,plot(x,y1);

灰色预测模型的Matlab程序及检验程序(精)

灰色预测模型的Matlab 程序及检验程序 %灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.2 32.6 26.7 23.0 20.0 18.9 17.5 16.3];% 原始序列 B=cumsum(A);%累加n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C; ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function [ q,c,p ] = checkgm( x0,x1 ) %GM 检验函数 %x0 原始序列

%x1 预测序列 %·返回值 % q –- 相对误差 % c -- ·方差比 % p -- 小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i)) < 0.6745*s1) p=p+1; end end p=p/len; end

MATLAB第一章作业答案

第一章 M A T L A B 概况与基本操作 1.选择题(每题2分,共20分): (1)最初的MATLAB 核心程序是采用D 语言编写的。 A.PASCAL B.C C.BASIC D.FORTRAN (2)即将于2011年9月发布的MATLAB 新版本的编号为C 。 A.MATLAB 2011Ra B.MATLAB 2011Rb C.MATLAB R2011b D.MATLAB R2011a (3)在默认设置中,MATLAB 中的注释语句显示的颜色是B 。 A.黑色 B.绿色 C.红色 D.蓝色 (4)如果要以科学计数法显示15位有效数字,使用的命令是A 。 A.format long e B.format long C.format long g D.format long d (5)在命令窗口新建变量a 、b ,如果只查看变量a 的详细信息,使用的命令为A 。 A.whos a B.who a C.who D.whos (6)如果要清除工作空间的所有变量,使用的命令为C 。 A.clear B.clear all C.两者都可 D.两者都不可 (7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上B 。 A.冒号 B.分号 C.空格 D.逗号 (8)如果要重新执行以前输入的命令,可以使用D 键。 A.下箭头↓ B.右箭头→ C.左箭头← D.上箭头↑ (9)如果要查询函数det 的功能和用法,并显示在命令窗口,应使用命令C 。 A.doc B.lookfor C.help D.三者均可 (10)如果要启动Notebook 文档,下列D 操作是可行的。 A.在命令窗口输入notebook 命令 B.在命令窗口输入notebook filename 命令 C.在Word 中启动M-book 文档 D.三者均可 2.填空题(每空1分,共20分): (1)MATLAB 是matrix 和laboratory 两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler 和Jack Little 。 (2)在MATLAB 的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为褐红色,注释显示的字体为绿色,错误信息显示的字体为红色。 (3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format loose ,各行之间不添加空行的命令为format compact 。 (4)在MATLAB 中,各种标点符号的作用是不同的。例如,空格的作用是分隔数组每行各个元素,逗号的作用是分隔数组每行各个元素或函数的各个输入参数,分号的作用是作为不显示命令结果的命令行的结尾或分隔数组各列,冒号的作用是生成一维数组或表示数组全部元素,百分号的作用是引导一行注释,…的作用是连接相邻两行,感叹号的作用是调用操作系统命令。 3.程序设计题(每题10分,共40分) (1)以25m/s 的初速度向正上方投球(g=9.8m/s 2),计算到达最高点的时间tp 以及球从出发点到 最高点的距离hp 。 解:根据物理学知识,物体上抛运动的速度与经过的时间之间的关系为0p p v v gt =-,因此所需要的时间为0p p v v t g -=。而到达最高点时的速度0p v =,因此可根据此公式求出tp : v0=25;g=9.8;vp=0; tp=(v0-vp)/g tp = 2.5510

灰色预测MATLAB程序

作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end

for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i-1))+alpha(2,:)/alpha(1,: );%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列 alpha %显示输出参数数列 var %显示输出预测值 error %显示输出误差 c %显示后验差的比值 作用:数据处理判断是否可以用灰色预测、求级比、求累加数列、求a b的值、求预测方程 clc,clear x0=[ ]'; %注意这里为列向量 n=length(x0); lamda=x0(1:n-1)./x0(2:n) %计算级比 range=minmax(lamda') %计算级比的范围 x1=cumsum(x0) %累加运算 B=[*(x1(1:n-1)+x1(2:n)),ones(n-1,1)]; Y=x0(2:n); u=B\Y %拟合参数u(1)=a,u(2)=b x=dsolve('Dx+a*x=b','x(0)=x0'); %求微分方程的符号解

灰色预测matlab程序

Matlab的灰色预测程序: y=input('请输入数据'); n=length(y); yy=ones(n,1); yy(1)=y(1); for i=2:n yy(i)=yy(i-1)+y(i) end B=ones(n-1,2); for i=1:(n-1) B(i,1)=-(yy(i)+yy(i+1))/2; B(i,2)=1; end BT=B'; for j=1:(n-1) YN(j)=y(j+1); end YN=YN'; A=inv(BT*B)*BT*YN; a=A(1); u=A(2); t=u/a; t_test=input('输入需要预测的个数'); i=1:t_test+n; yys(i+1)=(y(1)-t).*exp(-a.*i)+t; yys(1)=y(1); for j=n+t_test:-1:2 ys(j)=yys(j)-yys(j-1); end x=1:n; xs=2:n+t_test; yn=ys(2:n+t_test); plot(x,y,'^r',xs,yn,'*-b'); det=0; for i=2:n det=det+abs(yn(i)-y(i)); end det=det/(n-1); disp(['百分绝对误差为:',num2str(det),'%']); disp(['预测值为:',num2str(ys(n+1:n+t_test))]); 请输入数据[29.8 30.11 41.05 70.12 77.79 77.79 104.82 65.22 82.7 100.79] 输入需要预测的个数4

百分绝对误差为:14.5128% 预测值为:110.5718 120.8171 132.0116 144.2434

自动控制原理Matlab程序作业(精)

自控控制原理 MATLAB 程序设计作业 指导老师:汪晓宁 目录 一、题目 (2) 二、运行结果 (3) 三、程序说明 (8) 四、附录 ............................................ 9 代码 . ............................................. 9 参考文献 .. (17) 一、题目 用 Matlab 创建用户界面,并完成以下功能 a 将产生未综合系统的根轨迹图以及 0.707阻尼比线, 你可以交互地选择交点的运行点。界面能显示运行点的坐标、增益值以及近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及稳态误差 b 显示未综合系统的阶跃响应 c 输入控制器的参数, 绘制综合后系统的根轨迹图以及显示综合的设计点 (主导极点 , 允许不断改变控制器参数,知道所绘制的根轨迹通过设计点 d 对于综合后的系统, 显示运行点的坐标、增益,近似为二阶系统估算的超调量、调整时间、峰值时间、阻尼比、无阻尼自然震荡频率以及误差系数 e 显示综合后系统的阶跃响应 二、运行结果

输入传递函数分子分母 生成根轨迹图

选择点并得到该点各项参数在下方输出面板输出 获得阶跃响应图 用 rltool(辅助,选择合适的插入零点

输入零点,并得到根轨迹图

选择根轨迹图上的任一点,得到数据,在下方输出面板输出得到阶跃响应图 三、运行说明

第一步, 在请输入分子后的输入框输入传递函数分子的矩阵, 在下一输入框输入传递函数分母并按“生成根轨迹图”按钮获得根轨迹 第二步, 按选择点并显示各参数获得根轨迹图上任一点的各项数据, 数据全部输出在下方输出面板 第三步,按“生成阶跃响应图”按钮可以获得该函数的阶跃响应 第四步,在“请输入插入零点”后的输入框中输入参数,并按“生成综合后根轨迹图” 按钮产生根轨迹 (可以通过点击“根轨迹校正”按钮,调用工具箱拖动零点进行快速查看根轨迹图,选择合适的根轨迹再在输入框中输入零点的值 第五步,按“选择点并显示各参数(综合后系统”选取各点,查阅参数,数据输出在下方输出面板上 第六步,按“生成阶跃响应图(综合后系统”可以得到综合后系统的阶跃响应 最后,点击“退出”结束程序 四、附录 代码: function varargout = Liushuai20122510(varargin % LIUSHUAI20122510 MATLAB code for Liushuai20122510.fig % LIUSHUAI20122510, by itself, creates a new LIUSHUAI20122510 or raises the existing % singleton*. %

灰色预测模型matlab程序精确版

灰色预测模型matlab程序 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,mat lab6.5 ,使用本程序请注明,程序存储为gm1.m %x = [5999,5903,5848,5700,7884];gm1(x); 测试数据 %二次拟合预测GM(1,1)模型 function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=size(z1,2); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au

ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '('; rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,r ightbra,'+',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1 = size(ze1,2); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20

Matlab程序设计大作业(终审稿)

M a t l a b程序设计大作 业 公司内部档案编码:[OPPTR-OPPT28-OPPTL98-OPPNN08]

Matlab程序设计 课程大作业 题目名称:_________________________________ 班级:_________________________________ 姓名:_________________________________ 学号:_________________________________ 课程教师:温海骏 学期: 2015-2016学年第2学期 完成时间:

MATLAB优化应用 §1 线性规划模型 一、线性规划问题: 问题1:生产计划问题 假设某厂计划生产甲、乙两种产品,现库存主要材料有A类3600公斤,B类2000公斤,C类3000公斤。每件甲产品需用材料A类9公斤,B类4公斤,C类3公斤。每件乙产品,需用材料A类4公斤,B类5公斤,C类10公斤。甲单位产品的利润70元,乙单位产品的利润120元。问如何安排生产,才能使该厂所获的利润最大。 问题2:投资问题 某公司有一批资金用于4个工程项目的投资,其投资各项目时所得的净收益(投入资金百分比)如下表:工程项目收益表 由于某种原因,决定用于项目A的投资不大于其他各项投资之和而用于项目B和C的投资要大于项目D的投资。试确定该公司收益最大的投资分配方案。 问题3:运输问题

有A 、B 、C 三个食品加工厂,负责供给甲、乙、丙、丁四个市场。三个厂每天生产食品箱数上限如下表: 四个市场每天的需求量如下表: 从各厂运到各市场的运输费(元/每箱)由下表给出: 求在基本满足供需平衡的约束条件下使总运输费用最小。 §2 多目标规划模型 多目标规划定义为在一组约束下,多个不同的目标函数进行优化设计。 数学模型: 12min ()() ().()0,1,2, ,m j f x f x f x st g x j k ???? ≤= 其中x=(x 1 ,x 2 , … ,x n )为一个n 维向量;f i (x)为目标函数,i=1, 2, … ,m; g j (x)为系统约束, j=1, 2, … ,k 。

灰色预测模型matlab程序精确版

%x=[1019,1088,1324,1408,1601];gm1(x); 测试数据%二次拟合预测GM(1,1)模型 function gmcal=gm1(x) if nargin==0 x=[1019,1088,1324,1408,1601] end format long g sizex=length(x); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=length(z1); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN; au = au0'; %B,au0,au afor = au(1); ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '(';

rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,rightbra,'+ ',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1=length(ze1); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1; au2 = au20'; %z4,X1,G,au20 Aval = au2(1); Bval = au2(2); %Aval,Bval %输出预测的 A,B的值 strcat(x1t1,'=',num2str(Aval),estr,leftbra,num2str(afor1),tstr,rightbra,'+',lef tbra,num2str(Bval),rightbra) %输出时间响应方程 nfinal = sizex-1 + 1;(其中+1可改为+5等其他数字,即可预测更多的数字) %决定预测的步骤数5 这个步骤可以通过函数传入 %nfinal = sizexd2 - 1 + 1; %预测的步骤数 1 for k3=1:nfinal x3fcast(k3) = constant1*exp(afor1*k3)+ua; end %x3fcast %一次拟合累加值 for k31=nfinal:-1:0 if k31>1 x31fcast(k31+1) = x3fcast(k31)-x3fcast(k31-1); else if k31>0

matlab程序设计作业

Matlab程序设计作业 姓名: 学号: 专业:

? MATLAB 程序设计》作业 1、考虑如下x-y 一组实验数据: x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y 二[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2] 分别绘出plot 的原始数据、一次拟合曲线和三次拟合曲线,给出 原始曲线 MATLAB 代码和运行结果。 7 6 5 4 3 2 2 3 4 5 6 7 8 9 10

7 6.5 6 5.5 5 4.5 4 3.5 3 2.5 10 一次拟合 三次拟合

x=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; y=[1.2, 3, 4, 4, 5, 4.7, 5, 5.2, 6, 7.2]; figure; plot(x,y) p1=polyfit(x,y,1); y1=polyval(p1,x); figure; plot(x,y1) p2=polyfit(x,y,3); y2=polyval(p2,x); figure; plot(x,y2) 2、在[0, 3n区间,绘制y二Sin(x)曲线(要求消去负半波,即(n 2n)区间内的函数值置零),求出曲线y 的平均值,以及y 的最大值及其最大值的位置。给出执行代码和运行结果。 x=0:pi/1000:3*pi; y=Sin(x); y1=(y>=0).*y; %消去负半波figure(1); plot(x,y1, 'b' ); a=mean(y1) %求出y1 的平均值 b=max(y1) %求出y1 的最大值b, 以及最大值在矩阵中的位置; d=x(find(y1==b)) >> ex1 a = 0.4243 b = 1 d = 1.5708 7.8540 >>

MATLAB第一章作业答案

第一章M A T L A B概况与基本操作 1.选择题: (1)最初的MATLAB核心程序是采用A语言编写的。 A.FORTRAN B.C C.BASIC D.PASCAL (2)即将于2011年9月发布的MATLAB新版本的编号为D。 A.MATLAB 2011Ra B.MATLAB 2011Rb C.MATLAB R2011a D.MATLAB R2011b (3)在默认设置中,MATLAB中的注释语句显示的颜色是D。 A.黑色 B.蓝色 C.红色 D.绿色 (4)如果要以科学计数法显示15位有效数字,使用的命令是B。 A.format long B.format long e C.format long g D.format long d (5)在命令窗口新建变量a、b,如果只查看变量a的详细信息,使用的命令为B。 A.who a B.whos a C.who D.whos (6)如果要清除工作空间的所有变量,使用的命令为 C 。 A.clear B.clear all C.两者都可 D.两者都不可 (7)在创建变量时,如果不想立即在命令窗口中输出结果,可以在命令后加上D。 A.冒号 B.逗号 C.空格 D.分号 (8)如果要重新执行以前输入的命令,可以使用B键。 A.下箭头↓ B.上箭头↑ C.左箭头← D.右箭头→ (9)如果要查询函数inv的相关信息,并显示在命令窗口,应使用命令A。 A.help B.lookfor C.doc D.三者均可 (10)如果要启动Notebook文档,下列D操作是可行的。 A.在命令窗口输入notebook命令 B.在命令窗口输入notebook filename命令 C.在Word中启动M-book文档 D.三者均可 2.填空题: (1)MATLAB是MATrix和LABoratory两个单词前三个字母的组合,意为“矩阵实验室”,它的创始人是Cleve Moler和Jack Little。 (2)在MATLAB的默认设置中,关键字显示的字体为蓝色,命令、表达式、计算结果显示的字体为黑色,字符串显示的字体为紫色,注释显示的字体为绿色,错误信息显示的字体为红色。 (3)在命令窗口中,输出结果显示为各行之间添加空行的命令为format compact,各行之间不添加空行的命令为format compact。 备注:本题布置给大家时有一点小错误,现在予以更正。 (4)在MATLAB中,各种标点符号的作用是不同的。例如,空格的作用是分隔数组中每一行的各个元素,逗号的作用是分隔数组中每一行的各个元素或不同的命令,分号的作用是分隔数组中的各行或控制命令执行结果是否在命令窗口显示,冒号的作用是生成一维数组或显示全部元素,百分号的作用是注释行的开头,…的作用是把相邻两行的语句连接为一个命令,感叹号的作用是执行操作系统命令。 3.先建立自己的工作目录,再将自己的工作目录设置到MATLAB搜索路径下。请写出操作步骤或用Matlab命令实现。用help命令能查询到自己的工作目录吗? 解:操作步骤: (1)在Windows环境中建立一个工作目录,如:c:\mywork; (2)启动MATLAB,在File菜单中选择Set Path…命令,显示出如下图的对话框:

灰色预测MATLAB程序

灰色预测 专设工⑼他QA—叫吋)为原始数列.其1次累 ?加生成数列为恥=妙①曲⑵,…卅何),其中 X° 仇)二工* ° (0.址=1=2= -:n 5-1 卷定义卫的决导数为 d(k) = *町(上)=x 叫咼-x cl)(Jt-l). 令为数列工①的邻值生成数列.即 却(去)=^(*) + (1- a)x0)(t-lX 于是定义GM (L 1)的灰微分方程模型为 d(k)-血⑴住)=K 即或严>(£) + “尹⑻=人⑴ 在式(1)中』。>(灼称为灰导数,我称为发展系数, 弧称为白化背景值,b称为灰作用量乜 将时刻表殳二2「3「/代入(1)式有 V!1「— a y=代⑶ B =I b*- : X闵0)-Z,:](K)1

于是G\I <1?1)複至可表示为Y = Bu. 現在问题归结为求sb 在值。用一元线性回归?即最小二秦法求它们的活计值 为 注二实陌上回归分析中求估计值是用软件计尊的?有标准程序求解,iOmaClab 等。 GM <1? 1>的白化晏 対于G\I <1> 1)的灰微分方程(1) >如果将灰导数打(Q 的时刻 视为连绫变里"则x°)视为时问(函数卅⑺,于是*〉(Q 対血于导数里级 心2 >白化背臬值申的对应于导数卅⑴。于是G\I (1,1)的坝徽 分方樂対应于的白微分 方程为 内?则数堀列X?可以塗互G\I <19 1) 且可以进行页 色预测。否朋,対数摄做适当的克换处理■如平移叢换: 取C 使得鞍据列 严伙)=工⑴伙)+ G 上=1,2,…, 的级比都華住可吝禎盖内。 心⑴⑴ + o?i> (r)二dr <2) GM mi )质色预测的步骤 1 ?教摇的枪绘与处連 为了ftilGAl (1,1)建複方法的可行性,亲要为已知期S 做必要的检蛉 处理。 设原始教据列为了 逛=(乂°(1)*6(2)严炉00; >计算数列的级比 如果所有的级比都落在可容覆盖区间 ? fc = A- 2,3"?

Matlab作业习题与答案详解(附程序)

clear all;clc;close all; x=-10:0.01:20; y=4*sin(x)./x; ymin=min(y) 二、蒙特卡罗算法的数值计算 当前的油位高度是2.3米,见图1。模拟油流进储油罐的过程(图维数任选),请计算罐内油量。三维的效果图参见图2。储油罐由两部分组成,中间是圆柱体,两端是球罐体。(本题简化自2011年UCMCM A题《储油罐的变位识别与罐容表标定》,细节参见原题原题附件2 cumcm2010A.doc。) 图1

图2 主程序: clc; clear all; close all; center1=[-3.375,0,1.5]; %左球罐中心center2=[3.375,0,1.5]; %右球罐中心 n=10000; %每次的撒点数 delta=0.02; %层高 h=3; en=h/delta; Show; %画出油罐 for i=0:en-1 x=(rand(1,n)-0.5)*10; %随机生成n个点

y=(rand(1,n)-0.5)*h; z=(rand(1,n)*delta+i*delta); Z=[x;y;z]; [dis1 dis2]=juli(center1,center2,Z); %算出各点对应的距离 index=find(((x>-4&x<4)&dis2<1.5)|(x<-4|x>4)&dis1<1.625); %找出在罐内的点 plot3(x(index),y(index),z(index),'.k'); %画出在罐内的点 drawnow end 子程序1: function [dis1 dis2]=juli(a,b,q) d11=q(1,:)-a(1); d12=q(2,:)-a(2); d13=q(3,:)-a(3); d1=sqrt(d11.^2+d12.^2+d13.^2); d21=q(1,:)-b(1); d22=q(2,:)-b(2);

灰色预测MATLAB程序

灰色预测M A T L A B程 序 文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

灰色预测 作用:求累加数列、求a b的值、求预测方程、求残差 clc %清屏,以使结果独立显示 x=[ ]; format long; %设置计算精度 if length(x(:,1))==1 %对输入矩阵进行判断,如不是一维列矩阵,进行转置变换 x=x'; end n=length(x); %取输入数据的样本量 z=0; for i=1:n %计算累加值,并将值赋予矩阵be z=z+x(i,:); be(i,:)=z; end for i=2:n %对原始数列平行移位 y(i-1,:)=x(i,:); end for i=1:n-1 %计算数据矩阵B的第一列数据 c(i,:)=*(be(i,:)+be(i+1,:)); end for j=1:n-1 %计算数据矩阵B的第二列数据 e(j,:)=1; end for i=1:n-1 %构造数据矩阵B B(i,1)=c(i,:); B(i,2)=e(i,:); end alpha=inv(B'*B)*B'*y; %计算参数矩阵即a b的值 for i=1:n+1 %计算数据估计值的累加数列,如改为n+1为n+m可预测后m-1个值 ago(i,:)=(x(1,:)-alpha(2,:)/alpha(1,:))*exp(-alpha(1,:)*(i- 1))+alpha(2,:)/alpha(1,:);%显示输出预测值的累加数列 end var(1,:)=ago(1,:) %显示输出预测值 for i=1:n %如改n为n+m-1,可预测后m-1个值 var(i+1,:)=ago(i+1,:)-ago(i,:); %估计值的累加数列的还原,并计算出下一预测值end for i=1:n error(i,:)=x(i,:)-var(i,:); %计算残差 end c=std(error)/std(x); %调用统计工具箱的标准差函数计算后验差的比值c ago %显示输出预测值的累加数列

Matlab振动程序-代码作业

一、课题任务要求 随着机械工业不断向自动化、高精度、智能化等方向的发展,在机械设备运行及生产过程中进行参量测试、分析与诊断等处理过程已成为必要环节,许多信号处理方法如时域统计分析、相关分析、相干分析、频谱分析等已经被广泛被应用与机械工程测试领域。 本文为机械测试信号的时域和频域分析,其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。在进行上述分析之前先要对振动信号进行拟合。机械振动分为确定性振动和随机振动,确定性振动又分为周期振动和非周期振动,周期振动又进一步分为简谐振动和复杂的周期振动。所以可以根据上述的分类来拟合振动信号。在设计信号的处理程序时,用MATLAB中的相关函数来对所拟合的振动信号进行时域分析和频域分析,并对绘出的频谱图进行说明。 二、技术路线 对机械振动信号的时域和频域采集,根据所拟合的振动信号,选取所需要的时域性能指标和频域分析的性能指标对振动信号进行分析。其中时域分析包括对信号最大值、最小值、中值、方差的分析,频域分析包括FFT分析、频谱分析、倒谱分析。 现构造一个振动信号(在该程序中以两个衰减振动分量和一个随

机数rand 之和来拟合振动信号),再利用MATLAB 中的函数mean ()、min ()、max ()、std ()对离散序列中的平均值、最大值、最小值、标准差等时域性能进行分析,通过调用函数fft (y );psd (y );rcep (y )对该振动信号进行频域内的性能分析。 在设计过程中的理论知识有离散傅立叶变换(DFT )、功率谱的概念和意义以及倒谱的概念和意义。 ①DFT 的定义和意义: DFT 的定义式为: DFT 的意义:DFT 的意义在于它表示信号中的各个频率的分量的振动幅值的大小,亦即该分量对于振动信号影响的大小。通过DFT 的快速算法FFT 可以很方便的将振动信号的各个分量的幅值比重计算出来。即可以把信号的主频分量提取出来。 ②功率谱的概念和意义: 功率谱的定义式为:若X (Ω)=DFT[x(m)],x(n)为N 点序列。则 X * (Ω) =DFT[x N (-m)] =0k

灰色预测模型的MATLAB 程序及检验程序

灰色预测模型的Matlab程序及检验程序%灰色预测模型程序 clear syms a b; c=[a b]'; A=[46.232.626.723.020.018.917.516.3];%原始序列B=cumsum(A);%累加 n=length(A); for i=1:(n-1) C(i)=(B(i)+B(i+1))/2; end %计算待定参数 D=A; D(1)=[]; D=D'; E=[-C;ones(1,n-1)]; c=inv(E*E')*E*D; c=c'; a=c(1); b=c(2); %预测往后预测5个数据 F=[];F(1)=A(1); for i=2:(n+5) F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a; end G=[];G(1)=A(1); for i=2:(n+5) G(i)=F(i)-F(i-1); end t1=2002:2009; t2=2002:2014; G plot(t1,A,'o',t2,G) %灰色预测模型检验程序 function[q,c,p]=checkgm(x0,x1) %GM检验函数 %x0原始序列 %x1预测序列 %·返回值

%q–-相对误差 %c--·方差比 %p--小误差概率 e0=x0-x1; q=e0/x0; s1=var(x0); %qpa=mean(e0); s2=var(e0); c=s2/s1; len=length(e0); p=0; for i=1:len if(abs(e0(i))<0.6745*s1) p=p+1; end end p=p/len; end 等级相对误差q方差比C小误差概论P I级<0.01<0.35>0.95 II级<0.05<0.50<0.80 III级<0.10<0.65<0.70 IV级>0.20>0.80<0.60

电气工程软件训练(三)——Matlab 作业

D1( 江苏大学 《电气工程软件训练三》课程设计报告 设计题目:MATLAB 专业班级:J电气1401 学生姓名:唐鹏 学生学号:4141127007 指导老师: 完成日期: 江苏大学京江学院

一MATLAB课程设计的目的和要求 1.MATLAB软件功能简介 MATLAB的名称源自Matrix Laboratory,1984年由美国Mathworks公司推向市场。它是一种科学计算软件,专门以矩阵的形式处理数据。MATLAB将高性能的数值计算和可视化集成在一起,并提供了大量的内置函数,从而被广泛的应用于科学计算、控制系统和信息处理等领域的分析、仿真和设计工作。MATLAB 软件包括五大通用功能,数值计算功能(Nemeric)、符号运算功能(Symbolic)、数据可视化功能(Graphic)、数字图形文字统一处理功能(Notebook)和建模仿真可视化功能(Simulink)。其中,符号运算功能的实现是通过请求MAPLE内核计算并将结果返回到MATLAB命令窗口。该软件有三大特点,一是功能强大;二是界面友善、语言自然;三是开放性强。目前,Mathworks公司已推出30多个应用工具箱。MATLAB在线性代数、矩阵分析、数值及优化、数值统计和随机信号分析、电路与系统、系统动力学、次那好和图像处理、控制理论分析和系统设计、过程控制、建模和仿真、通信系统以及财政金融等众多领域的理论研究和工程设计中得到了广泛应用。 2.MATLAB课程设计的目的 本次课程设计主要是为了使学生了解MATLAB软件的基本知识,熟悉MATLAB的上机环境,掌握MATLAB数值运算、程序设计、二维/三维绘图、符号运算、Simulink仿真等相关知识,并初步具备将一般数学问题转化为对应的计算机进行处理的能力,以便为今后进一步的学习打下坚定基础。 二MATLAB课程内容 1 MATLAB语言基础 实验目的:基本掌握MATLAB 向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。了解字符串的操作。 实验内容: ①创建以下矩阵:A为初值为1,终值为12,元素数目为6的行向量;

灰色预测模型matlab程序精确版

灰色预测模型matlab程序 灰色模型预测是在数据不呈现一定规律下可以采取的一种建模和预测方法,其预测数据与原始数据存在一定的规律相似性 %下面程序是灰色模型GM(1,1)程序二次拟合和等维新陈代谢改进预测程序,mat lab6.5 ,使用本程序请注明,程序存储为gm1.m %x = [5999,5903,5848,5700,7884];gm1(x); 测试数据 %二次拟合预测GM(1,1)模型 function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数减1,用于计算B yn1(k-1)=x(k); else x1(k)=x(k); end end %x1,z1,k,yn1 sizez1=size(z1,2); %size(yn1); z2 = z1'; z3 = ones(1,sizez1)'; YN = yn1'; %转置 %YN B=[z2 z3]; au0=inv(B'*B)*B'*YN;

%B,au0,au afor = au(1); ufor = au(2); ua = au(2)./au(1); %afor,ufor,ua %输出预测的 a u 和 u/a的值 constant1 = x(1)-ua; afor1 = -afor; x1t1 = 'x1(t+1)'; estr = 'exp'; tstr = 't'; leftbra = '('; rightbra = ')'; %constant1,afor1,x1t1,estr,tstr,leftbra,rightbra strcat(x1t1,'=',num2str(constant1),estr,leftbra,num2str(afor1),tstr,r ightbra,'+',leftbra,num2str(ua),rightbra) %输出时间响应方程 %****************************************************** %二次拟合 k2 = 0; for y2 = x1 k2 = k2 + 1; if k2 > k else ze1(k2) = exp(-(k2-1)*afor); end end %ze1 sizeze1 = size(ze1,2); z4 = ones(1,sizeze1)'; G=[ze1' z4]; X1 = x1'; au20=inv(G'*G)*G'*X1;

相关主题
文本预览
相关文档 最新文档