matlab解递归的方程问题

我有一个递归方程我还有一组关于cm的数据从2002年到2010年:0.03370.08460.15810.23380.31260.41760.53370.64540.80... 我有一个递归方程

我还有一组关于cm的数据 从2002年到2010年:
0.0337 0.0846 0.1581 0.2338 0.3126 0.4176 0.5337 0.6454 0.8001
我想解出这个递归方程的系数,其中α是小于0的;β,γ是大于零的。

希望有关于这类问题的Matlab求解方法!
展开
 我来答
吓栋栋
2014-04-28 · TA获得超过2831个赞
知道小有建树答主
回答量:386
采纳率:100%
帮助的人:186万
展开全部

其实这个问题就是一个简单的多项式拟合问题,重要的是掌握如何将数据分解成自变量和因变量。

这里将前一年的数据作为自变量,当年的数据作为因变量即可拟合。参考代码如下:

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是按最小二乘法进行拟合的.。

TableDI
2024-07-18 广告
仅需3步!不写公式自动完成Excel vlookup表格匹配!Excel在线免,vlookup工具,点击16步自动完成表格匹配,无需手写公式,免费使用!... 点击进入详情页
本回答由TableDI提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式