当前位置:编程学习 > Matlab >>

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)
追问:
        	
				
嗯,谢谢,你说的意思我大概懂了,但有的系数不好算啊,比如你看下我在补充里的程序,有5个系数,怎么算呢?是列5个方程解的吗?
不一定都得算,你的程序呢
或者函数表达式呢?
就是尽量采用最简单的方法求出大约值就可以,
比如看看极限了,最值了,等等
程序在问题补充里额,函数表达式就是程序里德那个
yy=a*x1+b*x2+c*x3+d*x4+e*x5;
是线性回归吧
推荐你用如下方法
>>cftool
data  fitting
拟合,不行的话,我明晚帮你弄吧,快断网了,呜呜
什么意思?
答案:这个很好办
你先根据散点图等其他方式确定模型的表达式
然后利用已知的数据中的某几个点求解
模型中参数的大约值,然后就可以了。
比如:
模型为y=a*exp(b/(c+x));
先利用最值确定a
再利用任意两组数据求出其他的参数
以他为处置即可,
一般别用随机数,有时可能与实际有较大出入

上一个:我是新手,请问怎样在MATLAB中写入一函数再运行啊?
下一个:matlab 子函数与局部函数的调用。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,