Skip to main content
Proofreading
Source Link
Michael E2
  • 258.7k
  • 21
  • 370
  • 830

Nice to have the ODEs and ICs separate, because it makes separate analyses easier:

Cases[eqLagrangeIIwSprgphaseIIst21, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[t], Derivative[1][tauP10st1st21plus][t], Derivative[2][tauP10st1st21plus][t], \[Beta][t], Derivative[1][\[Beta]][t], Derivative[2][\[Beta]][t], tauP10st1st21plus[0.5717686223842463]571769]} <-- N.B. *) Cases[{intercphaseIIst1st21tau}, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[0.571769], Derivative[1][tauP10st1st21plus][0.571769], β[0.571769], Derivative[1][β][0.571769]} *) 

We can see that the initial condition appears (partly) in the ODEs (first output above). Internal`ProcessEquations`SeparateEquations separates equations into differential, algebraic, and constraint (e.g. BCs) equations. So probably the appearance of β[t2] and β'[t2]tauP10st1st21plus[t2] in the ODEs causes the problem. It's easy to solve the ICs and substitute the solutions into the ODEs. Luckily, we can also solve the system for the leading derivatives so that we can avoid "EquationSimplification"->"Residual":

ndfazaIIst21Spr = NDSolve[{ Solve[eqLagrangeIIwSprgphaseIIst21, {tauP10st1st21plus''[t], β''[t]}] /. Rule -> Equal /. First@Solve[intercphaseIIst1st21tau, {tauP10st1st21plus[t2], tauP10st1st21plus'[t2], β[t2], β'[t2]}] , intercphaseIIst1st21tau}, {tauP10st1st21plus, β} , {t, t2, 1} (*,Method->{"EquationSimplification"->"Residual"}*)]; ndfazaIIst21Spr // Values // Flatten // ListLinePlot 

enter image description here

Nice to have the ODEs and ICs separate, because it makes separate analyses easier:

Cases[eqLagrangeIIwSprgphaseIIst21, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[t], Derivative[1][tauP10st1st21plus][t], Derivative[2][tauP10st1st21plus][t], \[Beta][t], Derivative[1][\[Beta]][t], Derivative[2][\[Beta]][t], tauP10st1st21plus[0.5717686223842463]} <-- N.B. *) Cases[{intercphaseIIst1st21tau}, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[0.571769], Derivative[1][tauP10st1st21plus][0.571769], β[0.571769], Derivative[1][β][0.571769]} *) 

We can see that the initial condition appears (partly) in the ODEs (first output above). Internal`ProcessEquations`SeparateEquations separates equations into differential, algebraic, and constraint (e.g. BCs) equations. So probably the appearance of β[t2] and β'[t2] in the ODEs causes the problem. It's easy to solve the ICs and substitute the solutions into the ODEs. Luckily, we can also solve the system for the leading derivatives so that we can avoid "EquationSimplification"->"Residual":

ndfazaIIst21Spr = NDSolve[{ Solve[eqLagrangeIIwSprgphaseIIst21, {tauP10st1st21plus''[t], β''[t]}] /. Rule -> Equal /. First@Solve[intercphaseIIst1st21tau, {tauP10st1st21plus[t2], tauP10st1st21plus'[t2], β[t2], β'[t2]}] , intercphaseIIst1st21tau}, {tauP10st1st21plus, β} , {t, t2, 1} (*,Method->{"EquationSimplification"->"Residual"}*)]; ndfazaIIst21Spr // Values // Flatten // ListLinePlot 

enter image description here

Nice to have the ODEs and ICs separate, because it makes separate analyses easier:

Cases[eqLagrangeIIwSprgphaseIIst21, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[t], Derivative[1][tauP10st1st21plus][t], Derivative[2][tauP10st1st21plus][t], \[Beta][t], Derivative[1][\[Beta]][t], Derivative[2][\[Beta]][t], tauP10st1st21plus[0.571769]} <-- N.B. *) Cases[{intercphaseIIst1st21tau}, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[0.571769], Derivative[1][tauP10st1st21plus][0.571769], β[0.571769], Derivative[1][β][0.571769]} *) 

We can see that the initial condition appears (partly) in the ODEs (first output above). Internal`ProcessEquations`SeparateEquations separates equations into differential, algebraic, and constraint (e.g. BCs) equations. So probably the appearance of tauP10st1st21plus[t2] in the ODEs causes the problem. It's easy to solve the ICs and substitute the solutions into the ODEs. Luckily, we can also solve the system for the leading derivatives so that we can avoid "EquationSimplification"->"Residual":

ndfazaIIst21Spr = NDSolve[{ Solve[eqLagrangeIIwSprgphaseIIst21, {tauP10st1st21plus''[t], β''[t]}] /. Rule -> Equal /. First@Solve[intercphaseIIst1st21tau, {tauP10st1st21plus[t2], tauP10st1st21plus'[t2], β[t2], β'[t2]}] , intercphaseIIst1st21tau}, {tauP10st1st21plus, β} , {t, t2, 1} (*,Method->{"EquationSimplification"->"Residual"}*)]; ndfazaIIst21Spr // Values // Flatten // ListLinePlot 

enter image description here

Source Link
Michael E2
  • 258.7k
  • 21
  • 370
  • 830

Nice to have the ODEs and ICs separate, because it makes separate analyses easier:

Cases[eqLagrangeIIwSprgphaseIIst21, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[t], Derivative[1][tauP10st1st21plus][t], Derivative[2][tauP10st1st21plus][t], \[Beta][t], Derivative[1][\[Beta]][t], Derivative[2][\[Beta]][t], tauP10st1st21plus[0.5717686223842463]} <-- N.B. *) Cases[{intercphaseIIst1st21tau}, Derivative[_][_][_] | tauP10st1st21plus[_] | β[_], Infinity] // DeleteDuplicates (* {tauP10st1st21plus[0.571769], Derivative[1][tauP10st1st21plus][0.571769], β[0.571769], Derivative[1][β][0.571769]} *) 

We can see that the initial condition appears (partly) in the ODEs (first output above). Internal`ProcessEquations`SeparateEquations separates equations into differential, algebraic, and constraint (e.g. BCs) equations. So probably the appearance of β[t2] and β'[t2] in the ODEs causes the problem. It's easy to solve the ICs and substitute the solutions into the ODEs. Luckily, we can also solve the system for the leading derivatives so that we can avoid "EquationSimplification"->"Residual":

ndfazaIIst21Spr = NDSolve[{ Solve[eqLagrangeIIwSprgphaseIIst21, {tauP10st1st21plus''[t], β''[t]}] /. Rule -> Equal /. First@Solve[intercphaseIIst1st21tau, {tauP10st1st21plus[t2], tauP10st1st21plus'[t2], β[t2], β'[t2]}] , intercphaseIIst1st21tau}, {tauP10st1st21plus, β} , {t, t2, 1} (*,Method->{"EquationSimplification"->"Residual"}*)]; ndfazaIIst21Spr // Values // Flatten // ListLinePlot 

enter image description here