balletboy 发表于 2007-5-27 17:34

帮忙看下非线性拟合程序的问题

主程序:
X=[598.00,349.00,461.00,57482.00,20729.00,44.00,44.00;
2927.00,6862.00,1273.00,100072.0,43280.00,496.00,496.00];
y=[184.00,216.00,248.00,254.00,268.00,286.00,357.00;
444.00,506.00,506.00, 271.00,230.00,266.00,323.00;
393.00,466.00,352.00,303.00,447.00,447.00,564.00;
638.00,658.00,691.00,655.00,692.00,657.00,723.00;
922.00,922.00,890.00,826.00,810.0,810.0,810.0]';
beta0=;
=nlinfit(X',y','volum',beta0); %非线性拟合函数的系数、残差
nlintool(X',y','volum',beta0) %拟合曲线图
beta
子程序:
function yy=volum(beta0,X)
a=beta0(1);
b=beta0(2);
c=beta0(3);         
d=beta0(4);         
e=beta0(5);         
f=beta0(6);
g=beta0(7);
x1=X(:,1);         
x2=X(:,2);         
yy=a+b*x1+c*x1^2+d*x1*x2+e*x2+f*x2^2+g*x2^3

运行后说:
??? Error using ==> nlinfit
Requires a vector second input argument.
Error in ==> nlintool at 12
=nlinfit(X',y','volum',beta0); %非线性拟合函数的系数、残差
大家知道怎么解决么?
我是新手!希望高手能给予解答!

[ 本帖最后由 eight 于 2007-5-27 22:22 编辑 ]

yangzj 发表于 2007-5-27 20:11

y只能是向量而不是矩阵,否则就成了一对多还怎么拟合。
另外你程序里还要注意矩阵乘和点乘的区别

balletboy 发表于 2007-5-27 21:30

十分感谢!我明白了!
页: [1]
查看完整版本: 帮忙看下非线性拟合程序的问题