数学建模中常用的模型,及程序

上传人:橙** 文档编号:333352353 上传时间:2022-09-01 格式:PDF 页数:5 大小:38.63KB
返回 下载 相关 举报
数学建模中常用的模型,及程序_第1页
第1页 / 共5页
数学建模中常用的模型,及程序_第2页
第2页 / 共5页
数学建模中常用的模型,及程序_第3页
第3页 / 共5页
数学建模中常用的模型,及程序_第4页
第4页 / 共5页
数学建模中常用的模型,及程序_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《数学建模中常用的模型,及程序》由会员分享,可在线阅读,更多相关《数学建模中常用的模型,及程序(5页珍藏版)》请在金锄头文库上搜索。

1、数学建模中常用的模型及程序:1 灰色预测:程序一:先建立 M 文件:function GM1=fungry1(x0)T=input(T=);x1=zeros(1,length(x0);B=zeros(length(x0)-1,2);yn=zeros(length(x0)-1,1);Hatx0=zeros(1,length(x0)+T);Hatx00=zeros(1,length(x0);Hatx1=zeros(1,length(x0)+T);epsilon=zeros(length(x0),1);omega=zeros(length(x0),1);for i=1:length(x0)for j

2、=1:i x1(i)=x1(i)+x0(j);end end for i=1:length(x0)-1 B(i,1)=(-1/2)*(x1(i)+x1(i+1);B(i,2)=1;yn(i)=x0(i+1);end HatA=(inv(B*B)*B*yn for k=1:length(x0)+T Hatx1(k)=(x0(1)-HatA(2)/HatA(1)*exp(-HatA(1)*(k-1)+HatA(2)/HatA(1);end Hatx0(1)=Hatx1(1);for k=2:length(x0)+T Hatx0(k)=Hatx1(k)-Hatx1(k-1);end for i=1:

3、length(x0)epsilon(i)=x0(i)-Hatx0(i);omega(i)=(epsilon(i)/x0(i)*100;end%x0,Hatx1,Hatx0,epsilon,omega,c=std(epsilon)/std(x0);p=0;for i=1:length(x0)if abs(epsilon(i)-mean(epsilon)0.95&c0.85&c0.70&c0.65 disp(The model is not good and the forecast is:),disp(Hatx0(length(x0)+T)else p0.65 disp(The model is

4、 bad and try again)end for i=1:length(x0)Hatx00(i)=Hatx0(i);end z=1:length(x0);plot(z,x0,-,z,Hatx00,:)text(2,x0(2),History data:real line)text(length(x0)/2,Hatx00(length(x0)/2,Simulation data:broken line)end 在 matlab 命令窗口中输入:x0=。;%原始数据矩阵 fungry1(x0);Matlab 命令窗口中将提示:T=这时输入1 将表示所得结果为从原始数据最后一个算起的第一个预测值

5、,输入 2 表示。程序二:y=input(请输入数据 );n=length(y);yy=ones(n,1);yy(1)=y(1);名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 5 页 -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 i=1:(n-1)YN(i)=y(i+1);end YM=YN;A=inv(BT*B)*BT*YM;a=A(1);u=A(2);t=u/a;for i=1:n-1 yyy(i+1)=(

6、y(1)-t)*exp(-a*i)+t;end for i=1:n-1 y_y(i+1)=yyy(i+1)-yyy(i);名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 5 页 -end for i=1:n m(i)=abs(y_y(i)-y(i);end p=1:n;subplot(1,2,1),plot(p,y_y,p,y,r*),title(申请量 模拟曲 线)subplot(1,2,2),plot(m),title(误差曲线)t_n=input(请输入需要预测个数:);for i=0:t_n-1 q(i+1)=(y(1)-t)*exp(-a*i)+t;end ff(1)=

7、q(1);for i=1:t_n-1 ff(i+1)=q(i+1)-q(i);end disp(vpa(ff,6)神经模型:P=1601 5421 1890 4439 1703 3232 376 1167 1897 3737 1807 1628 1723 2584 1551 2479 1199 4148 2449 2026 1690 3374 2015 2480 850 2249 1674 3666 2029;T=5421 1890 4439 1703 3232 376 1167 1897 3737 1807 1628 1723 2584 1551 2479 1199 4148 2449 20

8、26 1690 3374 2015 2480 850 2249 1674 3666 2029 1238;%这样建立的是根据第一个月,预测第二个月的神经系统模型,P 中每一个对应于T 中每一个,而 T 中每一个是 P 中相对应的下一个月的数据名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 5 页 -net=newff(minmax(P),5 1,tansig purelin);Y=sim(net,P);plot(P,T,P,Y,o)net.trainParam.epochs=10000;net=train(net,P,T);Y=sim(net,P);plot(P,T,P,Y,o)x

9、0=1601 5421 1890 4439 1703 3232 376 1167 1897 3737 1807 1628 1723 2584 1551 2479 1199 4148 2449 2026 1690 3374 2015 2480 850 2249 1674 3666 2029 1238;Y=sim(net,x0)%记下最后一个数据,作为7 月 1 号的x1=1601 5421 1890 4439 1703 3232 376 1167 1897 3737 1807 1628 1723 2584 1551 2479 1199 4148 2449 2026 1690 3374 2015 2480 850 2249 1674 3666 2029 1238,x0 的最后一个数据;Y=sim(net,x1)依次做下去,做到第x7 名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 5 页 -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号