作业帮 > 综合 > 作业

matlab中的nlinfit函数时,参数需要回归系数的初值,如何确定?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/06 12:54:12
matlab中的nlinfit函数时,参数需要回归系数的初值,如何确定?
function yy=model(beta0,X)
a=beta0(1);
b=beta0(2);
c=beta0(3);
d=beta0(4);
e=beta0(5);
x1=X(:,1);
x2=X(:,2);
x3=X(:,3);
x4=X(:,4);
x5=X(:,5);
yy=a*x1+b*x2+c*x3+d*x4+e*x5;
主程序如下:
X=[9133504 5044173 65941 151828 1677772;11665761.8 6060683.1 181992.7 172774.7 2158573.8;14878590 7243459 331363 278253 2840985;
17543468 8074148 603015 256375 3220992;21297613 9309882 1121982 215440 3785362;25502370.8 10463734 1801315.4 210796.3 4662641.1];
Y=[1926109;2824417.1;3906526;5057307;6476921;7919249.3]
beta0=[1.00 -0.20 -0.04 -0.15 -0.11];betafit=nlinfit(X,Y,'model',beta0)
matlab中的nlinfit函数时,参数需要回归系数的初值,如何确定?
一般去随机数,但很多都是局部收敛的,需要给出初值比较接近实际解.只能参考其他类似的
再问: 嗯,谢谢,你说的意思我大概懂了,但有的系数不好算啊,比如你看下我在补充里的程序,有5个系数,怎么算呢?是列5个方程解的吗?
再答: 不一定都得算,你的程序呢 或者函数表达式呢? 就是尽量采用最简单的方法求出大约值就可以, 比如看看极限了,最值了,等等
再问: 程序在问题补充里额,函数表达式就是程序里德那个 yy=a*x1+b*x2+c*x3+d*x4+e*x5;
再答: 是线性回归吧 推荐你用如下方法 >>cftool data fitting 拟合,不行的话,我明晚帮你弄吧,快断网了,呜呜