24小时热门版块排行榜    

Znn3bq.jpeg
查看: 4411  |  回复: 12
本帖产生 1 个 计算强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

258190169

铜虫 (小有名气)

[求助] matlab-常微分方程参数估计

初始数据浓度和时间
t=[0,10,30,50,70,90,110,130,150,160];
c=[0,0.23211,0.45906,0.68601,0.92328,1.21213,1.32561,1.34624,1.39782,1.398];
微分方程,dc/dt=[4.41/96485-(4.41*k+L*4.41/96485)c]/(1+4.41*k*t)

要求: 1.得到拟合参数:k 和L 以及相对偏差
       2.得到拟合曲线和数据点的图
       3.最好附上院程序
回复此楼

» 猜你喜欢

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

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

dingd

铁杆木虫 (职业作家)


dbb627(金币+1): 感谢参与 2011-12-17 11:40:34
用1stOpt试试:
CODE:
Variable t,c;
ODEFunction c'=(4.41/96485-(4.41*k+L*4.41/96485)*c)/(1+4.41*k*t);
Data;
0        0
10        0.23211
30        0.45906
50        0.68601
70        0.92328
90        1.21213
110        1.32561
130        1.34624
150        1.39782
160        1.398

均方差(RMSE): 0.272257391318038
残差平方和(SSE): 0.66711678414573
相关系数(R): 0.932733204157737
相关系数之平方(R^2): 0.869991230138359
决定系数(DC): 0.576237758605965

参数                  最佳估算
--------------------        -------------
k        -2.32798002359073
l        514537.340812352


» 本帖已获得的红花(最新10朵)

4楼2011-12-17 09:52:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 13 个回答

258190169

铜虫 (小有名气)

本人编写的程序如下但是无法运行,由于是新手,希望高手帮忙调试一下:
function PenicilliumEst
clear all;
t=[0,10,30,50,70,90,110,130,150,160];
y=[0,0.23211,0.45906,0.68601,0.92328,1.21213,1.32561,1.34624,1.39782,1.398];
y0=0;

% Nonlinear least square estimate using lsqnonlin()
beta0=[0.005 0.001];
lb=[0 0];ub=[inf inf];
[beta,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@Func,beta0,lb,ub,[],t,y);         
ci = nlparci(beta,residual,jacobian);

% =======================================
function f = Func(beta,t,y,y0)        % Define objective function
tspan = [0  max(x)];
[tt yy] = ode45(@ModelEqs,tspan,y0,[],beta);
yc= spline(tt,yy,x);
f1=y-yc
% ==================================
function dydt = ModelEqs(t,y,beta)          % Model equations
dydt = [4.41/96485-(4.41*beta(1)+beta(2)*4.41/96485)*y]/(1+4.41*beta(1)*t)

% result
fprintf('\n Estimated Parameters by Lsqnonlin():\n')
fprintf('\t k1 = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\t k2 = %.4f ± %.4f\n',beta(2),ci(2,2)-beta(2))
fprintf('  The sum of the residual squares is: %.1e\n\n',sum(residual.^2))

