matlab解递归的方程问题我有一个递归方程我还有一组关于cm的数据 从2002年到2010年: 0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001 我想解出这个递归方程的
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/05 11:24:08
matlab解递归的方程问题我有一个递归方程我还有一组关于cm的数据 从2002年到2010年: 0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001 我想解出这个递归方程的
matlab解递归的方程问题
我有一个递归方程
我还有一组关于cm的数据 从2002年到2010年:
0.0337
0.0846
0.1581
0.2338
0.3126
0.4176
0.5337
0.6454
0.8001
我想解出这个递归方程的系数,其中α是小于0的;β,γ是大于零的.
希望有关于这类问题的Matlab求解方法!
matlab解递归的方程问题我有一个递归方程我还有一组关于cm的数据 从2002年到2010年: 0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001 我想解出这个递归方程的
其实这个问题就是一个简单的多项式拟合问题,重要的是掌握如何将数据分解成自变量和因变量.
这里将前一年的数据作为自变量,当年的数据作为因变量即可拟合.参考代码如下:
clearclc
cm = [0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454];
cm_1 = [0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001];
fit1 = polyfit(cm,cm_1,2)
%拟合结果多项式降幂排列系数:0.0216 1.1290 0.0539
x = linspace(0,0.8,40);
y = polyval(fit1,x);
plot(cm,cm_1,'x',x,y)
legend('data','fit')
可以看出这里三次项系数已经很小了,完全可以用一次拟合.即y = a*x+b的形式.
下面是一次拟合的结果,基本差别不大
ps:1.你这里α前的负号可以去掉,系数用一个α表示即可.
2.系数大于零还是小于零是数据本身决定的,一般数据拟合都不会规定这个的.该是什么系数就是什么系数.
3.polyfit是按最小二乘法进行拟合的..