24小时热门版块排行榜    

查看: 1020  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然评审意见 +10 wangmingqi 2026-08-28 12/600 2026-08-28 22:06 by water_still
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +13 晴天加油 2026-08-26 14/700 2026-08-28 18:36 by huagongfeihu
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-28 17:09 by winsaint
[基金申请] 有没有仍没收到信息的 +3 德尚中行 2026-08-27 3/150 2026-08-28 15:24 by rongshuxia
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 2026年叶企孙基金 +3 bud_bud 2026-08-27 6/300 2026-08-28 11:53 by bud_bud
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +5 yuleib84 2026-08-26 6/300 2026-08-28 00:02 by yudaoqian88
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 2026年的国家社科基金项目通讯评审的新规则与新动向、新挑战 +7 process2012 2026-08-23 10/500 2026-08-26 19:23 by hmhminy
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 能否退出参与的面上项目解除限项 +23 koalala 2026-08-24 26/1300 2026-08-26 14:29 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
信息提示
请填处理意见