0
$\begingroup$

I want to solve the differential equations (shown below in the list 'eqs') analytically instead of numerical. Using NDSolve the following code works perfectly fine but using DSolve it doensn't. I haven't been able to figure out why

SOLVEPW[t0_, t1_] := Module[{}, 
EVL[t_] := 0.05 + Piecewise[{{3.95 (1 - Cos[2 Pi Mod[t, 1]/0.3])/2, Mod[t, 1] < 0.3}}];
  PVL[t] = EVL[t] (VVL[t] - VVL0);

  values = {CAR -> 1.5, RVL2AR -> 0.01, ZAR0 -> 0.03, VVL0 -> 80, 
    PW0 -> 120, RC -> 1.5};
  eqs = {CAR*
      PW'[t] == ((((PVL[t] - PW[t]))/(RVL2AR + ZAR0)) + ((1/
           RC)*(PW[t] - PVL[t]))), 
    VVL'[t] == -1*((PVL[t] - PW[t])/(RVL2AR + ZAR0))};

  rule = DSolve[{eqs, PW[0] == PW0, VVL[0] == VVL0} /. values, {PW[t],
       VVL[t]}, {t, t0, t1}] // Flatten;

  VVLt = VVL[t] /. rule;
  PWt = PW[t] /. rule;

  Plot[PWt, {t, t0, t1}]]

Manipulate[SOLVEPW[t0, t1], {{t0, 7}, 0, 30}, {{t1, 30}, 30, 100}]

Thank you!

$\endgroup$
  • 1
    $\begingroup$ Not every ODE has a simple analytic solution. Do you have any reason to believe that this one does? $\endgroup$ – Szabolcs Jun 3 at 12:14
  • 5
    $\begingroup$ Also, can you please remove all unnecessary parts of the code and focus on the problem? Please also change all inexact numbers (anything having a decimal point) to exact ones—symbolic manipulation functions tend not to like inexact numbers in Mathematica. See here for guidance: mathematica.meta.stackexchange.com/q/2126/12 $\endgroup$ – Szabolcs Jun 3 at 12:16
  • $\begingroup$ I believe that at least the first ODE has a symbolic solution, although DSolve may not be able to find it, due to the form of EVL. $\endgroup$ – bbgodfrey Jun 3 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.