24小时热门版块排行榜    

Znn3bq.jpeg
查看: 570  |  回复: 0

天才超人

新虫 (初入文坛)

[求助] Matlab解ODE方程组 出现singular

Hi, 我需要求解一个ode方程组,目前用的matlab的ode23s。但是求解不出来,算出第一个数值后,解不了第二步,显示错误信息
"Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.552643e-19) at time t."
或者
"Matrix is close to singular or badly scaled. Results may be inaccurate. Unable to meet integration tolerances without reducing the step size below the smallest value allowed (3.552643e-19) at time t."

能否麻烦大家帮我看一下问题在哪里?非常极其感谢!

Matlab程序如下:

global F R T e0 Z_Na Z_Cl Z_OH Z_H C_Na_A C_Cl_A C_OH_A C_H_A Cond_A i U_A E_A FixedCharge LA D_H D_OH e_r epsilon C_Na_A2 C_Cl_A2 C_H_A2 C_OH_A2

F=96485;                    
R=8.3144621;           
T=25+273.15;           
e0=8.85419/10^12;      
Z_Na=1;   
Z_Cl=-1;
Z_OH=-1;
Z_H=1;

%%% solution = 1 M NaCl + 0.1 M NaOH in the BULK
C_Na_A=1000+100;                        
C_Cl_A=1000+1e-10;            
C_OH_A=100;                    
C_H_A=1e-10;
Cond_A=10.1;                             

i=1000;                             
U0=0;                           
E_A=i/Cond_A;                    

FixedCharge=2*1000;   
LA=1E-4;                       
D_H=5.94/10^10;               
D_OH=3.47/10^10;           
e_r=20;                                 
epsilon=e_r*e0;                           

U_A=-R*T/F*asinh(-FixedCharge/2/(C_Na_A+C_H_A))+U0;

C_Na_A2=C_Na_A*exp(-Z_Na*F/R/T*U_A);
C_Cl_A2=C_Cl_A*exp(-Z_Cl*F/R/T*U_A);
C_OH_A2=C_OH_A*exp(-Z_OH*F/R/T*U_A);
C_H_A2=C_H_A*exp(-Z_H*F/R/T*U_A);

%%%%%%%%%%%%%%%%%%%%
y0=[E_A;U_A;C_OH_A2];
[p Y]=ode23s(@odefun,linspace(-LA,0,10000),y0);
%%%%%%%%%%%%%%%%%%%%

方程组function如下:

function [dydx]= odefun(x,y)
global F R T Z_Na Z_Cl Z_OH Z_H C_Na_A2 C_Cl_A2 i U_A FixedCharge D_OH epsilon D_H C_Na C_Cl
% y(1)=Electric field, y(2)=Electric potential, y(3)=OH- concentration
dydx=zeros(3,1);
C_Na=C_Na_A2*exp(-Z_Na*F/R/T.*(y(2)-U_A));
C_Cl=C_Cl_A2*exp(-Z_Cl*F/R/T.*(y(2)-U_A));
dydx(1)=(F/epsilon)*(C_Na-C_Cl+10^(-8)./y(3)-y(3)+FixedCharge);   
dydx(2)=-y(1);                                            
J_H=-D_H*(-10^(-8)./(y(3)^2)*dydx(3)+Z_H*F/R/T*10^(-8)./y(3).*dydx(2));
dydx(3)=-((i/F-Z_H*J_H)/Z_OH/D_OH)-Z_OH*F/R/T.*y(3).*dydx(2);
end
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 天才超人 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 调剂求收留 +5 果然有我 2026-04-10 5/250 2026-04-11 00:41 by ltltkkk
[考研] 一志愿北理工298英一数二已上岸,感谢各位老师 +14 Reframe 2026-04-10 16/800 2026-04-10 23:07 by caotw2020
[考研] 342电子信息专硕求调剂 +8 你让我怎么荔枝 2026-04-10 9/450 2026-04-10 21:46 by fxue1114
[考研] 289 分105500药学专硕求调剂(找B区学校) +6 白云123456789 2026-04-09 8/400 2026-04-10 21:13 by zhouxiaoyu
[考研] 22408 366分,本科211,一志愿西工大 +4 Rubt 2026-04-09 4/200 2026-04-10 19:51 by chemisry
[考研] 一志愿211,化学学硕,310分,本科重点双非,求调剂 +27 努力奋斗112 2026-04-07 30/1500 2026-04-10 15:06 by Kilig0317
[考研] 求调剂 +9 翩翩一书生 2026-04-09 9/450 2026-04-10 11:43 by wp06
[考研] 材料专硕283求调剂 +18 试试看呗 2026-04-04 19/950 2026-04-10 10:05 by may_新宇
[考研] 085500求调剂材料 +8 易11122 2026-04-09 8/400 2026-04-09 23:15 by parmtree
[考研] 289求调剂 +4 L1ttleTiger 2026-04-04 4/200 2026-04-09 19:53 by xiayizhi
[考研] 一志愿华工085600 331分 +6 天下ww 2026-04-09 6/300 2026-04-09 18:59 by l_paradox
[考研] 求助071001调剂!!! +7 黄守松 2026-04-05 8/400 2026-04-09 09:07 by 徐良白眉大侠
[考研] 考研求调剂 +4 雯??? 2026-04-08 4/200 2026-04-08 21:44 by 土木硕士招生
[考研] 307求调剂 +14 超级伊昂大王 2026-04-06 14/700 2026-04-08 07:03 by 无际的草原
[考研] 304求调剂(085602,过四级,一志愿985) +25 化工人999 2026-04-04 26/1300 2026-04-07 22:06 by hemengdong
[考研] 22408 一志愿双一流人工智能300分 四六级,数据分析国奖 +4 zzfeng123 2026-04-06 6/300 2026-04-07 21:02 by zzfeng123
[考研] 生物学学硕求调剂:351分一志愿南京师范大学生物学专业 +6 …~、王…~ 2026-04-06 7/350 2026-04-06 18:54 by macy2011
[考研] 285求调剂 +5 mapmath 2026-04-06 6/300 2026-04-06 17:18 by 蓝云思雨
[考研] 求调剂到材料 +5 程9915 2026-04-06 5/250 2026-04-06 15:21 by yulian1987
[考研] 348求调剂 +3 车厘子zzz 2026-04-05 3/150 2026-04-05 20:30 by 啵啵啵0119
信息提示
请填处理意见