声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2167|回复: 6

[编程技巧] 求助:关于lsqcurvefit函数的问题

[复制链接]
发表于 2007-3-12 15:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function F=myfun(x,xdata)
F=[xdata(:,4)*0.5+(0.005*0.12*x^0.63*550/xdata(:,1))]/[xdata(:,2)+x*xdata(:,3)+0.352*exp(0.0013*(440-xdata(:,1)))+3.665*exp(0.01*(440-xdata(:,1)))+xdata(:,4)*0.5+(0.005*0.12*x^0.63*550/xdata(:,1))];

通过以下的调用
>> ydata = [0.037471 0.034791 0.032611 0.031011 0.029912 0.029635 0.030214 0.030515 0.030613 0.029495 0.026599];
>>xdata = [600 0.245 0.052466152 0.0014;605 0.268 0.076288668 0.0013;610 0.290 0.108099298 0.0013;615 0.300 0.125276835 0.0012;620 0.31 0.107250119 0.0012;625 0.315 0.67450492 0.0011;630 0.32 0.36982112 0.0011;635 0.325 0.020722678 0.0010;640 033 0.13441035 0.0010;645 0.34 0.009481882 0.001;650 0.35 0.007643467 0.0010];
>>x0=40;
>> [x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata);
出现问题
Error using ==> c:/matlab6p5p1/toolbox/optim/private/lsqncommon
User supplied function failed with the following error:

Error using ==> +
Matrix dimensions must agree.

Error in ==> C:\MATLAB6p5p1\toolbox\optim\lsqcurvefit.m
On line 129  ==> [x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
请高手指教
回复
分享到:

使用道具 举报

发表于 2007-3-12 15:25 | 显示全部楼层
原帖由 shuchi2001 于 2007-3-12 15:23 发表
function F=myfun(x,xdata)
F=/;

通过以下的调用
>> ydata = ;
>>xdata = ;
>>x0=40;
>>  = lsqcurvefit(@myfun,x0,xdata,ydata);
出现问题
Error using ==> c:/matlab6 ...



请查看*和.*、^和.^之间的区别
 楼主| 发表于 2007-3-12 15:53 | 显示全部楼层
感谢提醒,经过修改,无法得出结果:
Optimization terminated successfully:
First-order optimality less than OPTIONS.TolFun, and no negative/zero curvature detected
请问440-xdata(:,1)这种写法有没有问题?我想用440分别减去数组的第一列的值
发表于 2007-3-12 15:57 | 显示全部楼层
原帖由 shuchi2001 于 2007-3-12 15:53 发表
感谢提醒,经过修改,无法得出结果:
Optimization terminated successfully:
First-order optimality less than OPTIONS.TolFun, and no negative/zero curvature detected
请问440-xdata(:,1)这种写法有没有 ...


可以,没有问题
 楼主| 发表于 2007-3-12 16:01 | 显示全部楼层
那为什么会无法得出结果呢?是因为函数过于复杂吗?
发表于 2007-3-12 16:04 | 显示全部楼层
原帖由 shuchi2001 于 2007-3-12 16:01 发表
那为什么会无法得出结果呢?是因为函数过于复杂吗?



拟合这东西我不懂,你搜索一下版面吧。

ps:按照你的结果,不是成功吗?Optimization terminated successfully
 楼主| 发表于 2007-3-12 16:50 | 显示全部楼层
啊,看错了,的确有结果,谢谢了:@)
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 17:21 , Processed in 0.063698 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表