24小时热门版块排行榜    

查看: 653  |  回复: 0

justrookie

新虫 (初入文坛)

[求助] matlab 先求定积分,再求参数,出现错误

我想求定积分,然后在根据定积分的值求参数,具体过程:

首先,定义一个function求定积分:

function dT = km(x,sT)
      fun=@(temp)((-x(1)*x(2)*(temp).^(x(2)-1.0))./ ...  
                ((x(3)^x(2))*((1+(temp./x(3)).^x(2)).^2)));
      dT=quadl(fun,0,sT);
%x为输入的数组,包括三个参数,sT为数组,为积分的上限值;
%dT为返回的积分值;

然后再调用function求参数:
x0=[0.0, 0.0, 0.0]; %初值
x1=[300.0 -10.0 0.0]; %下边界
x2=[500.0 0.0 1000.0]; %上边界

[x,resnorm]=lsqcurvefit(@km,x0,stimeT,dmT,x1,x2);
%x0, x1, x2分别为初值,下边界和上边界;
%stimeT和dmT分别为自变量x和因变量y,都是数组;

但是出现了这样的错误:
Error using  -
Matrix dimensions must agree.
Error in quadl (line 66)
x = [a c-h*s c c+h*fliplr(s) b];
Error in km (line 6)
dT=quadl(fun,0,sT);
Error in lsqcurvefit (line 195)
            initVals.F = feval(funfcn_x_xdata{3},xCurrent,XDATA,varargin{:});
Error in individual_kernel (line 57)
[x,resnorm]=lsqcurvefit(@km,x0,stimeT,dmT,x1,x2);
Caused by:
    Failure in initial user-supplied objective function evaluation. LSQCURVEFIT
    cannot continue.

请问,如何修改程序,谢谢!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 justrookie 的主题更新
信息提示
请填处理意见