24小时热门版块排行榜    

查看: 563  |  回复: 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的回帖
相关版块跳转 我要订阅楼主 天才超人 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 285化工学硕求调剂(081700) +11 柴郡猫_ 2026-03-12 11/550 2026-03-19 09:37 by laoshidan
[考研] 085700资源与环境308求调剂 +3 墨墨漠 2026-03-18 3/150 2026-03-18 22:35 by bingxueer79
[考研] 一志愿中国海洋大学,生物学,301分,求调剂 +4 1孙悟空 2026-03-17 4/200 2026-03-18 17:59 by fivewind
[考研] 材料与化工一志愿南昌大学327求调剂推荐 +8 Ncdx123456 2026-03-13 9/450 2026-03-18 14:40 by haxia
[考研] 298-一志愿中国农业大学-求调剂 +7 手机用户 2026-03-17 7/350 2026-03-18 14:34 by vgtyfty
[考研] 297求调剂 +8 戏精丹丹丹 2026-03-17 8/400 2026-03-18 14:30 by laoshidan
[考研] 070300化学319求调剂 +6 锦鲤0909 2026-03-17 6/300 2026-03-18 13:22 by Iveryant
[考研] 0703化学调剂 +4 pupcoco 2026-03-17 7/350 2026-03-18 12:14 by djl2006
[考研] 材料与化工求调剂 +6 为学666 2026-03-16 6/300 2026-03-17 20:15 by peike
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[考研] 268求调剂 +8 一定有学上- 2026-03-14 9/450 2026-03-17 17:47 by laoshidan
[考研] 26考研求调剂 +6 丶宏Sir 2026-03-13 6/300 2026-03-17 16:13 by 醉在风里
[考研] 211本,11408一志愿中科院277分,曾在中科院自动化所实习 +6 Losir 2026-03-12 7/350 2026-03-17 12:09 by danranxie
[考研] 070300化学学硕求调剂 +6 太想进步了0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[考研] 327求调剂 +6 拾光任染 2026-03-15 11/550 2026-03-15 22:47 by 拾光任染
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 328求调剂 +3 5201314Lsy! 2026-03-13 6/300 2026-03-14 15:31 by hyswxzs
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 266求调剂 +4 学员97LZgn 2026-03-13 4/200 2026-03-14 08:37 by zhukairuo
[考研] 295求调剂 +3 小匕仔汁 2026-03-12 3/150 2026-03-13 15:17 by vgtyfty
信息提示
请填处理意见