24小时热门版块排行榜    

查看: 2265  |  回复: 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, ...
回复此楼
有梦一起追
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
8楼: Originally posted by chendequan at 2019-06-24 15:28:52
个人签名里面有我联系方式,问题资料要齐全,要求要具体详细,这样便于问题及时解决。...

dy(1)=a*y(1)+b*y(2);
y(2)=c*y(1)+d*y(3);
dy(3)=-e*y(2)*(y(3)-t)/y(1);

function daedi
a=-0.2; b=0.5; c=0.1; d=-1; e=0.3;
y0=[0.8;0.5;0.1]; %初值,y0(2)=0.5是猜测值
options=optimset('display','off');
y0(2)=fsolve(@(y2)y2-(c*y0(1)+d*y0(3)),y0(2),options); %求出相容的初值y0(2)
% 求解微分方程
[t,y]=ode45(@(t,y)myodefun(t,y,a,b,c,d,e),[0,20],y0);
figure('numbertitle','off','name','DAE 求解示例 方法1.2')
plot(t,y)
legend('y1(t)','y2(t)','y3(t)')

function dy=myodefun(t,y,a,b,c,d,e)
dy=zeros(3,1); % dy(2)=0很重要,否则反求出y(2)后会被积分
% 先求解代数方程,顺序很重要
cons=@(y2)y2-(c*y(1)+d*y(3)); % 隐式代数约束
options=optimset('display','off'); % 关闭提示
y(2)=fsolve(cons,y(2),options); %用上次的y(2)作为猜测值
dy(1)=a*y(1)+b*y(2);
dy(3)=-e*y(2)*(y(3)-t)/y(1);
现在通过这个例子已经可以运行,想问您怎么继续编写这个例子中y(2)随t的动态变化呢
感谢感谢
有梦一起追
10楼2019-06-28 05:02:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 10 个回答

chendequan

铁虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

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

QQ:516477448,真心帮助解决MATLAB相关问题,提供详细资料,Word文档明确具体问题及要求,尽力而为!
2楼2019-06-23 10:06:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
2楼: Originally posted by chendequan at 2019-06-23 10:06:51
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

津津爱睡觉

金虫 (小有名气)

引用回帖:
2楼: Originally posted by chendequan at 2019-06-23 10:06:51
theta值未知,eqn方程求解cma可能会遇到无解情况,建议提供公式资料看看

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
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 今天系统多次维护,明天很可能放榜! +5 zju2000 2026-08-16 5/250 2026-08-16 23:23 by Haru815
[基金申请] 时间戳又变了8-15 +13 archvillain 2026-08-15 25/1250 2026-08-16 20:13 by zhaosm1982
[基金申请] 2027广东省杰青 +3 奶牛小黑 2026-08-15 6/300 2026-08-16 20:07 by 奶牛小黑
[基金申请] 快农历七夕节了,轻松一下,男人悄悄话,女施主请不要进来。 +3 Tide man 2026-08-14 3/150 2026-08-16 17:47 by jurkat.1640
[基金申请] 哪位老哥知道今年的国自然具体哪一天放榜? +9 Ldrop2023 2026-08-13 9/450 2026-08-16 13:24 by wukun_007
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 26/1300 2026-08-16 12:35 by 启萌科技
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +11 家与远方 2026-08-10 16/800 2026-08-16 10:28 by ray43
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +10 majunge000 2026-08-11 12/600 2026-08-16 08:18 by xli1984
[基金申请] filecode=后面第一个是大写字母 +6 wangze12014 2026-08-14 7/350 2026-08-15 20:12 by gltch
[基金申请] filecode +8 cratir 2026-08-14 12/600 2026-08-15 18:08 by zyfgau
[硕博家园] 读博的好处 +4 lnee 2026-08-11 4/200 2026-08-14 10:20 by ahsoarli
[基金申请] filecode +15 documentary 2026-08-10 17/850 2026-08-14 10:08 by kissu88
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 重要来源:本周末出结果 +10 瞬息宇宙 2026-08-12 10/500 2026-08-13 15:46 by likettle
[基金申请] 不应该看fileCode +7 且听虎啸 2026-08-12 9/450 2026-08-13 14:27 by flydreamws
[基金申请] 分享一下我之前已中青C的计划书的filecode +4 布布和一二 2026-08-11 5/250 2026-08-13 12:56 by cratir
[基金申请] 2019年青年基金涵评意见,大家看看几个A,几个B? +11 Tide man 2026-08-11 11/550 2026-08-13 07:35 by 撸猫猫
[基金申请] 帮忙看看fileCode +7 wwncly 2026-08-10 13/650 2026-08-11 19:36 by 冰心玉壶晴
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
信息提示
请填处理意见