24小时热门版块排行榜    

查看: 1034  |  回复: 7

wgy318

金虫 (小有名气)

[交流] 【求助】数据拟合

我想拟合一个两个自变量的模型的六个参数,编辑了如下的程序,可是系统总是报错,请大家看看程序编写的是否正确,谢谢!
我是新手,请大家多给点意见。


M文件如下:
CODE:
function F=myfun(a,data)
x(1)=data(1,:);
x(2)=data(2,:);
F=a(3)*exp((-a(5))*(x(2)-a(4))/(a(6)+(x(2)-a(4))))/(1+(a(3)*exp((-a(5))*(x(2)-a(4))/(a(6)+(x(2)-a(4))))*x(1)/a(1))^(1-a(2)))
命令窗口程序如下:
>>  x1=[40 60 80 100 150 200 300 400 500 600 800 1000 1200 40 60 80 100 150 200 300 400 500 600 800 1000 1200 40 60 80 100 150 200 300 400 500 600 800 1000 1200 40 60 80 100 150 200 300 400 500 600 800 1000 1200 40 60 80 100 150 200 300 400 500 600 800 1000 1200];
x2=[423.15,423.15,423.15,425.15,425.15,425.15,425.15,425.15,425.15,425.15,425.15,425.15,425.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,431.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,437.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,443.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15,449.15];
ydata=[500 367.4 316.4 351 272 249 207 180 128 121 86.2 80.8 69.1 172.9 142.4 122.1 114 95 84 69.2 60 53 48 41.2 36.2 31.6 152.9 122.4 107.1 98 84 71 58.2 51 45.6 41.8 36.4 32.7 30.0 132.5 115.4 101.9 90 76 69 57.1 51 44.9 40.8 35.2 31.0 28.2 112.1 101.9 86.7 82 68 61 50.3 45 41 38 32.6 29 26.2];
data=[x1;x2];
a0=[5000 0.3 3.5*10e13 300 20 1.5];
[a,resnorm]=lsqcurvefit(@myfun,a0,data,ydata)

[ Last edited by nono2009 on 2010-9-14 at 06:02 ]
回复此楼

» 猜你喜欢

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

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

lidaxue

木虫 (正式写手)

之乎者也

wgy318(金币+3):问题已经解决了,不过还是要谢谢你 2010-09-09 08:53:57
请楼主给出报错信息!
Comeon!
2楼2010-09-08 10:27:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

孤鸿飘逸

金虫 (正式写手)


nono2009:编辑内容 2010-09-13 06:18
nono2009(金币+1):用[code][/code]贴程序的效果比较好。 2010-09-13 06:19:15
wgy318(金币+6):问题已经解决,非常感谢 2010-09-13 08:43:58
函数写为:(注意是点乘,点除)
CODE:
function F=myfun(a,data)
xx=data(1,:);
xxx=data(2,:);
F=a(3).*exp((-a(5))*(xxx-a(4))./(a(6)+(xxx-a(4))))./(1+(a(3).*exp((-a(5)).*(xxx-a(4))./(a(6)+(xxx-a(4)))).*xx/a(1)).^(1-a(2)))

输入参数值运行结果为:

Maximum number of function evaluations exceeded;
   increase options.MaxFunEvals

a =
  1.0e+014 *

    0.0000    0.0000    3.5000    0.0000    0.0000    0.0000


resnorm =

  3.9906e+004
我这台机子是实验室的matlab6.1,估计版本太差,你用高版本的运行看看

[ Last edited by nono2009 on 2010-9-13 at 06:18 ]
3楼2010-09-12 18:11:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

★ ★
robert2020(金币+2):辛苦了!鼓励继续应助! 2010-09-13 18:49:53
wgy318(金币+2): 2010-09-13 21:07:35
这个函数F拟合的效果不太理想啊  resnorm = 3.9906e+004
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
4楼2010-09-13 09:18:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wgy318

金虫 (小有名气)

resnorm要多少才算理想
5楼2010-09-13 21:09:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

wgy318(金币+2): 2010-09-14 09:06:49
引用回帖:
Originally posted by wgy318 at 2010-09-13 21:09:18:
resnorm要多少才算理想

resnorm越小是表示拟合精度越高。你试试用别的优化函数进行拟合,或者就是你的模型没建立好,残差太大啊
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
6楼2010-09-13 23:10:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wgy318

金虫 (小有名气)

能不能给你一个例子或者一个大体的程序框架啊?matlab里面应该有优化函数的程序可以调用吧。我现在函数已经有了,只是想优化下拟合的程度。但是我matlab又不怎么懂,不知道该怎么进一步优化。请多多指点
7楼2010-09-14 09:09:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lijinfeng042

木虫 (小有名气)

Matlab

wgy318(金币+1): 2010-09-15 15:52:47
引用回帖:
Originally posted by wgy318 at 2010-09-14 09:09:29:
能不能给你一个例子或者一个大体的程序框架啊?matlab里面应该有优化函数的程序可以调用吧。我现在函数已经有了,只是想优化下拟合的程度。但是我matlab又不怎么懂,不知道该怎么进一步优化。请多多指点

就是这个函数?
F=a(3).*exp((-a(5))*(xxx-a(4))./(a(6)+(xxx-a(4))))./(1+(a(3).*exp((-a(5)).*(xxx-a(4))./(a(6)+(xxx-a(4)))).*xx/a(1)).^(1-a(2)))
工作了,偶尔会上来~可以关注新浪微博 @云是风的梦_Matlab
8楼2010-09-14 19:07:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wgy318 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-30 16:34 by xiangy672
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 8/400 2026-08-30 12:14 by l0VvVHGBGRLv
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 gy1nBQXYQJqL 2026-08-29 8/400 2026-08-30 12:02 by l0VvVHGBGRLv
[找工作] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 ASdOkHsho7FD 2026-08-28 9/450 2026-08-30 11:41 by l0VvVHGBGRLv
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 8/400 2026-08-30 11:32 by l0VvVHGBGRLv
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +5 ASdOkHsho7FD 2026-08-28 6/300 2026-08-30 11:18 by l0VvVHGBGRLv
[考博] 售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急 +3 ASdOkHsho7FD 2026-08-28 6/300 2026-08-30 11:10 by l0VvVHGBGRLv
[基金申请] 29号明天会评吗 +3 笨笨唐 2026-08-28 3/150 2026-08-30 09:29 by cww8181
[硕博家园] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 G6APbkg8SA6w 2026-08-29 4/200 2026-08-30 07:17 by ZPa0EcMwuECS
[硕博家园] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 gy1nBQXYQJqL 2026-08-29 5/250 2026-08-30 06:55 by ZPa0EcMwuECS
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 13/650 2026-08-30 05:38 by ZPa0EcMwuECS
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 02:09 by ZPa0EcMwuECS
[基金申请] 中青基了要发朋友圈吗? +4 349506619 2026-08-28 4/200 2026-08-29 22:41 by alongwaytogo
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
信息提示
请填处理意见