| 查看: 1903 | 回复: 9 | |||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | |||
津津爱睡觉金虫 (小有名气)
|
[求助]
Matlab小白,急需计算一个模型,求懂的大神看看怎么修改。万分感谢 已有2人参与
|
||
|
Matlab小白,急需计算一个模型,解微分方程组,求懂的大神看看怎么修改。万分感谢 function dy = funct(t,y) I = 50 % mA F = 96487 % C/mol c0 = 10 % mM Vol = 3.344 % ml Q = 6.5 % ml/min A = 33.75 % cm2 syms x eqn = 0.86*x+0.4*(x*exp(-asinh(theta/(-2*x)))+x*exp(asinh(theta/(-2*x))))==y(3) cma = double(solve(eqn,x)) cmion = (y(3)-0.86*cma)/0.4 phi_sp = asinh(-3/y(2)) phi_ele = asinh(-3/cma) phi_mem = (I*170)/(-1.12*F*(cma.*cosh(phi_ele)+y(2).*cosh(phi_sp))) J = -(1.12*1e-3/170)*(2*cma.*cosh(phi_ele)-2*y(2).*cosh(phi_sp))+3*phi_mem dy=zeros(3,1); dy(1) = (1e4*I/A)/(116*F) dy(2) = -J/(250e-6*0.5)+(c0-y(2))/(0.5*(Vol/Q)*60) dy(3) = J/(290*1e-6) end clear all; c0=10 tspan=[0 600] [t,y] = ode45(@funct,tspan,[0 c0 1.66*c0]) plot(t, y(:,2)) xlabel('t'),ylabel('c') 错误使用 odearguments (line 92) FUNCT 返回的矢量的长度为 2,但初始条件矢量的长度为 3。FUNCT 返回的矢量和初始条件矢量的元素数目必须相同。 出错 ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... |
» 猜你喜欢
假如你的研究生提出不合理要求
已经有12人回复
实验室接单子
已经有7人回复
全日制(定向)博士
已经有5人回复
萌生出自己或许不适合搞科研的想法,现在跑or等等看?
已经有4人回复
Materials Today Chemistry审稿周期
已经有4人回复
参与限项
已经有3人回复
对氯苯硼酸纯化
已经有3人回复
所感
已经有4人回复
要不要辞职读博?
已经有7人回复
北核录用
已经有3人回复

津津爱睡觉
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1100.8
- 散金: 33
- 红花: 1
- 帖子: 145
- 在线: 60小时
- 虫号: 2029058
- 注册: 2012-09-25
- 性别: GG
- 专业: 信号理论与信号处理
|
function dydt = funct(t,x, y) I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 y1=y(1); y2=y(2); y3=y(3); y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x)))) phi_sp = asinh(-3/y2) phi_ele = asinh(-3/x) phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp))) J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem dy1dt = (1e4*I/A)/(116*F) dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60) dy3dt = J/(290*1e-6) end clear all; I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 tspan=[0 600] x0=c0 [t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0]) plot(t, theta) xlabel('t'),ylabel('c') 出错 ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... 改了程序,现在错误变成这样。公式就是想解一个三个未知数的微分方程组,但是里面有未知数 |

4楼2019-06-23 20:57:30
chendequan
铁虫 (小有名气)
- 应助: 152 (高中生)
- 金币: 918.6
- 红花: 17
- 帖子: 262
- 在线: 208.6小时
- 虫号: 994474
- 注册: 2010-04-11
- 专业: 结构工程

2楼2019-06-23 10:06:51
津津爱睡觉
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1100.8
- 散金: 33
- 红花: 1
- 帖子: 145
- 在线: 60小时
- 虫号: 2029058
- 注册: 2012-09-25
- 性别: GG
- 专业: 信号理论与信号处理
|
function dydt = funct(t,x, y) I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 y1=y(1); y2=y(2); y3=y(3); y3 = 0.86*x+0.4*(x*exp(-asinh(y1/(-2*x)))+x*exp(asinh(y1/(-2*x)))) phi_sp = asinh(-3/y2) phi_ele = asinh(-3/x) phi_mem=(I*170)/(-1.12*F*(x*cosh(phi_ele)+y2*cosh(phi_sp))) J =-(1.12*1e-3/170)*(2*x*cosh(phi_ele)-2*y2*cosh(phi_sp))+3*phi_mem dy1dt = (1e4*I/A)/(116*F) dy2dt = -J/(250e-6*0.5)+(c0-y2)/(0.5*(Vol/Q)*60) dy3dt = J/(290*1e-6) end clear all; I = 50; % mA F = 96487; % C/mol c0 = 10; % mM Vol = 3.344; % ml Q = 6.5; % ml/min A = 33.75; % cm2 tspan=[0 600] x0=c0 [t,x,y] = ode45(@funct,tspan, c0, [0 c0 1.66*c0]) plot(t, theta) xlabel('t'),ylabel('c') 出错 ode45 (line 113) [neq, tspan, ntspan, next, t0, tfinal, tdir, y0, f0, odeArgs, odeFcn, ... 改了程序,现在错误变成这样。公式就是想解一个三个未知数的微分方程组,但是里面有未知数 |

3楼2019-06-23 20:57:24
津津爱睡觉
金虫 (小有名气)
- 应助: 0 (幼儿园)
- 金币: 1100.8
- 散金: 33
- 红花: 1
- 帖子: 145
- 在线: 60小时
- 虫号: 2029058
- 注册: 2012-09-25
- 性别: GG
- 专业: 信号理论与信号处理

5楼2019-06-23 20:58:43












回复此楼
津津爱睡觉