24小时热门版块排行榜    

查看: 1331  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

beina

新虫 (正式写手)

[求助] 关于matlab的一个基础问题

请懂matlab的高手指点,不胜感激!
我新建了一个M函数
function F=myfun(x,xdata)
F=0.6518 + .7713./atan(xdata) - .0911.*atan(xdata) + ((.9121.* xdata + 1.572)/(.9121.* xdata + 1.59 + 2.3026./ xdata + 0.0637*log(1 + 15.7./ xdata)) - 1)/((1 + 5.04*x.* xdata)*(1 + (x^0.674).* (xdata.^0.173)));
end
这个函数书写上哪里有错误,是不是在点乘点除上的错误?
我运行了下面的命令后,会有如下错误
>> load data.txt
>> xdata=data(:,1);
>> ydata=data(:,2);
>> x=lsqcurvefit(@myfun,0.05,xdata,ydata)
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> myfun at 4
F=0.6518 + .7713./atan(xdata) - .0911.*atan(xdata) + ((.9121.* xdata + 1.572)/(.9121.* xdata + 1.59 + 2.3026./ xdata + 0.0637*log(1 + 15.7./ xdata)) - 1)/((1 + 5.04*x.* xdata)*(1
+ (x^0.674).* (xdata
Error in ==> lsqncommon at 152
            fuser = funfcn{3}(xargin{:},varargin{:});

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

Caused by:
    Failure in initial user-supplied objective function evaluation. LSQCURVEFIT cannot continue.
难道lsqcurvefit的命令中书写也有错误?请大侠指点,感激涕零!
回复此楼
流泪撒种的,必欢呼收割
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

persistent06

金虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
就是上面的除法错了,应该用点除
4楼2011-12-24 17:43:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

renchong

银虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
想了一下 LZ的xdata和ydata在程序中没见到有具体的值啊,还有LZ的点乘有问题,请参考一下这个吧(我是在添加了xdata和ydata值后做的)能算出结果 F=0.6518 + 0.7713./atan(xdata) - 0.0911*atan(xdata) + ((0.9121* xdata + 1.572)./(0.9121* xdata + 1.59 + 2.3026./ xdata + 0.0637*log(1 + 15.7./ xdata)) - 1)./((1 + 5.04*x* xdata).*(1 + (x^0.674)* (xdata.^0.173)));

» 本帖已获得的红花(最新10朵)

3楼2011-12-24 17:10:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

beina

新虫 (正式写手)

送鲜花一朵
引用回帖:
: Originally posted by renchong at 2011-12-24 17:10:54:
想了一下 LZ的xdata和ydata在程序中没见到有具体的值啊,还有LZ的点乘有问题,请参考一下这个吧(我是在添加了xdata和ydata值后做的)能算出结果 F=0.6518 + 0.7713./atan(xdata) - 0.0911*atan(xdata) + ((0.912 ...

按照你的写法果然对了,但是又有错误了,呜呜
??? Error using ==> qr
Complex sparse QR is not yet available.

Error in ==> aprecon at 57
   RPCMTX = qr(TM(:,p));

Error in ==> trdog at 47
         [R,permR] = feval(pcmtx,H,pcoptions,DM,DG,varargin{:});

Error in ==> snls at 346
      [sx,snod,qp,posdef,pcgit,Z] = trdog(x,g,A,D,delta,dv,...

Error in ==> lsqncommon at 285
    [x,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msg]=...

Error in ==> lsqcurvefit at 186
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
xdata ydata有个txt文件的值,没有写上去
流泪撒种的,必欢呼收割
5楼2011-12-25 09:51:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见