| 查看: 1623 | 回复: 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不合理。出来的参数应该和我预估的差不多。大家看看,这是怎样回事? |
» 猜你喜欢
北京211副教授,35岁,想重新出发,去国外做博后,怎么样?
已经有7人回复
Cas 72-43-5需要30g,定制合成,能接单的留言
已经有7人回复
磺酰氟产物,毕不了业了!
已经有5人回复
论文终于录用啦!满足毕业条件了
已经有25人回复
2026年机械制造与材料应用国际会议 (ICMMMA 2026)
已经有3人回复
自荐读博
已经有3人回复
求助:我三月中下旬出站,青基依托单位怎么办?
已经有5人回复
不自信的我
已经有5人回复
投稿Elsevier的杂志(返修),总是在选择OA和subscription界面被踢皮球
已经有8人回复
» 本主题相关价值贴推荐,对您同样有帮助:
关于报到证改派的问题,请过来人帮帮忙
已经有4人回复
几个物理化学问题 请大家帮帮忙
已经有26人回复
请问VSM磁滞回线的超顺磁性问题?高手帮帮忙解答····
已经有15人回复
关于配合物固体荧光问题,大家帮帮忙啊
已经有9人回复
磁控溅射出问题了大虾们帮帮忙
已经有6人回复
【讨论】无溶剂加热遇到了难题,大家帮帮忙
已经有10人回复
【求助/交流】qPCR问题求助,请大家帮帮忙,谢谢
已经有5人回复
【求助】关于出国读博的弱弱问题,请帮帮忙
已经有6人回复
【求助】保研联系导师的问题,各位帮帮忙吧……
已经有24人回复
【求助】聚碳酸酯二醇PCDL合成的问题!!!!大家帮帮忙啊
已经有5人回复
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
4楼2011-05-28 19:32:02
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
6楼2011-05-30 16:36:11
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
★
dubo(金币+1): 谢谢参与 2011-06-13 19:30:40
dubo(金币+1): 谢谢参与 2011-06-13 19:30:40
|
%非线性拟合浓度变化过程 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.16 82.33 69.4 56.94 42.31];%找出浓度的初始值,方程右边的值就用它 i=1 length(t)-1);t1=t(i+1)-t(i);%求t间隔 s1=s(i+1)-s(i);%求s间隔 y=s1./t1; w=213.63;%污泥浓度 y=y./213.63; %-------------------------------------------------------------------------- Monod=inline('-beta(1).*x./(x+beta(2))','beta','x'); c0=[0.03 0.3]; beta=nlinfit(x,y,Monod,c0); m=beta(1); n=beta(2); xx=min(x):max(x); yy=-m.*xx./(xx+n); plot(x,y,'o',xx,yy,'r') 这个是别人帮我写的,对着吧。但还是出现NLINFIT did NOT converge. Returning results from last iteration。有些人说是我拟合用的数学表达式,不应该用双曲线,但是我的模型确实是这样表达式。难道是我原始数据不好。 |
9楼2011-05-30 19:13:36
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
★
dubo(金币+1): 谢谢参与 2011-06-13 19:30:59
dubo(金币+1): 谢谢参与 2011-06-13 19:30:59
|
真的很感谢你了,另外我就把我要拟合求参的问题给你说说。 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
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
★
dubo(金币+1): 谢谢参与 2011-06-13 19:31:05
dubo(金币+1): 谢谢参与 2011-06-13 19:31:05
|
你好,我用重新参考别人写的程序,用数值解求参数,程序写的很繁琐,你能帮我改改吗?另外,现在运行不下去,提示说divided by zero.你能给看看,怎样把数据处理就能好些? S=dsolve(‘Dy=-k1*y*214.63/(y+k2)’,’y(0)= 255.55’) simplify(S) %微分方程积分,求出来式子相当繁琐 function monodfit2 clear all; t= [0 2 7 9 19 22 24 26 28 30 32 40]’; c=[255.55 246.44 237.28 228.36 136.08 114 99.16 82.33 69.4 56.94 42.31 0]’; [y_row,y_col]=size(c); beta0=[0.03,0.3]; c0=255.55; lb=[0 0];ub=[inf inf]; [beta,resnorm,residual,exitflag,output,lambda,jacobian] = ... lsqnonlin(@seqfun,beta0,lb,ub,[],t,c,y_col,c0); ci = nlparci(beta,residual,jacobian); function y = seqfun(beta,t,c,y_col,c0) % Objective function tspan = [0 max(t)]; [tt yy] = ode45(@modeleqs,tspan,c0,[],beta); for col = 1:y_col yc(:,col) = spline(tt,yy(:,col),t); end y=[c(:,1)-yc(:,1)]; function dydt = modeleqs(t,y,beta) % Model equation dydt=beta(2)*lambertw(1/beta(2)*exp(-1/100*(21463*t*beta(1)-25555-100*beta(2)*log(19)-100* beta(2)*log(269)+200* beta(2)*log(2)+100* beta(2)*log(5))/ beta(2))); |
12楼2011-06-02 15:07:50
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
13楼2011-06-09 20:32:19
vs570588
木虫 (正式写手)
- 应助: 0 (幼儿园)
- 金币: 3112.1
- 散金: 456
- 红花: 1
- 帖子: 923
- 在线: 420.6小时
- 虫号: 822119
- 注册: 2009-08-04
- 性别: GG
- 专业: 环境工程
15楼2011-06-10 16:10:54









回复此楼
length(t)-1);