% plot of fit results
tspan = [0  max(t)];
[tt yc] = ode45(@modeleqs,tspan,c0,[],beta);
tc=linspace(0,max(t),200);
yc = spline(tt,yc,tc);
plot(t,c,'ro',tc,yca,'r-');
hold on
xlabel('Time');
ylabel('Concentration');
hold off
2楼2011-12-16 16:49:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
258190169(金币+20): 多谢大侠 你的QQ是多少可以和你联系一下嘛 2011-12-16 22:12:03
cenwanglai(金币+5, 计算强帖+1): 谢谢给予帮助~ 2011-12-20 09:07:46
引用回帖:
2楼: Originally posted by 258190169 at 2011-12-16 16:49:37:
本人编写的程序如下但是无法运行,由于是新手,希望高手帮忙调试一下:
function PenicilliumEst
clear all;
t=[0,10,30,50,70,90,110,130,150,160];
y=[0,0.23211,0.45906,0.68601,0.92328,1.21213,1.32561, ...

CODE:
function PenicilliumEst
clear all;
t=[0,10,30,50,70,90,110,130,150,160];
y=[0,0.23211,0.45906,0.68601,0.92328,1.21213,1.32561,1.34624,1.39782,1.398];
y0=0;

% Nonlinear least square estimate using lsqnonlin()
beta0=[0.001 0.001];
lb=[0 0];ub=[inf inf];
[beta,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@Func,beta0,lb,ub,[],t,y,y0);         
ci = nlparci(beta,residual,jacobian);
beta
% result
fprintf('\n Estimated Parameters by Lsqnonlin():\n')
fprintf('\t k1 = %.4f ± %.4f\n',beta(1),ci(1,2)-beta(1))
fprintf('\t k2 = %.4f ± %.4f\n',beta(2),ci(2,2)-beta(2))
fprintf('  The sum of the residual squares is: %.1e\n\n',sum(residual.^2))

% plot of fit results
tspan = [0  max(t)];
[tt yc] = ode45(@ModelEqs,tspan,y0,[],beta);
tc=linspace(0,max(t),200);
yca = spline(tt,yc,tc);
plot(t,y,'ro',tc,yca,'r-');
hold on
xlabel('Time');
ylabel('Concentration');
hold off
% =======================================
function f1 = Func(beta,t,y,y0)        % Define objective function
tspan =t;
[tt yy] = ode45(@ModelEqs,tspan,y0,[],beta);
yc= spline(tt,yy,t);
f1=y-yc;
% ==================================
function dydt = ModelEqs(t,y,beta)          % Model equations
dydt = (4.41/96485-(4.41*beta(1)+beta(2)*4.41/96485)*y)/(1+4.41*beta(1)*t);

改的可以运行了,但是初值不合适
The more you learn, the more you know, the more you know, and the more you forget. The more you forget, the less you know. So why bother to learn.
3楼2011-12-16 17:31:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sui2066

木虫 (职业作家)

谢谢老大!
氟硅(富贵)http://www.dowpont.com/bbs/index.php^_^
5楼2011-12-17 19:37:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 312求调剂 +6 李鸿飞飞 2026-04-06 6/300 2026-04-12 00:34 by 蓝云思雨
[考研] 266求调剂,一志愿哈工程电子信息,本科获多项国奖和省奖 +8 lumine1 2026-04-06 8/400 2026-04-11 18:35 by 逆水乘风
[考研] 085501机械专硕 302分 不挑专业求调剂 +7 汪某. 2026-04-09 7/350 2026-04-11 14:37 by luhong1990
[考研] 化学308分求调剂 +22 你好明天你好 2026-04-07 24/1200 2026-04-11 11:14 by ChemPharm
[考研] 0854调剂 +5 音像店听花鼓戏 2026-04-10 5/250 2026-04-11 10:49 by qingpingzhu
[考研] 087100初试311求调剂 +4 任雅琴 2026-04-09 4/200 2026-04-11 10:33 by zhq0425
[考研] 还有化工二轮调剂的学校吗 5+14 化工人999 2026-04-09 48/2400 2026-04-11 10:27 by 89436494
[考研] 化学工程与技术324调剂 +23 孙常华 2026-04-09 25/1250 2026-04-11 00:07 by 骑牛渡寒江
[考研] 一志愿北理工298英一数二已上岸,感谢各位老师 +14 Reframe 2026-04-10 16/800 2026-04-10 23:07 by caotw2020
[考研] 调剂 +19 小张ZA 2026-04-10 20/1000 2026-04-10 22:08 by 猪会飞
[考研] 296求调剂 +6 汪!?! 2026-04-08 6/300 2026-04-10 11:02 by mattzhming
[考研] 292求调剂 +9 笑笑袁 2026-04-09 9/450 2026-04-10 10:05 by LHGeng
[考博] 博士自荐 +7 可可小胖 2026-04-08 7/350 2026-04-10 08:28 by kimhero
[考研] 二次调剂求老师收留 +3 笑笑袁 2026-04-08 3/150 2026-04-08 23:50 by 醉在风里
[考研] 331求调剂 +5 张元一 2026-04-07 6/300 2026-04-07 22:13 by hemengdong
[考研] 305求调剂 +4 77Qi 2026-04-06 4/200 2026-04-07 20:06 by shanqishi
[考研] 338求调剂 +4 我想上岸ii 2026-04-05 4/200 2026-04-06 21:04 by 木子君1218
[考研] (调剂)一志愿报考哈尔滨工业大学0857资源与环境专业378分考生 +7 狠狠加油 2026-04-05 8/400 2026-04-06 16:52 by momo皓
[考研] 296求调剂 +3 汪!?! 2026-04-05 4/200 2026-04-05 20:13 by 啵啵啵0119
[考研] 315求调剂 +5 &123456789 2026-04-05 5/250 2026-04-05 19:55 by nepu_uu
信息提示
请填处理意见