加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

matlab中nlinfit和lsqcurvefit的功能和用法有什么区别?(转)

(2010-09-12 01:39:00)
标签:

杂谈

分类: English

如果你懂英语,就用matlab最强大的函数help(一般人我不告诉他)
help nlinfit
help lsqcurvefit
如果不懂英语,继续看
进行非线性回归时可使用nlinfit指令,其语法如下:
beta = nlinfit(X,y,fun,beta0)
[beta,r,J] = nlinfit(X,y,fun,beta0)
[...] = nlinfit(X, y, fun, beta0, options)
[x,resnorm]= lsqcurvefit(fun,x0,xdata,ydata);
参数解释:
input:fun——编程者需要拟合的函数
x0——函数系数的初始猜测值
xdata——x坐标的值
ydata——y左边的值
output:x——经拟合的系数
resnorm——the value of the squared 2-norm of the residual at x: sum((fun(x,xdata)-ydata).^2).
example:
function fitfunc
xdata=[3.5 7.7 9.3 4.5 8.6 2.8 1.3 7.9 10.1 5.4];    %定义自变量
ydata=[16.5 149.6 263.1 24.6 208.5 9.9 2.7 162.9 322.0 52.3];    %定义因变量
x0=[7,7,7];      %初始估计值
[x,renorm]=lsqcurvefit(@myfun,x0,xdata,ydata);   %确定待定系数
disp(x);
disp(renorm);
function F=myfun(x,xdata)
F=x(1)*(xdata.^2)+x(2)*sin(xdata)+x(3)*(xdata.^3);      %预定义函数关系式

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有