error: IDASolve failed

17 次查看(过去 30 天)
Hi I was trying to resolve a large ODE system with ODE45 ,the calculus didn't stop and it took more than 12hours ,so I changed the ODE to ODE15s ,here is my code and the errors that I've found
...k1 ...k2.k3...
IC = 1e19*ones(1,43); % Test: IC = 1e9*ones(1,43)
%%
F=@(t,n)([k1*n(2)*n(42)+k15*n(5)*n(9)+k16*n(5)*n(26)+k25*n(4)*n(26)+k29*n(4)*n(9)+k33*n(4)*n(11)+k39*n(7)*n(26)+k40*n(7)*n(27)+k43*n(7)*n(9)+k44*n(7)*n(12)+k48*n(9)*n(9)+k59*n(11)*n(42)+k72*n(2)*n(24)+k104*n(3)*n(5)+k105*n(3)*n(8)+k106*n(3)*n(25)+k117*n(18)*n(2)+k119*n(3)*n(43)+k122*n(11)*n(43)+k124*n(13)*n(43)+k130*n(22)*n(43)-k4*n(1)*n(37)-k8*n(1)*n(15)-k9*n(1)*n(26)-k10*n(1)*n(24)-k11*n(1)*n(20)-k12*n(1)*n(35)-k13*n(1)*n(22)-k61*n(2)*n(1)-k64*n(1)*n(13)-k65*n(1)*n(4)-k66*n(1)*n(9)-k67*n(1)*n(5)-k68*n(1)*n(1)-k69*n(1)*n(7)-k73*n(1)*n(27)-k74*n(1)*n(11)-k75*n(1)*n(23)-k76*n(1)*n(21)-k77*n(1)*n(19)-k118*n(1)*n(43)-k132*n(1)*n(42)-k136*n(1)*n(3)-k137*n(1)*n(12)-k138*n(1)*n(14)-k139*n(1)*n(6)-2*k164*n(7)*n(1)*n(1)+k164*n(7)*n(1)^(2)-k163*n(1)*n(15)*n(4)+k163*n(1)*n(15)*n(4)-k165*n(1)*n(32)*n(4)+k165*n(1)*n(32)*n(4);
-k1*n(2)*n(42)-k5*n(2)*n(15)-k6*n(2)*n(30)-k7*n(2)*n(36)-k61*n(2)*n(1)-k62*n(2)*n(7)-k63*n(2)*n(4)-k72*n(2)*n(24)-k117*n(18)*n(2)+k45*n(7)*n(11)+k73*n(1)*n(27)+k74*n(1)*n(11)+k75*n(1)*n(23)+k76*n(1)*n(21)+k77*n(1)*n(19)+k118*n(1)*n(43)+k122*n(11)*n(43);
k32*n(4)*n(12)+k132*n(1)*n(42)-k14*n(3)*n(24)-k104*n(3)*n(5)-k105*n(3)*n(8)-k106*n(3)*n(25)-k119*n(3)*n(43)-k136*n(1)*n(3)-k140*n(3)*n(4)-k141*n(3)*n(15)-k142*n(3)*n(7);
k2*n(5)*n(42)+k8*n(1)*n(15)+k10*n(1)*n(24)+k13*n(1)*n(22)+k14*n(3)*n(24)+k35*n(7)*n(15)+k36*n(7)*n(19)+k37*n(7)*n(24)+k38*n(7)*n(32)+k52*n(15)*n(24)+k53*n(15)*n(20)+k55*n(15)*n(22)+k56*n(15)*n(26)+k78*n(5)*n(9)+k79*n(5)*n(22)+k80*n(5)*n(30)+k81*n(5)*n(15)+k84*n(6)*n(15)+k85*n(6)*n(26)+k104*n(3)*n(5)+2*k107*n(5)*n(6)+k108*n(5)*n(18)+k109*n(6)*n(8)+k120*n(6)*n(43)+2*k126*n(15)*n(43)+k128*n(19)*n(43)+k130*n(22)*n(43)+k131*n(24)*n(43)+k162*n(42)*n(4)*n(15)-k19*n(4)*n(24)-k20*n(4)*n(32)-k21*n(4)*n(30)-k22*n(4)*n(30)-k23*n(4)*n(20)-k24*n(4)*n(36)-k25*n(4)*n(26)-k26*n(4)*n(26)-k27*n(4)*n(13)-k28*n(4)*n(35)-k29*n(4)*n(9)-k30*n(4)*n(21)-k31*n(4)*n(14)-k32*n(4)*n(12)-k33*n(4)*n(11)-k63*n(2)*n(4)-k65*n(1)*n(4)-2*k70*n(4)*n(4)-k82*n(4)*n(21)-k83*n(4)*n(23)-k133*n(4)*n(42)-k140*n(3)*n(4)-k143*n(4)*n(6)-k144*n(4)*n(12)-k161*n(42)*n(4)*n(15)-k162*n(42)*n(4)*n(15)-k163*n(1)*n(15)*n(4)-k165*n(1)*n(32)*n(4);
k5*n(2)*n(15)+k34*n(8)*n(15)+k82*n(4)*n(21)+k83*n(4)*n(23)+k128*n(19)*n(43)-k19*n(4)*n(24)-k20*n(4)*n(32)-k21*n(4)*n(30)-k22*n(4)*n(30)-k23*n(4)*n(20)-k24*n(4)*n(36)-k25*n(4)*n(26)-k26*n(4)*n(26)-k27*n(4)*n(13)-k28*n(4)*n(35)-k29*n(4)*n(9)-k30*n(4)*n(21)-k31*n(4)*n(14)-k32*n(4)*n(12)-k33*n(4)*n(11)-k63*n(2)*n(4)-k65*n(1)*n(4)-2*k70*n(4)*n(4)-k82*n(4)*n(21)-k83*n(4)*n(23)-k133*n(4)*n(42)-k140*n(3)*n(4)-k143*n(4)*n(6)-k144*n(4)*n(12)-k161*n(42)*n(4)*n(15)-k162*n(42)*n(4)*n(15)-k163*n(1)*n(15)*n(4)-k165*n(1)*n(32)*n(4);
k133*n(4)*n(42)+k161*n(42)*n(4)*n(15)-k84*n(6)*n(15)-k85*n(6)*n(26)-k107*n(5)*n(6)-k109*n(6)*n(8)-k120*n(6)*n(43)-k139*n(1)*n(6)-k143*n(4)*n(6)-k145*n(6)*n(24)-k146*n(6)*n(22)-k147*n(6)*n(7);
k3*n(8)*n(42)+k9*n(1)*n(26)+k11*n(1)*n(20)+k18*n(5)*n(20)+k19*n(4)*n(24)+k23*n(4)*n(20)+k26*n(4)*n(26)+k30*n(4)*n(21)+2*k60*n(21)*n(42)+k86*n(8)*n(15)+k87*n(8)*n(9)+k88*n(8)*n(22)+k89*n(8)*n(26)+k90*n(8)*n(24)+k105*n(3)*n(8)+k109*n(6)*n(8)+k110*n(8)*n(18)+k111*n(8)*n(12)+k112*n(8)*n(28)+k113*n(8)*n(14)+2*k129*n(20)*n(43)+k131*n(24)*n(43)+2*k159*n(20)*n(42)-k35*n(7)*n(15)-k36*n(7)*n(19)-k37*n(7)*n(24)-k38*n(7)*n(32)-k39*n(7)*n(26)-k40*n(7)*n(27)-k41*n(7)*n(13)-k42*n(7)*n(14)-k43*n(7)*n(9)-k44*n(7)*n(12)-k45*n(7)*n(11)-k46*n(7)*n(35)-k62*n(2)*n(7)-k69*n(1)*n(7)-k71*n(8)*n(7)-k91*n(7)*n(21)-k142*n(3)*n(7)-k147*n(6)*n(7)-k164*n(7)*n(1)*n(1);
k91*n(7)*n(21)-k3*n(8)*n(42)-k34*n(8)*n(15)-k71*n(8)*n(7)-k86*n(8)*n(15)-k87*n(8)*n(9)-k88*n(8)*n(22)-k89*n(8)*n(26)-k90*n(8)*n(24)-k105*n(3)*n(8)-k109*n(6)*n(8)-k110*n(8)*n(18)-k111*n(8)*n(12)-k112*n(8)*n(28)-k113*n(8)*n(14);
k9*n(1)*n(26)+k12*n(1)*n(35)+k13*n(1)*n(22)+k27*n(4)*n(13)+k41*n(7)*n(13)+k68*n(1)*n(1)+k74*n(1)*n(11)+k94*n(11)*n(24)+k111*n(8)*n(12)+k115*n(12)*n(25)+k121*n(9)*n(43)+k123*n(12)*n(43)+k124*n(13)*n(43)+k136*n(1)*n(3)+k153*n(10)*n(42)+k154*n(10)^(2)+k155*n(10)*n(1)-k15*n(5)*n(9)-k29*n(4)*n(9)-k43*n(7)*n(9)-k47*n(9)*n(15)-2*k48*n(9)*n(9)-k49*n(9)*n(19)-k66*n(1)*n(9)-k78*n(5)*n(9)-k87*n(8)*n(9)-k92*n(9)*n(23)-k93*n(9)*n(27)-k121*n(9)*n(43)-k134*n(9)*n(42)-k148*n(9)*n(12)-k150*n(9)*n(42);
k150*n(9)*n(42)-k153*n(10)*n(42)-k154*n(10)^(2)-k155*n(10)*n(1);
k61*n(2)*n(1)+k78*n(5)*n(9)+k87*n(8)*n(9)+k92*n(9)*n(23)+k93*n(9)*n(27)-k33*n(4)*n(11)-k45*n(7)*n(11)-k50*n(11)*n(15)-k59*n(11)*n(42)-k74*n(1)*n(11)-k94*n(11)*n(24)-k122*n(11)*n(43);
-k32*n(4)*n(12)-k44*n(7)*n(12)-k111*n(8)*n(12)-k115*n(12)*n(25)-k123*n(12)*n(43)-k137*n(1)*n(12)-k144*n(4)*n(12)-k148*n(9)*n(12)-k149*n(12)*n(13)+k31*n(4)*n(14)+k42*n(7)*n(14)+k134*n(9)*n(42);
k48*n(9)*n(9)+k66*n(1)*n(9)+k113*n(8)*n(14)+k114*n(14)*n(25)+k125*n(14)*n(43)+k137*n(1)*n(12)-k27*n(4)*n(13)-k41*n(7)*n(13)-k64*n(1)*n(13)-k124*n(13)*n(43)-k135*n(13)*n(42)-k149*n(12)*n(13);
k135*n(13)*n(42)-k31*n(4)*n(14)-k42*n(7)*n(14)-k113*n(8)*n(14)-k114*n(14)*n(25)-k125*n(14)*n(43)-k138*n(1)*n(14);
k17*n(5)*n(32)+k19*n(4)*n(24)+k20*n(4)*n(32)+k21*n(4)*n(30)+k57*n(24)*n(24)+k70*n(4)*n(4)+k77*n(1)*n(19)+k97*n(19)*n(32)+k98*n(19)*n(24)+k108*n(5)*n(18)+k110*n(8)*n(18)+k116*n(18)*n(25)+k117*n(18)*n(2)+k127*n(18)*n(43)+k143*n(4)*n(6)+2*k156*n(18)*n(15)+2*k157*n(18)*n(16)+2*k158*n(18)*n(17)+k161*n(42)*n(4)*n(15)-k5*n(2)*n(15)-k8*n(1)*n(15)-k34*n(8)*n(15)-k35*n(7)*n(15)-k47*n(9)*n(15)-k50*n(11)*n(15)-k51*n(15)*n(37)-k52*n(15)*n(24)-k53*n(15)*n(20)-k54*n(15)*n(27)-k55*n(15)*n(22)-k56*n(15)*n(26)-k81*n(5)*n(15)-k84*n(6)*n(15)-k86*n(8)*n(15)-k95*n(15)*n(21)-k96*n(15)*n(23)-k126*n(15)*n(43)-k141*n(3)*n(15)-k151*n(15)*n(42)-k152*n(15)*n(42)-k156*n(18)*n(15)-k161*n(42)*n(4)*n(15)-k162*n(42)*n(4)*n(15)-k163*n(1)*n(15)*n(4);
k151*n(42)*n(15)-k157*n(16)*n(18);
k152*n(42)*n(15)-k158*n(17)*n(18);
k84*n(6)*n(15)+k162*n(42)*n(4)*n(15)-k108*n(5)*n(18)-k110*n(8)*n(18)-k116*n(18)*n(25)-k117*n(18)*n(2)-k127*n(18)*n(43)-k156*n(18)*n(15)-k157*n(18)*n(16)-k158*n(18)*n(17);
k81*n(5)*n(15)+k86*n(8)*n(15)+k95*n(15)*n(21)+k96*n(15)*n(23)-k36*n(7)*n(19)-k49*n(9)*n(19)-k77*n(1)*n(19)-k97*n(19)*n(32)-k98*n(19)*n(24)-k128*n(19)*n(43);
k21*n(4)*n(30)+k37*n(7)*n(24)+k39*n(7)*n(26)+k57*n(24)*n(24)+k76*n(1)*n(21)+k82*n(4)*n(21)+k91*n(7)*n(21)+k95*n(15)*n(21)+k99*n(21)*n(26)+k100*n(21)*n(22)-k11*n(1)*n(20)-k18*n(5)*n(20)-k23*n(4)*n(20)-k53*n(15)*n(20)-k129*n(20)*n(43)-k159*n(20)*n(42)-k160*n(20)*n(42);
k40*n(7)*n(27)+k71*n(8)*n(7)+k160*n(20)*n(42)-k30*n(4)*n(21)-k60*n(21)*n(42)-k76*n(1)*n(21)-k82*n(4)*n(21)-k91*n(7)*n(21)-k95*n(15)*n(21)-k99*n(21)*n(26)-k100*n(21)*n(22);
k4*n(1)*n(37)+k5*n(2)*n(15)+k8*n(1)*n(15)+k24*n(4)*n(36)+k26*n(4)*n(26)+k27*n(4)*n(13)+k28*n(4)*n(35)+k29*n(4)*n(9)+k31*n(4)*n(14)+k32*n(4)*n(12)+2*k47*n(9)*n(15)+k49*n(9)*n(19)+k50*n(11)*n(15)+k54*n(15)*n(27)+k58*n(24)*n(37)+k65*n(1)*n(4)+k75*n(1)*n(23)+k83*n(4)*n(23)+k92*n(9)*n(23)+k96*n(15)*n(23)+k102*n(24)*n(23)+k139*n(1)*n(6)+k140*n(3)*n(4)-k13*n(1)*n(22)-k55*n(15)*n(22)-k79*n(5)*n(22)-k88*n(8)*n(22)-k100*n(21)*n(22)-k101*n(22)*n(27)-k130*n(22)*n(43)-k146*n(6)*n(22);
k7*n(2)*n(36)+k15*n(5)*n(9)+k33*n(4)*n(11)+k49*n(9)*n(19)+k50*n(11)*n(15)+k63*n(2)*n(4)+k67*n(1)*n(5)+k79*n(5)*n(22)+k88*n(8)*n(22)+k100*n(21)*n(22)+k101*n(22)*n(27)-k75*n(1)*n(23)-k83*n(4)*n(23)-k92*n(9)*n(23)-k96*n(15)*n(23)-k102*n(24)*n(23);
k20*n(4)*n(32)+k22*2*n(4)*n(30)+k23*n(4)*n(20)+k24*n(4)*n(36)+k25*n(4)*n(26)+k34*n(8)*n(15)+k35*n(7)*n(15)+k51*n(15)*n(37)+k106*n(3)*n(25)+k114*n(14)*n(25)+k115*n(12)*n(25)+k116*n(18)*n(25)+k147*n(6)*n(7)-k10*n(1)*n(24)-k14*n(3)*n(24)-k19*n(4)*n(24)-k37*n(7)*n(24)-k52*n(15)*n(24)-k57*2*n(24)*n(24)-k58*n(24)*n(37)-k72*n(2)*n(24)-k90*n(8)*n(24)-k94*n(11)*n(24)-k98*n(19)*n(24)-k102*n(24)*n(23)-k103*n(24)*n(27)-k131*n(24)*n(43)-k145*n(6)*n(24);
k6*n(2)*n(30)+k16*n(5)*n(26)+k17*n(5)*n(32)+k18*n(5)*n(20)+k30*n(4)*n(21)+k36*n(7)*n(19)+k54*n(15)*n(27)+k72*n(2)*n(24)+k90*n(8)*n(24)+k94*n(11)*n(24)+k98*n(19)*n(24)+k102*n(24)*n(23)+k103*n(24)*n(27)-k106*n(3)*n(25)-k114*n(14)*n(25)-k115*n(12)*n(25)-k116*n(18)*n(25);
k4*n(1)*n(37)+k6*n(2)*n(30)+k7*n(2)*n(36)+k10*n(1)*n(24)+k11*n(1)*n(20)+k12*n(1)*n(35)+k28*n(4)*n(35)+k41*n(7)*n(13)+k42*n(7)*n(14)+k43*n(7)*n(9)+k45*n(7)*n(11)+k46*2*n(7)*n(35)+k69*n(1)*n(7)+k73*n(1)*n(27)+k93*n(9)*n(27)+k101*n(22)*n(27)+k103*n(24)*n(27)+k112*n(8)*n(28)+k142*n(3)*n(7)+k164*n(7)*n(1)*n(1)-k9*n(1)*n(26)-k16*n(5)*n(26)-k25*n(4)*n(26)-k26*n(4)*n(26)-k39*n(7)*n(26)-k56*n(15)*n(26)-k85*n(6)*n(26)-k89*n(8)*n(26)-k99*n(21)*n(26);
k62*n(2)*n(7)+k89*n(8)*n(26)+k99*n(21)*n(26)-k40*n(7)*n(27)-k54*n(15)*n(27)-k73*n(1)*n(27)-k93*n(9)*n(27)-k101*n(22)*n(27)-k103*n(24)*n(27);
k14*n(3)*n(24)+k44*n(7)*n(12)+k85*n(6)*n(26)-k112*n(8)*n(28);
k163*n(1)*n(15)*n(4);
k38*n(7)*n(32)+k53*n(15)*n(20)+k58*n(24)*n(37)-k6*n(2)*n(30)-k21*n(4)*n(30)-k22*n(4)*n(30)-k80*n(5)*n(30);
k80*n(5)*n(30);
k52*n(15)*n(24)+k145*n(6)*n(24)-k17*n(5)*n(32)-k20*n(4)*n(32)-k38*n(7)*n(32)-k97*n(19)*n(32)-k165*n(1)*n(32)*n(4);
k97*n(19)*n(32);
k51*n(15)*n(37)+k55*n(15)*n(22)+k141*n(3)*n(15)+k146*n(6)*n(22);
-k12*n(1)*n(35)-k28*n(4)*n(35)-k46*n(7)*n(35);
-k7*n(2)*n(36)-k24*n(4)*n(36);
-k4*n(1)*n(37)-k51*n(15)*n(37)-k58*n(24)*n(37)+k56*n(15)*n(26);
k165*n(1)*n(32)*n(4);
k144*n(4)*n(12);
k64*n(1)*n(13)+k138*n(1)*n(14)+k148*n(9)*n(12);
k149*n(12)*n(13);
k118*n(1)*n(43)+k119*n(3)*n(43)+k120*n(6)*n(43)+k121*n(12)*n(43)+k123*n(12)*n(43)+k125*n(14)*n(43)+k127*n(18)*n(43)+k136*n(1)*n(3)+k137*n(1)*n(12)+k138*n(1)*n(14)+k139*n(1)*n(6)+k140*n(3)*n(4)+k141*n(3)*n(15)+k142*n(3)*n(7)+k143*n(4)*n(6)+k144*n(4)*n(12)+k145*n(6)*n(24)+k146*n(6)*n(22)+k147*n(6)*n(7)+k148*n(9)*n(12)+k149*n(12)*n(13)+k150*n(9)*n(42)+k151*n(15)*n(42)+k152*n(15)*n(42)+k153*n(10)*n(42)+k156*n(18)*n(15)+k157*n(18)*n(16)+k158*n(18)*n(17)+k159*n(20)*n(42)+2*k160*n(20)*n(42)-k1*n(2)*n(42)-k2*n(5)*n(42)-k3*n(8)*n(42)-k59*n(11)*n(42)-k60*n(21)*n(42)-k132*n(1)*n(42)-k133*n(4)*n(42)-k134*n(9)*n(42)-k135*n(13)*n(42)-k150*n(9)*n(42)-k151*n(15)*n(42)-k152*n(15)*n(42)-k153*n(10)*n(42)-k159*n(20)*n(42)-k160*n(20)*n(42)-k161*n(42)*n(4)*n(15)-k162*n(42)*n(4)*n(15);
-k118*n(1)*n(43)-k119*n(3)*n(43)-k120*n(6)*n(43)-k121*n(9)*n(43)-k122*n(11)*n(43)-k123*n(12)*n(43)-k124*n(13)*n(43)-k125*n(14)*n(43)-k126*n(15)*n(43)-k127*n(18)*n(43)-k128*n(19)*n(43)-k129*n(20)*n(43)-k130*n(22)*n(43)-k131*n(24)*n(43)+k1*n(2)*n(42)+k2*n(5)*n(42)+k3*n(8)*n(42)+k61*n(2)*n(1)+k62*n(2)*n(7)+k63*n(2)*n(4)+k64*n(1)*n(13)+k65*n(1)*n(4)+k66*n(1)*n(9)+k67*n(1)*n(5)+k68*n(1)*n(1)+k69*n(1)*n(7)+k70*n(4)*n(4)+k71*n(8)*n(7)+k132*n(1)*n(42)+k133*n(4)*n(42)+k134*n(9)*n(42)+k135*n(13)*n(42)]);
[t,n]= ode15s(F,[0:5e-12:1e-7],IC);
plot(t,n)
[IDA ERROR] IDASolve
At t = 0 and h = 4.76837e-021, the corrector convergence failed repeatedly
or with |h| = hmin.
error: IDASolve failed
error: called from
ode15s at line 315 column 22
conc at line 244 column 6

采纳的回答

Sulaymon Eshkabilov
Hi,
Don't specify the solver solution step here that enhances the solver's solution algorithm to adjust the step size. It is very important.
Here is the solution of your large ODE exercise:
...
OPTs = odeset('reltol', 1e-12, 'abstol', 1e-16, 'normcontrol', 'on', 'refine', 5); % ODE solver settings
[Time, SOL]=ode15s(F,[0, 1e-7],IC, OPTs); % NB: don't specify the step size that enhances the solver tools
loglog(Time,SOL), shg % log scale used to better visualize the computed solutions
Good luck.
  7 个评论
Sulaymon Eshkabilov
Another approach here is chnaging the solver type, try ode45, ode23tb, ode113 and see which one gives the solution in the shortest time.
Imene Yed
Imene Yed 2021-5-28
I've got this:
warning: Solving was not successful. The iterative integration loop exited
at time t = 0.000000 before the endpoint at tend = 0.001000 was reached. Thi
s may happen if the stepsize becomes too small. Try to reduce the value of '
InitialStep' and/or 'MaxStep' with the command 'odeset'.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Ordinary Differential Equations 的更多信息

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by