24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3262  |  回复: 11

ju5200

木虫 (正式写手)

[求助] 现在由一组离散的数据 具有周期性,怎么通过这些数据预测下面的情况?已有2人参与

比如有4000个数据 每40个数据为一组 每一组数据代表一天的测量值
所有数据截止到十月一日
数据具有周期性 就是说每天测量值都是在增加的  第二天又从一个较低的数增加 以此类推
我想要通过这写数据 预测十月一日以后的情况
应该怎么操作?
需要先剔除一部分数据吗 ?
具体预测要用神经网络还是拟合比较好?
需要用到傅立叶变化吗?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

超人不怕

银虫 (小有名气)

【答案】应助回帖


感谢参与,应助指数 +1
xzhdty: 金币+1, 谢谢参与 2013-12-16 15:26:54
超级菜鸟求助,能不能帮我把这道题转化为lsqcurvefit来解?急!
function KineticsEst1_Diff  
clear all
clc

% 动力学数据
t = [0  20  40  60  120  180  300];
CAm = [10  8  6  5  3  2  1];

% 用最小二乘样条拟合法计算微分dCA/dt--使用不经过实验点的B样条插值函数
knots = 3;
K = 3;                  % 三次B样条
sp = spap2(knots,K,t,CAm);
pp = fnder(sp);         % 计算B样条函数的导函数
dCAdt = fnval(pp,t)    % 计算t处的导函数值
rAm = dCAdt;

% 绘制浓度拟合曲线
ti = linspace(t(1),t(end),200);
CAi = fnval(sp,ti);
plot(t,CAm,'ro',ti,CAi,'b-')
xlabel('t')
ylabel('C_A')
legend('实验值','B样条拟合')

% 非线性拟合
beta0 = [0.0053 1.39];
[beta,resnorm,residual,exitflag,output,lambda,jacobian] = ...
       lsqnonlin(@OptObjFunc,beta0,[],[],[],rAm,CAm);         
ci = nlparci(beta,residual,jacobian);

% 参数辨识结果
fprintf('Estimated Parameters:\n')
fprintf('\tk = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\tn = %.2f ± %.2f\n',beta(2),ci(2,2)-beta(2))
fprintf('  The sum of the squares is: %.1e\n\n',sum(residual.^2))

% 绘制反应速率拟合曲线
figure
plot(t,rAm,'ro',t,Rate(CAm,beta),'b*')
xlabel('t')
ylabel('dC_Adt')
legend('Experiment','Kinetic Model')

% ------------------------------------------------------------------
function f = OptObjFunc(beta,rAm,CAm)
rAc = Rate(CAm,beta);
f = rAc - rAm;

% ------------------------------------------------------------------
function rA = Rate(CA,beta)
rA = -beta(1)*CA.^beta(2);   % -rA = -dCA/dt = k*CA^n, 其中k=beta(1), n=beta(2)
大菜鸟
2楼2013-12-16 13:00:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
2楼: Originally posted by 超人不怕 at 2013-12-16 13:00:19
超级菜鸟求助,能不能帮我把这道题转化为lsqcurvefit来解?急!
function KineticsEst1_Diff  
clear all
clc

% 动力学数据
t = ;
CAm = ;

% 用最小二乘样条拟合法计算微分dCA/dt--使用不经过实验 ...

文不对题?
3楼2013-12-17 09:24:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

超人不怕

银虫 (小有名气)

引用回帖:
3楼: Originally posted by ju5200 at 2013-12-17 09:24:00
文不对题?...

下面不是用的lsqnonlin?咋改成lsqcurvefit。。。
大菜鸟
4楼2013-12-17 12:26:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
4楼: Originally posted by 超人不怕 at 2013-12-17 12:26:51
下面不是用的lsqnonlin?咋改成lsqcurvefit。。。...

你的程序我都没看懂
5楼2013-12-17 19:43:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

超人不怕

银虫 (小有名气)

引用回帖:
5楼: Originally posted by ju5200 at 2013-12-17 19:43:52
你的程序我都没看懂...


我也不懂。。。 要求是把非线性拟合那里改成lsqcurvefit的程序,大神求给力啊!
大菜鸟
6楼2013-12-17 21:28:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
6楼: Originally posted by 超人不怕 at 2013-12-17 21:28:39

我也不懂。。。 要求是把非线性拟合那里改成lsqcurvefit的程序,大神求给力啊!...

哦那里是什么大神哦?!
7楼2013-12-18 12:02:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ju5200

木虫 (正式写手)

引用回帖:
6楼: Originally posted by 超人不怕 at 2013-12-17 21:28:39

我也不懂。。。 要求是把非线性拟合那里改成lsqcurvefit的程序,大神求给力啊!...

lsqcurvefit函数和lsqnonlin函数采用相同的算法,只是lsqcurvefit函数可以直接做数据拟合,而用lsqnonlin函数做数据拟合的话还需要自己构造目标函数
因为之前没用过lsqcurvefit函数  而且对你的程序里面涉及的算法不太明白 所以没法帮你哦
8楼2013-12-18 12:17:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

超人不怕

银虫 (小有名气)

引用回帖:
8楼: Originally posted by ju5200 at 2013-12-18 12:17:42
lsqcurvefit函数和lsqnonlin函数采用相同的算法,只是lsqcurvefit函数可以直接做数据拟合,而用lsqnonlin函数做数据拟合的话还需要自己构造目标函数
因为之前没用过lsqcurvefit函数  而且对你的程序里面涉及的算法 ...

没事。。。 麻烦你了!
大菜鸟
9楼2013-12-18 13:57:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

363418323

铁虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ju5200: 金币+2, 有帮助 2013-12-22 09:34:01
听复杂,祝楼主早日解决。
用40个数据对应位子的数据预测最后一天对应位子的数据,相当于100个数据预测1个
还是,用前面n多天的,直接预测最后一天?
如果很有规律应该可以看出来吧。
如果没有规律,呵呵,好想比较麻烦。
用时间序列模型啊,线性预测啊,拟合啊,等等,甚至可以插值啊。主要看数据
thepursuitofhappiness
10楼2013-12-18 16:59:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ju5200 的主题更新
信息提示
请填处理意见