概述
>> clear;
%输入原始数据和预测长度
x0=[95.94,129.46,156.29,145.24,115.07,173.51,253.91];
x=[1,2,3,4,5,6,7,8,9,10];
n1=length(x0);
n2=length(x);
n1,n2,x0 %进行1-AGO生成
x1=zeros(1,7);
x1(1,1)=x0(1,1);
for k=2:7
x1(1,k)=x1(1,k-1)+x0(1,k);
end
%进行紧邻均值生产
z1=zeros(1,6);
for k=1:6
z1(1,k)=0.5.*[x1(1,k)+x1(1,k+1)];
end
%计算矩阵B和向量yn
B=zeros(6,2);
yn=zeros(6,1);
for k=1:6
B(k,1)=-z1(1,k);
B(k,2)=1;
yn(k,1)=x0(1,k+1);
end
%计算未知参数a和u
A=zeros(2,1);
A=inv(B.*B).* B.* yn;
a=A(1,1);
u=A(2,1);
%微分方程的离散化解
xx1=zeros(1,7);
xx1(1,1)=x0(1,1);
for k=1:6
xx1(1,k+1)=(x0(1,1)-u/a).*exp(-a.*k)+u/a;
end
%建立的GM(1,1)模型
xx0=zeros(1,7);
xx0(1,1)=x0(1,1);
for k=2:7
xx0(1,k)=xx1(1,k)-xx1(1,k-1);
end
xx0
%残差计算
e0=zeros(1,7);%绝对残差
for k=1:7
e0(k)=x0(1,k)-xx0(1,k);
end
e0
q=zeros(1,7);%相对残差
for k=1:7
q(k)=e0(k)/x0(1,k);
end
q
averq=zeros(1);%平均误差
averq=mean(abs(q));
%后验差计算
averx0=zeros(1);%x0平均值
averx0=mean(x0);
S1=zeros(1);%x0均方差
for k=1:7
S1=S1+(x0(k)-averx0)^2
end
S1=(S1/(6))^0.5;
avere0=zeros(1);%e0平均值
avere0=mean(abs(e0));
S2=zeros(1);%e0均方差
for k=1:7
S2=S2+(e0(k)-avere0)^2;
end
S2=(S2/(6))^0.5;
C=zeros(1);%后验差比值
C=S2/S1;
p=zeros(1);%小误差概率
count=zeros(1);
for k=1:7
if e0(k)-avere0<0.6745.*S1
count=count+1;
end
end
p=count/7;
%关联度计算
r=zeros(1);
for k=1:7
r=r+(min(abs(e0))+0.5.*max(abs(e0)))/(e0(k)+0.5.*max(abs(e0)))/7;
A=inv(B);
end
n1 =
7
n2 =
10
x0 =
95.9400 129.4600 156.2900 145.2400 115.0700 173.5100 253.9100
错误使用 inv
矩阵必须为方阵。
新手小白!求各位大神帮忙!!
最后
以上就是重要仙人掌为你收集整理的矩阵方阵matlab,求助!!错误使用 inv 矩阵必须为方阵。的全部内容,希望文章能够帮你解决矩阵方阵matlab,求助!!错误使用 inv 矩阵必须为方阵。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复