24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2305  |  回复: 10
【悬赏金币】回答本帖问题,作者Evoly_z将赠送您 88 个金币

Evoly_z

银虫 (小有名气)

[求助] 求助代谢动力学系数模拟代码 1stOpt或者MATLAB 已有3人参与

求代谢动力学系数模拟
一级代谢物的动力学方程:dC2/dt=k1*C1-k2*C2
初始条件:t=0,C2=0
且C1=exp(-A*t)。A=0.2779

我尝试了用1stOpt(破解版)和MATLAB ODE方法,都没成功,想请教一下大神。
另外t不是严格的等差数列,取值如:t=0,1,2,4,6,10,15,24

1stOpt代码:

Title Kinetic_ave
Parameters k1[0,100], k2[0,100];
Variable t, C;

StartProgram
var i:integer;

begin
for i:=0 to DataLength -1 do begin
      if i ==0
         C=0;
         else
      C:=C[i-1]+k1*(t-t[i-1])*exp(-0.2779*t) - k2*C*(t-t[i-1]);
         end;
EndProgram;
Data;
//t    C
   0    xxx
   1    xxx
   2    xxx
   4    xxx
   6    xxx
   10  xxx
   15  xxx
   24  xxx


Matlab代码:
function ODE_ave
clear all;clc
format long
aveall;
t=T_h(;
yexp=OLEave(;

k0=[1 1];  

y0=0;
lb=[0 0];
ub=[+inf +inf];   
yy=[y0 yexp'];

tspan=0:1:24;

[k,resnorm,residual,exitflag,output,lambda,jacobian] = ...
    lsqnonlin(@ObjFunc,k0,lb,ub,[],tspan,y0,yexp);
fprintf('\n\n使用函数lsqnonlin()估计得到的参数值为:\n')
fprintf('\t待拟合参数 k1 = %.6f\n',k(1))
fprintf('\t待拟合参数 k2 = %.6f\n',k(2))
fprintf(' \t残差平方和= %.6f\n\n',resnorm)
ts=0:1:24;

[ts ys]=ode45(@KineticsEqs,ts,y0,[],k);
[ttt XXsim] = ode45(@KineticsEqs,tspan,y0,[],k);
y=XXsim(2:end);
xexp=yexp;
R2=1-sum((xexp-y).^2)./sum((xexp-mean(y)).^2);
fprintf('\n\t决定系数R-Square = %.6f',R2);
figure(1)
plot(ts,ys,'b',tspan,yy,'or'),legend('计算值','实验值','Location','best');
yr=y-yexp;
figure(2)
plot(tspan(2:end),yr,'r*',[-1 15],[0 0]),axis([-1 15 -0.5 0.5]);
figure(3)
plot(yexp,y,'ro',[21 29],[21 29],'b-');
(作图这块儿是copy的,没有做修改)
%---------------------------------------------------------
function f = ObjFunc(k,tspan,y0,yexp)           
[t Xsim] = ode45(@KineticsEqs,tspan,y0,[],k) ;
ysim = Xsim(2:end);
size(ysim);
size(yexp);
f=ysim(1,1)+ysim(2,1)+ysim(4,1)+ysim(6,1)+ysim(10,1)+ysim(15,1)+ysim(24,1) - sum(yexp(:,1));
%----------------------------------------------------------

function dydt = KineticsEqs(t,y,k)
beta(1)=k(1);
beta(2)=k(2);
dydt = beta(1)*exp(-0.2779*t)-beta(2)*y;

求求啦,被这个问题卡了两个多月了,不知道怎么解出k1 k2
回复此楼
RELEASE/ME/FROM/THE/PRISON!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

感谢参与,应助指数 +1
参数拟合C2缺少数据
1stOpt容易实现,1.5不支持微分方程拟合,需要下载5.0版本的

发自小木虫Android客户端
数值计算
2楼2021-03-24 07:20:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Evoly_z

银虫 (小有名气)

引用回帖:
2楼: Originally posted by 独孤神宇 at 2021-03-24 07:20:06
参数拟合C2缺少数据
1stOpt容易实现,1.5不支持微分方程拟合,需要下载5.0版本的

谢谢回复。

有C2的数据,因为C1服从指数方程,直接把方程写在程序里了。C2的数据就写在了下面的数据表里。

能分享5.0版的1stOpt下载么?我在网上实在找不到了,我这里也没有校内bbs之类的东西。。

谢谢了
RELEASE/ME/FROM/THE/PRISON!
3楼2021-03-24 11:13:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
C2数据给出来看看
4楼2021-03-24 16:12:00
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Evoly_z

银虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2021-03-24 16:12:00
C2数据给出来看看

不是数据的问题,是程序不能运行的问题。点运行之后就转圈,输出那里也没反应。
RELEASE/ME/FROM/THE/PRISON!
5楼2021-03-24 20:15:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

将C 的数据补上就可以运行了。

Parameters k1[0,100], k2[0,100];
Variable t, C;
InitialODEValue t=0,c=0;
ODEFunction c'=k1*exp(-0.2779*t)-k2*c;
Data;
//t    C
   0    xxx
   1    xxx
   2    xxx
   4    xxx
   6    xxx
   10  xxx
   15  xxx
   24  xxx
数值计算
6楼2021-03-25 09:23:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Evoly_z

银虫 (小有名气)

引用回帖:
6楼: Originally posted by 独孤神宇 at 2021-03-25 09:23:53
将C 的数据补上就可以运行了。

Parameters k1, k2;
Variable t, C;
InitialODEValue t=0,c=0;
ODEFunction c'=k1*exp(-0.2779*t)-k2*c;
Data;
//t    C
   0    xxx
   1    xxx
   2    xxx
   4    x ...

好像不对头。

大哥加个qq啊,我好请教你啊
RELEASE/ME/FROM/THE/PRISON!
7楼2021-03-25 13:31:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
7楼: Originally posted by Evoly_z at 2021-03-25 13:31:45
好像不对头。

大哥加个qq啊,我好请教你啊...

1stOpt需要4.0以上版本,你将数据附上就行了

发自小木虫Android客户端
数值计算
8楼2021-03-25 13:37:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Evoly_z

银虫 (小有名气)

引用回帖:
8楼: Originally posted by 独孤神宇 at 2021-03-25 13:37:38
1stOpt需要4.0以上版本,你将数据附上就行了
...

我想买一个5.0以上版本的,结果入手了一个5.0的破解版,这个程序好像也运行不了。

哥你能帮我算一次吗?

Variable x, y;
ODEFunction y'= k1*(0.701*exp(-3.211*x)+0.299*exp(-0.067*x))-k2*y;
Data;
//x, y
0         0
0.33      0.061043
1         0.03675
2         0.05932
4         0.095993
6         0.072057
10        0.05085
15        0.04678
24        0.047673
30        0.034973
48        0.030375
72        0

我按教程写成这样了,应该没问题吧?就是算不出结果。
RELEASE/ME/FROM/THE/PRISON!
9楼2021-03-30 01:33:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

独孤神宇

版主 (知名作家)

【答案】应助回帖

引用回帖:
9楼: Originally posted by Evoly_z at 2021-03-30 01:33:28
我想买一个5.0以上版本的,结果入手了一个5.0的破解版,这个程序好像也运行不了。

哥你能帮我算一次吗?

Variable x, y;
ODEFunction y'= k1*(0.701*exp(-3.211*x)+0.299*exp(-0.067*x))-k2*y;
Data;
  ...

这是免费的试用版,你这被人忽悠了啊,最新版已经到9.0了,而且只能去官网购买。


均方差(RMSE): 0.0171691634594409
残差平方和(SSR): 0.00324258191286701
相关系数(R): 0.802484090026993
相关系数之平方(R^2): 0.64398071474645
修正R平方(Adj. R^2): 0.554975893433063
确定系数(DC): 0.468028249120648
F统计(F-Statistic): 23.5213130305514

参数                  最佳估算
--------------------        -------------
k1        0.13256115104059
k2        0.358504426638858

====== 结果输出 ======

文件: 数据文件-1
No        x        目标 y        计算 y
1        0.33        0.061043        0.0298491702527491
2        1        0.03675        0.053602315170092
3        2        0.05932        0.0683875960100214
4        4        0.095993        0.079360928514414
5        6        0.072057        0.0789300799888936
6        10        0.05085        0.0667093831255373
7        15        0.04678        0.0492934543907035
8        24        0.047673        0.02721397228202
9        30        0.034973        0.0182160615899268
10        48        0.030375        0.00545427669955797
11        72        0        0.00109238646097193
数值计算
10楼2021-03-30 08:47:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Evoly_z 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 270求调剂 +3 031127 2026-04-06 4/200 2026-04-08 21:00 by 逆水乘风
[考研] 本科211,293分请求调剂 +12 莲菜就是藕吧 2026-04-03 13/650 2026-04-08 20:30 by 背对大海出发
[考研] 085600材料与化工301分求调剂院校 +27 刺痛jk 2026-04-06 28/1400 2026-04-08 16:16 by luoyongfeng
[考研] 考研调剂 +11 冰冰,,, 2026-04-07 11/550 2026-04-08 15:08 by Delta2012
[考研] 求材料调剂,一志愿郑州大学289分 +21 硕星赴 2026-04-03 21/1050 2026-04-08 11:55 by 猪会飞
[考研] 336求调剂,一志愿中科大 +9 墨彧 yuyu 2026-04-06 9/450 2026-04-08 11:24 by 想读书的菌菌
[考研] 285求调剂 +7 AZMK 2026-04-07 7/350 2026-04-08 11:10 by 逆水乘风
[考研] 求考研材料调剂 +3 材化李可 2026-04-07 3/150 2026-04-08 00:21 by JourneyLucky
[考研] 388求调剂 +6 四川王涛 2026-04-07 8/400 2026-04-08 00:17 by JourneyLucky
[考研] 312求调剂 +18 gtw1 2026-04-06 20/1000 2026-04-07 18:16 by 蓝云思雨
[考研] 269电子信息求调剂,可转专业 +5 独酌wl 2026-04-06 5/250 2026-04-06 17:23 by 土木硕士招生
[考研] 081200-11408-276学硕求调剂 +5 崔wj 2026-04-05 5/250 2026-04-06 15:40 by lin-da
[考研] 一志愿南航,数一英一学硕317求调剂!! +6 Acaciad 2026-04-04 6/300 2026-04-06 12:13 by 考研学校招点人
[考研] 332求调剂 +17 小小孟... 2026-04-05 18/900 2026-04-06 09:51 by 蓝云思雨
[考研] 求调剂,一志愿郑州大学材料与化工专硕,英二数二342分,求老师收留 +19 v12abo 2026-04-02 21/1050 2026-04-06 09:29 by 蓝云思雨
[考研] 材料与化工371求调剂 +14 陪琳看海 2026-04-04 15/750 2026-04-06 06:59 by houyaoxu
[考研] 生物学308分求调剂(一志愿华东师大) +8 相信必会光芒万 2026-04-05 10/500 2026-04-05 12:19 by Hdyxbekcb
[考研] 296材料专硕求调剂 +21 202451007219 2026-04-02 22/1100 2026-04-04 21:48 by hemengdong
[考研] 268求调剂 +8 你好tg 2026-04-03 9/450 2026-04-04 05:08 by gswylq
[考研] 一志愿山东大学,085600,344 +7 魏子per 2026-04-02 8/400 2026-04-02 21:12 by 百灵童888
信息提示
请填处理意见