如何用matlab非线性回归分析

2024-12-26 09:25:31
推荐回答(1个)
回答1:

%把y=x^a两边取对数,就有log(y)=a*log(x),如果将log(y)看成是log(x)的函数,那么它们是线性的.这时是方程的个数是10000个,而未知数是1个(a),这可以用matlab的矩阵除法求解矛盾方程(用的是最小二乘法)
%下面是一个例子,我以a=1.45产生一套10000个的(x,y)序列,当然我加上了一些随机扰动.(你可以试一下,不加的话,肯定得到的是1.45)
>> a=1.45;
>> x=linspace(1,10,10000)'; %注意这里你要转成列向量求解
>> y=x.^a+0.5*rand(10000,1);
>> aa=log(x)\log(y)