查看: 3810  |  回复: 20

dbb627

荣誉版主 (著名写手)

\code
function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
%----
%其中S代表底物,E代表酶,ES表示酶和底物相合在一起的中间产物,
%一个底物分子结合一个酶分子,然后生成一个分子新的物质P,并将酶释放出来,
%酶本身并没有发生任何变化。
%已知反应动力学常数k1=2、k1r=1和k2=1.5,系统的初值S(0)=30 mol,E(0)=5 mol, ES(0)=0,P(0)=0
[ts,data] = ode45(@enzyme,0:0.01:10,[30 5 0 0]);
plot(ts,data(:,1),'r',ts,data(:,2),'b',ts,data(:,3),'g',ts,data(:,4),'m')
legend('[S]','[E]','[ES]','[P]')
f=[ts,data];

function dmf=enzyme(t,X)
S=X(1);
E=X(2);
ES=X(3);
P=X(4);
dS=-10*S+2*ES*S+ES;
dE=2.5*ES-10*S+2*ES*S;
dES=10*S-2*ES*S-2.5*ES;
dP=1.5*ES;
dmf=[dS;dE;dES;dP];\code
这段代码直接存为m文件 run即可
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.
11楼2011-10-13 13:55:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

写错了
CODE:
function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
%----
%其中S代表底物,E代表酶,ES表示酶和底物相合在一起的中间产物,
%一个底物分子结合一个酶分子,然后生成一个分子新的物质P,并将酶释放出来,
%酶本身并没有发生任何变化。
%已知反应动力学常数k1=2、k1r=1和k2=1.5,系统的初值S(0)=30 mol,E(0)=5 mol, ES(0)=0,P(0)=0
[ts,data] = ode45(@enzyme,0:0.01:10,[30 5 0 0]);
plot(ts,data(:,1),'r',ts,data(:,2),'b',ts,data(:,3),'g',ts,data(:,4),'m')
legend('[S]','[E]','[ES]','[P]')
f=[ts,data];

function dmf=enzyme(t,X)
S=X(1);
E=X(2);
ES=X(3);
P=X(4);
dS=-10*S+2*ES*S+ES;
dE=2.5*ES-10*S+2*ES*S;
dES=10*S-2*ES*S-2.5*ES;
dP=1.5*ES;
dmf=[dS;dE;dES;dP];

这个引用估计是对的,直接复制到editor中保存 运行
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.
12楼2011-10-13 13:59:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

northerwood

金虫 (小有名气)

引用回帖:
12楼: Originally posted by dbb627 at 2011-10-13 13:59:09:
写错了
[code] function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
%----
%其中S代表底物,E代表酶,ES表示酶和底物相合 ...

谢谢您。还是运行不了。不如你讲程序m文件给我发在邮箱:swga99e@163.com
   再次谢谢您!!
春风化雨乐未央,行健不息须自强
13楼2011-10-13 16:55:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

你的邮箱有问题,发不过去 见附件
拷到当前目录下 点run直接运行
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.
14楼2011-10-13 17:22:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)

DOE锅炉工

引用回帖:
2楼: Originally posted by dbb627 at 2011-09-29 15:44:25:
有机理模型吗,相关常数和条件
我有个酶反应模拟的例子 你可以参考下
以下是生化反应中常见的酶促反应方程:

其中S代表底物,E代表酶,ES表示酶和底物相合在一起的中间产物,一个底物分子结合一个酶分子,然 ...

可不可以把k1 k2 这些做成未知参数传递进去? 具体赋值不在M文件中写入
谢谢
人生那么多不确定,你怕什么
15楼2011-10-18 15:52:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
15楼: Originally posted by hhucy at 2011-10-18 15:52:51:
可不可以把k1 k2 这些做成未知参数传递进去? 具体赋值不在M文件中写入
谢谢

