24小时热门版块排行榜    

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

vs570588

木虫 (正式写手)

[求助] 帮帮忙看看我的难题

[求助] 求高手,拟合求参数

function M=Monod(c,Y)
M= -c(1).*Y./(Y+c(2))


Y=[255.55 246.44 237.28 228.36 136.08 114 99.16 82.33 69.4 56.94 42.31 0];
x=[-0.78 -2.2268 -5.2033 -6.1377 -8.6137 -8.6428 -8.4792 -8.1692 -7.7128 -7.11 -6.3608 -1.9];
x=x/214.63;
c0=[0.03 0.3];beta=nlinfit(Y,x ,’Monod’,c0);
为了参数c(1),c(2),这个小程序快把我折磨死了。现在出来NLINFIT did NOT converge. Returning results from last iteration.
beta =

    0.0271
   -8.1892
按道理,-8.1892不合理。出来的参数应该和我预估的差不多。大家看看,这是怎样回事?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vs570588

木虫 (正式写手)


dubo(金币+1): 谢谢参与 2011-06-13 19:30:59
引用回帖:
Originally posted by dubo at 2011-05-30 19:43:12:
数据2:
t=[0 2 7 9 19 22 24 26 28 30 32 40];%时间采样点
s=[255.55 246.44 237.28 228.36 136.08 114 99.16 82.33 69.4 56.94 42.31 0];%每时刻浓度观测值
x=[255.55 246.44 237.28 228.36 136.08 114 99.1 ...

真的很感谢你了,另外我就把我要拟合求参的问题给你说说。
ds/dt  =  -q*S*X/(k+S)这里未知参数是q和K, q是比最大降解速率,K是半饱和常数,X是污泥浓度214.63,这个值是定值。S是污染物的浓度, t肯定就是时间了。我具体试验是隔一段时间,取一个样品测出S,所以我最原始数据是
t=[0 2 7 9 19 22 24 26 28 30 32 40];
S=[255.55 246.44 237.28 228.36 136.08 114 99.16 82.33 69.4 56.94 42.31 0];
就那这一组数据来拟合出上面微分方程里中的未知参数。你看能用啥好办法?另外,我也看宋新山《matlab在环境科学中的应用》,上面也用个例子,但是有个例子直接给出了一系列ds/dt的值,并且这些值呈递增。但你也知道,实际试验不会出现这种理想情况。所以我求ds/dt值是用多项式拟合,求各个点的导数,肯定这样误差大。但我实在想不出好办法。也有人说用有限差分法,求出数值解,再代入,求最优化参数。这样子怎样用matlab实现,或者用其它软件也可以。还有你感觉把那些数据删除,就能很好拟合求参。
11楼2011-05-31 16:46:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

文俊点点

木虫 (著名写手)


dubo(金币+1): 谢谢参与 2011-05-30 19:02:30
表示看不懂,短程序应该逻辑没有问题,是细节出现错误。
这是你所拥有的时间·····这是你所能改变的生活·········
2楼2011-05-28 17:52:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

木虫pursuer

木虫 (正式写手)


dubo(金币+1): 谢谢参与 2011-05-30 19:03:40
只略懂些c++,顶起来,让高手进
努力提高自己,努力再努力
3楼2011-05-28 18:19:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

vs570588

木虫 (正式写手)

高手在哪里,大家看是数据本身的问题吗?
4楼2011-05-28 19:32:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见