24小时热门版块排行榜    

查看: 5147  |  回复: 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的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

dingd

铁杆木虫 (职业作家)

可以试试1stOpt:
CODE:
Parameter [m,n]=[0,1];
Function y=a*t^n*(cos(pi*n/2)+b*t^m*cos(pi*(m-n)/2))/(1+2*b*t^m*cos(pi*m/2)+b^2*t^(2*m));
Data;
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];

均方差(RMSE):0.0329522283231971
残差平方和(SSE):0.0152018909204975
相关系数(R): 0.995826351407069
相关系数之平方(R^2): 0.991670122156715
确定系数(DC): 0.991669968535852
卡方系数(Chi-Square): 0.00112001672548189
F统计(F-Statistic): 400.158552543249

参数        最佳估算
----------        -------------
m        0.559176569921799
n        0.0104584004879844
a        5.88620912838722
b        -0.0275911544240939
如何用已知函数去拟合实验数据,得出参数-1
c12.jpg

10楼2013-11-04 22:23:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

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的回帖

yqfan

铁虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2013-11-04 21:27:56
cftool就是Matlab的工具箱啊。

不好意思,初学matlab才两天完全不清楚它的强大功能
5楼2013-11-04 21:33:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yqfan

铁虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2013-11-04 21:27:56
cftool就是Matlab的工具箱啊。

呵呵,刚学不懂
6楼2013-11-04 21:33:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖


感谢参与,应助指数 +1
jjdg: 金币+1, 感谢参与 2013-11-05 01:44:23
现在关于matlab数值计算的书多如牛毛,找本好的,看看里面讲曲线拟合的部分,照着弄弄不就会了嘛
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
7楼2013-11-04 21:35:47
已阅   回复此楼   关注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的回帖

yqfan

铁虫 (小有名气)

引用回帖:
7楼: Originally posted by baobiao007 at 2013-11-04 21:35:47
现在关于matlab数值计算的书多如牛毛,找本好的,看看里面讲曲线拟合的部分,照着弄弄不就会了嘛

弄了,出错了很多次,一再修改
9楼2013-11-04 21:48:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yqfan 的主题更新
信息提示
请填处理意见