Message Boards Message Boards

GROUPS:

Kernel quits while using DSolve[ ]?

Posted 3 months ago
809 Views
|
3 Replies
|
4 Total Likes
|

Why does my DSolve command does not solve the Non-linear ODEs?

Clear["Global`*"]

(*Parameters*)
length = 1.5;
width = 0.25;
height = 0.25;
area = width*height;
cforce = -400;
dforce = (500*(X1^2));
stress = 10*displacement'[X1] + 100000*displacement'[X1]^3;

DE1 = D[stress*area, X1] + dforce;
DE2 = 10*displacement'[X1] + 100000*displacement'[X1]^3 + 6400;

(* Solving for the Exact Displacement Function *)
solution = 
  DSolve[{DE1 == 0, displacement[0] == 0, DE2 == 0 /. X1 -> length}, 
   displacement[X1], X1];
displacement = displacement[X1] /. solution[[1]];
Print["The Exact Displacement Function of the Bar is"]
Print[displacement];
Print[Plot[{displacement}, {X1, 0, 1.5}, AspectRatio -> 0.4, 
   AxesLabel -> {"Bar Length (m)", "Axial Displacement (m)"}, 
   PlotLegends -> {"Exact Displacement of the Bar"}]];
Print["  "]
3 Replies

I tried with numerics with NDSolve the kernel shutdown looks like a bug on Mathematica 12.2.0

Maybe you can try:

    solution = 
     Block[{Integrate}, 
        DSolve[Rationalize[{DE1 == 0, displacement[0] == 0, 
            DE2 == 0 /. X1 -> length}, 0], 
          displacement[X1], {X1, 0, 3/2}] /. {Integrate -> 
           Inactive[Integrate]}] // Simplify // Activate

but answer is very complicated solution by InverseFunction and Integrals. I don't have time to solve this problem.

Regards M.I.

Thank for your help. Yes, I had also tried changing the code, as there are two DEs with one BC associated with each. But both the DEs are related, in a way creates a non-solvable loop, at least this is what it seems. There will be way to set up the problem differently, for it to be solved. I will work on this. Thanks

I reported the NDSolve crash as a bug.

Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract