下面是源代码(fc.m):
function y=fc(isPloy,factorial);
%function y=fc(isPloy,factorial);
%factorial表示预测函数的阶乘个数,默认是5
%isPloy判断参数的个数,来决定是否,每个阶都进行画图,默认是0(不进行画图)
%close %关闭图形界面
%clear %清理系统变量
if nargin==1 %判断参数的个数,来决定是否,每个阶都进行画图
isPloy=1;
factorial=5;
elseif nargin>=2
else
isPloy=0;
factorial=5;
end
%n=factorial;
fd=fopen('fcout.dat','w+'); %打开结果的保存文件
load fcin.dat; %加载历史数据
x1=fcin(:,1); %加载第一列为x1
y1=fcin(:,2); %加载第二列为y1,红球1
y2=fcin(:,3); %加载第三列为y2,红球2
y3=fcin(:,4); %红球3
y4=fcin(:,5); %红球4
y5=fcin(:,6); %红球5
y6=fcin(:,7); %红球6
y7=fcin(:,8); %篮球
nextPoint=x1(length(x1))+1; %从第一列的最后一个值中,获取下一个预期x轴值
k=nextPoint;
for n=1:1:factorial %n表示预测函数的阶数
%%计算出预测函数的多项式参数
p1=polyfit(x1, y1, n);
p2=polyfit(x1, y2, n);
p3=polyfit(x1, y3, n);
p4=polyfit(x1, y4, n);
p5=polyfit(x1, y5, n);
p6=polyfit(x1, y6, n);
p7=polyfit(x1, y7, n);
xi=linspace(1,k , k); %产生预测的x轴向量
%%计算出根据这些函数,预测出来的与x1对应的y轴值
z1=polyval(p1, xi);
z2=polyval(p2, xi);
z3=polyval(p3, xi);
z4=polyval(p4, xi);
z5=polyval(p5, xi);
z6=polyval(p6, xi);
z7=polyval(p7, xi);
%打印预测向量的最后一个值,为预测值
%fprintf('阶数为:%3d, 红球%3d,%3d,%3d,%3d,%3d,%3d,篮球为:%3d/n',n,round(z1(k)),round(z2(k)),round(z3(k)),round(z4(k)),round(z5(k)),round(z6(k)),round(z7(k)));
fprintf(fd,'阶数为:%3d, 红球%3d,%3d,%3d,%3d,%3d,%3d,篮球为:%3d/n',n,round(z1(k)),round(z2(k)),round(z3(k)),round(z4(k)),round(z5(k)),round(z6(k)),round(z7(k)));
if isPloy>0
val=input('stop,enter');%起到暂停作用
plot(x1, y1,xi,z1, '+', x1, y2,xi,z2,'+', x1, y3,xi,z3,'+', x1, y4,xi,z4,'+', x1, y5,xi,z5 ,'+', x1, y6,xi,z6,'+', x1, y7,xi,z7 ,'o' );
end
end
fclose(fd);
close
type fcout.dat
%画图
plot(x1, y1,xi,z1, '+', x1, y2,xi,z2,'+', x1, y3,xi,z3,'+', x1, y4,xi,z4,'+', x1, y5,xi,z5 ,'+', x1, y6,xi,z6,'+', x1, y7,xi,z7 ,'o' );
%plot(x1, y1,xi,z1, x1, y2,xi,z2, x1, y3,xi,z3, x1, y3,xi,z3, x1, y4,xi,z4 , x1, y5,xi,z5, x1, y6,xi,z6 ,x1, y7,xi,z7 );
下面是 fcint.dat的数据:
01 03 05 18 20 27 33 01 2007-125
02 09 10 19 23 26 31 09 2007-126
03 06 09 13 16 24 28 11 2007-127
04 09 10 19 21 27 31 05 2007-128
05 05 07 20 21 22 30 08 2007-129
06 03 05 09 11 27 31 04 2007-130
07 03 05 07 16 22 27 05 2007-131
08 01 09 16 21 22 23 05 2007-132
09 03 06 07 11 13 33 10 2007-133
10 01 04 10 13 18 25 15 2007-134
11 01 11 16 26 31 33 16 2007-135
12 01 02 18 21 25 29 14 2007-136
13 03 07 08 18 20 22 03 2007-137
14 02 03 15 17 19 25 16 2007-138
15 06 10 12 14 16 22 06 2007-139
16 01 05 16 21 22 26 11 2007-140
17 02 03 04 06 17 31 08 2007-141
18 11 20 25 26 27 30 08 2007-142
19 01 06 22 23 24 26 04 2007-143
20 08 14 23 25 28 32 16 2007-145
21 08 09 11 12 25 31 11 2007-145
22 04 18 22 24 26 30 09 2007-146
23 03 07 18 24 26 27 04 2007-147
24 03 09 16 17 23 28 07 2007-148
25 01 17 19 22 28 30 03 2007-149
26 03 05 11 13 19 24 05 2007-150
27 01 06 10 11 23 25 02 2007-151
28 11 17 21 29 30 33 08 2007-152
29 01 04 19 20 25 31 15 2007-153
30 02 04 07 09 14 29 03 2008-1
31 03 04 18 22 25 29 09 2008-2
matlab预测双色球
最新推荐文章于 2023-09-08 00:56:40 发布