0
$\begingroup$

How to rectify the error occurred in solving differential equation? Such as Indeterminate expression 0.` Complex Infinity encountered and also want to use rangakutta method to solve this issue?

g1 = 1;
g = 1;
K1 = .5;
\[Omega]1 = .5; \[Alpha] = \[Pi]/3; T = 1; x0 = 1;
sol1x1xx = 
 NDSolve[{x1'[t] == 
 g1*Sqrt[10 x1[t]] Sin[
    x2[t]] (-0.5*Abs[x4[t]]^2*Cos[\[Alpha]] + 
     0.5*Conjugate[x3[t]]*x4[t]*Sin[\[Alpha]] + 
     0.5*Abs[x3[t]]^2*Cos[\[Alpha]] + 
     0.5*Conjugate[x4[t]]*x3[t]*Sin[\[Alpha]]) - 
  K1 Sin[x2[t]]*
   Sum[Sin[(1000 + 0.5)*(t - n)]/((2 Pi) Sin[(t - n x0)/2]), {n, 
     1, 10}], 
x2'[t] == (-g1/Sqrt[0.4*x1[t]]) Cos[
    x2[t]] (-0.5*Abs[x4[t]]^2*Cos[\[Alpha]] + 
     0.5*Conjugate[x3[t]]*x4[t]*Sin[\[Alpha]] + 
     0.5*Abs[x3[t]]^2*Cos[\[Alpha]] + 
     0.5*Conjugate[x4[t]]*x3[t]*Sin[\[Alpha]]) + x1[t], 
x3'[t] == ((-I*(x3[
         t] (0.5 \[Omega]1 + 
          0.5 g Sqrt[10 x1[t]] Cos[x2[t]]*Cos[\[Alpha]]) + 
       0.5 x4[t] g Sqrt[10 x1[t]] Cos[x2[t]]*Sin[\[Alpha]]))/
   Sqrt[(Abs[x3[t]]^2 + Abs[x4[t]]^2)]), 
x4'[t] == ((-I*(x4[
         t] (-0.5 \[Omega]1 - 
          0.5 g Sqrt[10 x1[t]] Cos[x2[t]]*Cos[\[Alpha]]) + 
       0.5 x3[t] g Sqrt[10 x1[t]] Cos[x2[t]]*Sin[\[Alpha]]))/
   Sqrt[(Abs[x3[t]]^2 + Abs[x4[t]]^2)]), x1[0] == N[\[Pi]/20], 
x2[0] == 0, x3[0] == 0, x4[0] == 1}, {x1, x2, x3, x4}, {t, 0, 
2 Pi}, Method -> "ExplicitEuler", StartingStepSize -> 0.0002, 
MaxSteps -> 10^6];
Plot[Evaluate[Abs[{x1[t], x2[t], x3[t], x4[t]}] /. sol1x1xx[[1]]], {t,
0.1, 2 Pi}, PlotLegends -> {x1, x2, x3, x4}, PlotRange -> All, 
PlotLabel -> Row[{"K1 = ", K1, "g1 = ", g1}], AxesLabel -> Automatic,
PlotRange -> All]
$\endgroup$
3
  • $\begingroup$ Your code runs without problems for me. I have MMA version 12.1. Did you try with a new kernel? $\endgroup$ Commented May 18, 2021 at 20:17
  • $\begingroup$ g=0 it is giving an error. $\endgroup$
    – user68207
    Commented May 19, 2021 at 5:02
  • $\begingroup$ Even with g=0 it runs with MMA version 12.1 as you can see below $\endgroup$ Commented May 19, 2021 at 8:27

1 Answer 1

2
$\begingroup$
Clear["Globals`*"]
g1 = 1;
g = 0;
K1 = .5;
\[Omega]1 = .5; \[Alpha] = \[Pi]/3; T = 1; x0 = 1;
sol1x1xx = 
  NDSolve[{x1'[t] == 
     g1*Sqrt[10 x1[t]] Sin[
        x2[t]] (-0.5*Abs[x4[t]]^2*Cos[\[Alpha]] + 
         0.5*Conjugate[x3[t]]*x4[t]*Sin[\[Alpha]] + 
         0.5*Abs[x3[t]]^2*Cos[\[Alpha]] + 
         0.5*Conjugate[x4[t]]*x3[t]*Sin[\[Alpha]]) - 
      K1 Sin[x2[t]]*
       Sum[Sin[(1000 + 0.5)*(t - n)]/((2 Pi) Sin[(t - n x0)/2]), {n, 
         1, 10}], 
    x2'[t] == (-g1/Sqrt[0.4*x1[t]]) Cos[
        x2[t]] (-0.5*Abs[x4[t]]^2*Cos[\[Alpha]] + 
         0.5*Conjugate[x3[t]]*x4[t]*Sin[\[Alpha]] + 
         0.5*Abs[x3[t]]^2*Cos[\[Alpha]] + 
         0.5*Conjugate[x4[t]]*x3[t]*Sin[\[Alpha]]) + x1[t], 
    x3'[t] == ((-I*(x3[
             t] (0.5 \[Omega]1 + 
              0.5 g Sqrt[10 x1[t]] Cos[x2[t]]*Cos[\[Alpha]]) + 
           0.5 x4[t] g Sqrt[10 x1[t]] Cos[x2[t]]*Sin[\[Alpha]]))/
       Sqrt[(Abs[x3[t]]^2 + Abs[x4[t]]^2)]), 
    x4'[t] == ((-I*(x4[
             t] (-0.5 \[Omega]1 - 
              0.5 g Sqrt[10 x1[t]] Cos[x2[t]]*Cos[\[Alpha]]) + 
           0.5 x3[t] g Sqrt[10 x1[t]] Cos[x2[t]]*Sin[\[Alpha]]))/
       Sqrt[(Abs[x3[t]]^2 + Abs[x4[t]]^2)]), x1[0] == N[\[Pi]/20], 
    x2[0] == 0, x3[0] == 0, x4[0] == 1}, {x1, x2, x3, x4}, {t, 0, 
    2 Pi}, Method -> "ExplicitEuler", StartingStepSize -> 0.0002, 
   MaxSteps -> 10^6];
Plot[Evaluate[Abs[{x1[t], x2[t], x3[t], x4[t]}] /. sol1x1xx[[1]]], {t,
   0.1, 2 Pi}, PlotLegends -> {x1, x2, x3, x4}, PlotRange -> All, 
 PlotLabel -> Row[{"K1 = ", K1, "g1 = ", g1}], AxesLabel -> Automatic,
  PlotRange -> All]

enter image description here

$\endgroup$
4
  • $\begingroup$ If we put g1=0 and g=1 then it occurs complex infinity why is it so. $\endgroup$
    – user68207
    Commented May 19, 2021 at 8:01
  • $\begingroup$ I am using mathematica 11 and I am getting an error for g=0 case "Maximum number of 1000000 steps reached at the point t == \ 6.189534468092993". $\endgroup$
    – user68207
    Commented May 19, 2021 at 8:06
  • $\begingroup$ Version: 12.0.0 for Linux x86 (64-bit) also gives the error "Maximum number of 1000000 steps reached at the point t == 6.1613966595956065`." $\endgroup$
    – user49048
    Commented May 19, 2021 at 8:34
  • $\begingroup$ The solution for x1[t] diverges near t=1.1. A possible troublemaker is the term Sin[(1000 + 0.5)*(t - n)]/((2 Pi) Sin[(t - n x0)/2]) in the equation for x1. If t==n x0 it diverges. $\endgroup$ Commented May 19, 2021 at 8:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.