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 子函数与局部函数的调用。