龙空技术网

基于MATLAB的灰色预测模型GM(2,1)的GUI计算界面

云龙派 592

前言:

此时小伙伴们对“c语言计算派”大概比较看重,小伙伴们都需要剖析一些“c语言计算派”的相关资讯。那么小编同时在网上收集了一些关于“c语言计算派””的相关内容,希望你们能喜欢,咱们一起来学习一下吧!

GM(2,1)灰色预测模型是一种比较常用的预测模型,于非单调的摆动发展序列或有饱和的S形序列,可以考虑建立GM(2,1)。

GM(2,1)的模型原理和检验指标与GM(1,1)类似,区别在于:GM(2,1)是通过建立二阶微分方程进行预测运算。模型的白化方程如下:

其中a1、a2,b是模型参数。

具体原理可以参考CSDN博主zstar-_的文章《数学建模学习笔记(二十二)灰色预测(下下)GM(2,1)》,链接如下:

同样地,基于MATLAB的GUI界面设计了一个操作简单计算预测功能界面如下:

点击导入数据按键——输入原始数据起始年份、原始数据最终年份、预测数据的最终年份、预测数据个数、x轴坐标名称、y轴坐标名称——点击开始计算即可出现结果,同时会在当前文件夹下生成预测数据的excel文件“预测的数据.xlsx”、预测.jpg、预测的绝对误差.jpg和预测的相对误差.jpg。需要基于MATLAB的灰色预测模型GM(2,1)的GUI计算界面完整GUI程序,可以进行赞赏后截图(20元及以上),进行联系,或者在微信公众号云龙派内回复截图,几小时内会回复。界面编程不易,还请见谅!

界面举例计算:

数据为内蒙古2015-2021年货品运输数量

预测了2022-2026年的五年数据:

1、点击加载数据,选择数据excel文件

2、输入参数

3、点击开始计算按键

4、结果

GUI主要程序如下

function pushbutton1_Callback(hObject, eventdata, handles)% hObject    handle to pushbutton1 (see GCBO)% eventdata  reserved - to be defined in a future version of MATLAB% handles    structure with handles and user data (see GUIDATA)global dataA = data(:,2);n0 = str2num(get(handles.edit6,'string'));n1 = str2num(get(handles.edit7,'string'));ne = str2num(get(handles.edit8,'string'));N  = str2num(get(handles.edit9,'string'));str1 = get(handles.edit10,'string');str2 = get(handles.edit11,'string');num = N; [y2,a1,a2,b,Q,C,P,n,strs]=GM21(A,num); y = y2;figure;plot(data(:,1),data(:,2),'ob');grid on;hold on;plot(n0:ne,y,'r-*');xlabel(str1);ylabel(str2);legend('原始数据','预测数据','location','northwest');saveas(gcf,'预测.jpg');%保存生成的图片close(gcf);axes(handles.axes1);plot(data(:,1),data(:,2),'ob');grid on;hold on;plot(n0:ne,y,'r-*');xlabel(str1);ylabel(str2);legend('原始数据','预测数据','location','northwest');error = y(1:(length(y)-N))-data(:,2); %绝对误差error1 = (error./data(:,2))*100;%相对误差(%)figure;plot(data(:,1),error,'r*-');legend('预测数据绝对误差');xlabel(str1);ylabel(str2);saveas(gcf,'预测数据绝对误差.jpg');close(gcf);axes(handles.axes2);plot(data(:,1),error,'r*-');legend('预测数据绝对误差');xlabel(str1);ylabel(str2);% saveas(handles.axes2,'预测数据绝对误差.jpg');figure;plot(data(:,1),abs(error1),'ro-');legend('预测数据相对误差/%');xlabel(str1);ylabel(str2);saveas(gcf,'预测数据相对误差.jpg');close(gcf);axes(handles.axes3);plot(data(:,1),abs(error1),'ro-');legend('预测数据相对误差/%');xlabel(str1);ylabel(str2);% saveas(handles.axes3,'预测数据相对误差.jpg');set(handles.uitable1,'data',y');xishu = [a1 a2 b];set(handles.edit2,'string',[strs 'a1,a2和b:' num2str(xishu)]);set(handles.edit3,'string',['相对残差Q检验:' num2str(Q)]);set(handles.edit4,'string',['方差比C检验:' num2str(C)]);set(handles.edit5,'string',['小误差概率P检验:' num2str(P)]);xlswrite('预测的数据.xlsx',y');

作 者 | 郭志龙

编 辑 | 郭志龙

校 对 | 郭志龙

本文内容来源于网络,仅供参考学习,如内容、图片有任何版权问题,请联系处理,24小时内删除。

标签: #c语言计算派