声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1870|回复: 2

[编程技巧] 帮忙看下非线性拟合程序的问题

[复制链接]
发表于 2007-5-27 17:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
主程序:
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=[0.50 -0.03 -0.60 0.01 -0.02 0.35 0.35];
[beta,r,J]=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
[beta,r,J]=nlinfit(X',y','volum',beta0); %非线性拟合函数的系数、残差
大家知道怎么解决么?
我是新手!希望高手能给予解答!

[ 本帖最后由 eight 于 2007-5-27 22:22 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-5-27 20:11 | 显示全部楼层
y只能是向量而不是矩阵,否则就成了一对多还怎么拟合。
另外你程序里还要注意矩阵乘和点乘的区别

评分

1

查看全部评分

 楼主| 发表于 2007-5-27 21:30 | 显示全部楼层
十分感谢!我明白了!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 09:22 , Processed in 0.056931 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表