24小时热门版块排行榜    

查看: 409  |  回复: 2

King_A

金虫 (小有名气)

[求助] 自定义公式的非线性拟合求参数,程序报错 已有1人参与

代码如下:
function diff = myfun_1( U,X,Y )
D=U(1);
Q=U(2);
diff=1-exp((-4.49e14*(6D).^1.5)*(exp(-Q./(8.314*X))*((8.314*X.^2)./Q)*(1-exp(Q.*(996.56-X))./(8.314*X.^2)))^1.5)
end

clear all
>>X=xlsread('D:\Documents\Desktop\数据.xls','A1:A83');
>> Y=xlsread('D:\Documents\Desktop\数据.xls','B1:B83');
>> options=optimset('Largescale','off');
>> U0=[1,1,1];
>> U=lsqnonlin(@myfun_1,U0,[],[],options,X,Y);
结果报错如下:
Error using feval
Error: File: myfun_1.m Line: 5 Column: 23
Unexpected MATLAB operator.

Error in lsqnonlin (line 194)
            initVals.F = feval(funfcn{3},xCurrent,varargin{:});

Caused by:
    Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot
    continue.
请问问题出在哪?应该怎么改正呢?
数据数据已经在文件中给出。希望帮忙指正,谢谢!
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 参数.doc
  • 2016-09-15 15:52:17, 21.5 K
  • 附件 2 : 数据.xls
  • 2016-09-15 15:52:27, 28 K

» 猜你喜欢

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

Mr__Right

专家顾问 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
首先,
diff 是matlab内置函数,不要用来做变量名;

其次,每一行后面都要加 半角 分号;

提示的信息很清楚,end之前的语句漏掉了分号。
文章乃身外之物,要多考虑编辑、审稿人和读者的感受。
2楼2016-09-15 16:01:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
本帖仅楼主可见
3楼2016-09-15 16:10:52
已阅   申请程序强帖   回复此楼   编辑   查看我的主页
相关版块跳转 我要订阅楼主 King_A 的主题更新
信息提示
请填处理意见