matlab的lsqcurvefit多元函数拟合问题

x1=[2007,2008,2009,2010,2011];x2=[3.96,3.67,3.31,3.06,3.06];x=[x1,x2];y=[295.98,300.1... x1=[2007,2008,2009,2010,2011];
x2=[3.96,3.67,3.31,3.06,3.06];
x=[x1,x2];
y=[295.98,300.18,304.44,308.77,313.15];
fun=inline('1/(a(1)+(a(2)*exp(-x(:,2).*(x(:,1)-2006))))','a','x');
a=lsqcurvefit(fun,[3.5 3.5],x,y);

为什么老是
run('D:\MATLAB7\work\ymlogistic.m')
??? Error using ==> run
Error using ==> optim\private\lsqncommon
Function value and YDATA sizes are incommensurate.

??? Error using ==> optim\private\lsqncommon
Function value and YDATA sizes are incommensurate.

Error in ==> lsqcurvefit at 149
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...

Error in ==> ymlogistic at 6
a=lsqcurvefit(fun,[3.5 3.5],x,y);
>>
展开
 我来答
wxhhq0226
2013-08-22 · TA获得超过1696个赞
知道小有建树答主
回答量:496
采纳率:66%
帮助的人:481万
展开全部

改成如下:

x1=[2007,2008,2009,2010,2011]';
x2=[3.96,3.67,3.31,3.06,3.06]';
x=[x1,x2];
y=[295.98,300.18,304.44,308.77,313.15]';
fun=inline('1./(a(1)+(a(2).*exp(-x(:,2).*(x(:,1)-2006))))','a','x');
a=lsqcurvefit(fun,[3.5 3.5],x,y)

结果:

a =

    0.0033    0.0064

ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式