matlab预测双色球

下面是源代码(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

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值