这个没问题,程序做些简单的修改就可以了 ,利用全局变量来传递
CODE:
function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
%----
%其中S代表底物,E代表酶,ES表示酶和底物相合在一起的中间产物,
%一个底物分子结合一个酶分子,然后生成一个分子新的物质P,并将酶释放出来,
%酶本身并没有发生任何变化。
%已知反应动力学常数k1=2、k1r=1和k2=1.5,系统的初值S(0)=30 mol,E(0)=5 mol, ES(0)=0,P(0)=0
global k1 k1r k2 E0
k1=2;k1r=1;k2=1.5;E0=5;
[ts,data] = ode45(@enzyme,[0:0.01:10],[30 5 0 0]);
plot(ts,data(:,1),'r',ts,data(:,2),'b',ts,data(:,3),'g',ts,data(:,4),'m')
legend('[S]','[E]','[ES]','[P]')
f=[ts,data];

function dmf=enzyme(t,X)
%k1=2;k1r=1;k2=1.5;E0=5;
global k1 k1r k2 E0
S=X(1);E=X(2);ES=X(3);P=X(4);
% dS=-10*S+2*ES*S+ES;
% dE=2.5*ES-10*S+2*ES*S;
% dES=10*S-2*ES*S-2.5*ES;
% dP=1.5*ES;
dS=k1r*ES-k1*(E0-ES)*S;
dE=-k1*(E0-ES)*S+k1r*ES+k2*ES;
dES=k1*(E0-ES)*S-k1r*ES-k2*ES;
dP=k2*ES;
dmf=[dS;dE;dES;dP];

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.
16楼2011-10-18 18:11:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)

DOE锅炉工

引用回帖:
16楼: Originally posted by dbb627 at 2011-10-18 18:11:22:
这个没问题,程序做些简单的修改就可以了 ,利用全局变量来传递
[code]function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
...

也就是说 是在M文件里面也要写global 在调用时也要写global了
那么M文件function 要不要写成f=enzym(t,x,k1,k2)这样?
人生那么多不确定,你怕什么
17楼2011-10-19 12:49:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

引用回帖:
17楼: Originally posted by hhucy at 2011-10-19 12:49:05:
也就是说 是在M文件里面也要写global 在调用时也要写global了
那么M文件function 要不要写成f=enzym(t,x,k1,k2)这样?

对,这个是一种形式,不需要写成写成f=enzym(t,x,k1,k2)这样

还有一种形式即写成f=enzym(t,x,k1,k2)这样,在调用ode解算器是输入k1,k2的值 具体形式如下
CODE:
function f=enzym
%生物化学米氏方程的仿真
%S+E<=>ES->E+P,反应动力学常数k1(S+E->ES)、k1r(ES->E+S)和k2(ES->E+P)
%----
%其中S代表底物,E代表酶,ES表示酶和底物相合在一起的中间产物,
%一个底物分子结合一个酶分子,然后生成一个分子新的物质P,并将酶释放出来,
%酶本身并没有发生任何变化。
%已知反应动力学常数k1=2、k1r=1和k2=1.5,系统的初值S(0)=30 mol,E(0)=5 mol, ES(0)=0,P(0)=0

[ts,data] = ode45(@enzyme,[0:0.01:10],[30 5 0 0],[],2,1,1.5,5)
plot(ts,data(:,1),'r',ts,data(:,2),'b',ts,data(:,3),'g',ts,data(:,4),'m')
legend('[S]','[E]','[ES]','[P]')
f=[ts,data];

function dmf=enzyme(t,X,k1,k1r,k2,E0)

S=X(1);E=X(2);ES=X(3);P=X(4);

dS=k1r*ES-k1*(E0-ES)*S;
dE=-k1*(E0-ES)*S+k1r*ES+k2*ES;
dES=k1*(E0-ES)*S-k1r*ES-k2*ES;
dP=k2*ES;
dmf=[dS;dE;dES;dP];

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.
18楼2011-10-19 14:08:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hhucy

实习版主 (著名写手)

DOE锅炉工

引用回帖:
18楼: Originally posted by dbb627 at 2011-10-19 14:08:14:
对,这个是一种形式,不需要写成写成f=enzym(t,x,k1,k2)这样

还有一种形式即写成f=enzym(t,x,k1,k2)这样,在调用ode解算器是输入k1,k2的值 具体形式如下
[code]function f=enzym
%生物化学米氏方程的仿 ...

