24小时热门版块排行榜    

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

yqfan

铁虫 (小有名气)

[求助] 如何用已知函数去拟合实验数据,得出参数

已知实验数据
t=[1 2.1 5.0 10 15 20 30 40 50 60 70 80 90 100];
y=[6.0 6.08 6.2 6.4 6.47 6.58 6.8 6.85 6.9 6.93 6.95 7.0 7.05 7.1];
如何用函数去最佳拟合实验数据并求出参数。本人刚学matlab,用了很长时间编程都错的。求给编程(最好有解释说明)和拟合曲线,谢谢
如何用已知函数去拟合实验数据,得出参数
1.jpg
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

yqfan

铁虫 (小有名气)

问题补充:
M-file文件:function f = Example11(c,tdata,ydata)
tdata =[1 2.1 5.0 10 15 20 30 40 50 60 70 80 90 100];
ydata =[6.0 6.08 6.2 6.4 6.47 6.58 6.8 6.85 6.9 6.93 6.95 7.0 7.05 7.1];
f=c(1)*tdata^c(4)*(cos(pi*c(4)/2)+c(2)*tdata^c(3)*cos(pi*(c(3)-c(4))/2))/(1+2*c(2)*tdata^c(3)*cos(pi*c(3)/2)+c(2)^2*tdata^(2*c(3)));

然后在命令窗口运行
c0=[1 1 1 1];
for i = 1: 50
c=lsqnonlin('Example',c0);c=c0;
end
c
错误提示:
Undefined function or variable 't'.
Error in Example (line 5)
f=c(1)*t^c(4)*(cos(pi*c(4)/2)+c(2)*t^c(3)*cos(pi*(c(3)-c(4))/2))/(1+2*c(2)*t^c(3)*cos(pi*c(3)/2)+c(2)^2*t^(2*c(3)));

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

Caused by:
    Failure in initial user-supplied objective function evaluation. LSQNONLIN cannot
    continue.
8楼2013-11-04 21:46:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

zixuan203344

新虫 (初入文坛)


jjdg: 金币+1, 感谢参与 2013-11-05 01:44:09
用拟合工具cftool吧,手头没装这软件,不能帮你算了
2楼2013-11-04 18:06:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqfan

铁虫 (小有名气)

引用回帖:
2楼: Originally posted by zixuan203344 at 2013-11-04 18:06:57
用拟合工具cftool吧,手头没装这软件,不能帮你算了

谢谢!我只有matlab,还是希望用matlab拟合出来,求助一次,弄懂了以后我就可以自己拟合了
3楼2013-11-04 20:43:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
cftool就是Matlab的工具箱啊。
4楼2013-11-04 21:27:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见