作业帮 > 数学 > 作业

matlab解递归的方程问题

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:数学作业 时间:2024/04/30 12:08:30
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解递归的方程问题
其实这个问题就是一个简单的多项式拟合问题,重要的是掌握如何将数据分解成自变量和因变量.这里将前一年的数据作为自变量,当年的数据作为因变量即可拟合.参考代码如下:clear
clc
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是按最小二乘法进行拟合的..