谢谢,能否解释下
[ts,data] = ode45(@enzyme,[0:0.01:10],[30 5 0 0],[],2,1,1.5,5)
这段代码中[30 5 0 0]和2,1,1.5,5之间的[]表示什么意思?
人生那么多不确定,你怕什么
19楼2011-10-19 15:54:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dbb627

荣誉版主 (著名写手)

这个要从ode命令的格式说起
   [TOUT,YOUT] = ODE45(ODEFUN,TSPAN,Y0,OPTIONS) solves as above with default
    integration properties replaced by values in OPTIONS, an argument created
    with the ODESET function. See ODESET for details. Commonly used options
    are scalar relative error tolerance 'RelTol' (1e-3 by default) and vector
    of absolute error tolerances 'AbsTol' (all components 1e-6 by default).
    If certain components of the solution must be non-negative, use
    ODESET to set the 'NonNegative' property to the indices of these
    components.
[30 5 0 0]和2,1,1.5,5之间的[]表示options不做更改,后面的2,1,1.5,5是函数中参数的值
否则如果没有[].程序会认为2,1,1.5,5是options中值而发生错误
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.
20楼2011-10-19 16:38:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 northerwood 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 听说今天filecode变了 +19 布布和一二 2026-08-06 33/1650 2026-08-07 01:25 by 云上清扬
[基金申请] 基金中了 +6 laoda193707 2026-08-06 6/300 2026-08-06 23:34 by dragonxp
[基金申请] filecode +10 等待解的谜 2026-08-06 14/700 2026-08-06 21:16 by zhanghaozhu
[基金申请] 固定端突然变了,今天 +3 archvillain 2026-08-06 7/350 2026-08-06 21:05 by archvillain
[基金申请] filecode +8 布布和一二 2026-08-06 11/550 2026-08-06 20:41 by tangpu318
[基金申请] 大家散了吧,后缀研究没有意义,别浪费时间了,过好目前的每一天,不要焦虑 +5 Tide man 2026-08-06 6/300 2026-08-06 20:19 by 苏知砚
[有机交流] 一个有机合成实验室都需要哪些设备? 50+3 kf2781974 2026-07-31 12/600 2026-08-06 15:11 by eddyin
[基金申请] 求各位大神看下 100+6 hpkpkpkp 2026-08-05 33/1650 2026-08-06 14:49 by zhiyanjiang
[教师之家] 咨询面上基金 +4 李长云 2026-07-31 7/350 2026-08-06 11:20 by 李长云
[基金申请] 影响面上的因素 +8 布布和一二 2026-08-05 11/550 2026-08-06 10:41 by 宝贝虫子
[基金申请] 8月时间戳变的,举个手。玩一下,释放压力 +9 archvillain 2026-08-04 11/550 2026-08-05 20:06 by wlwhappy
[基金申请] 面上再次挂了,太难了,躺也躺不了,倦也卷不过,小学校之殇! +22 低垂的野花 2026-07-31 30/1500 2026-08-05 18:03 by 低垂的野花
[基金申请] 好消息?这个有何含义??? +8 Tide man 2026-08-05 10/500 2026-08-05 16:14 by xmuxiaoyu
[考博] 【2027博士申请】纳米药物递送方向 20+3 13586093586 2026-08-03 4/200 2026-08-05 09:59 by lfy8008
[基金申请] 有没有H口的?有收到消息的吗? +3 超级海虾 2026-08-04 3/150 2026-08-04 17:26 by 学教育滴
[论文投稿] 十年后又回来了,论文投稿求助 +3 哈哈114477 2026-08-01 3/150 2026-08-04 15:40 by tegsgjy20
[基金申请] 纯娱乐,不喜欢勿喷 +7 Tide man 2026-08-04 10/500 2026-08-04 15:10 by loufangrui
[基金申请] 面上提前没消息,有中的吗 +14 archvillain 2026-08-02 18/900 2026-08-04 14:42 by archvillain
[基金申请] 娱乐 +4 Tide man 2026-08-03 4/200 2026-08-04 11:51 by wgch518
[基金申请] 什么时候能放榜呀? +3 Jacob678 2026-08-03 3/150 2026-08-03 16:14 by gltch
信息提示
请填处理意见