2
$\begingroup$

Hopefully someone can help me with this problem. I'm running a fairly simple script that involves some matrix operations and ends with a fairly nasty system of differential equations:

h2 = {{0, -(Ω/2)}, {-(Ω/2), -k v + Δ}}

ρ = {{ρ11[t], ρ12[t]}, {ρ21[t], ρ22[t]}}

ρprime = -I (h2.ρ - ρ.h2) + {{1/2 γ ρ22[t], -γ ρ12[t]}, {-γ ρ21[t], -(1/2) γ ρ22[t]}}

replace3 = {Δ -> 0.1, γ -> 1, Ω -> 0.1, k -> 0.1}; 

p3 = DSolve[{ρ11'[t] == ρprime[[1, 1]], ρ12'[t] == ρprime[[1, 2]], 
             ρ21'[t] == ρprime[[2, 1]], ρ22'[t] == ρprime[[2, 2]], 
             ρ11[0] == 1, ρ22[0] == 0, ρ12[0] == 0, ρ21[0] == 0} /. replace3, 
            {ρ11[t], ρ12[t], ρ21[t], ρ22[t]}, {t}]

Basically, I'm trying to solve a system of four differential equations analytically, with one variable, v, left unassigned. It is very important that v not be assigned a value as this point in the script. However, when I run it, it gets stuck on the DSolve part and can't seem to do it. When I first assign v a value and then run it, the DSolve works fine. Is this system of equations simply to complicated to be solved analytically? Is there another way to do this?

$\endgroup$
5
  • 1
    $\begingroup$ Post code, not pictures of code. $\endgroup$ Jul 30, 2018 at 8:42
  • $\begingroup$ For some web browsers you can install an add-on that lets you format the Greek letters. See the answer to Additional useful buttons for our M.SE editor for information. $\endgroup$
    – LouisB
    Jul 30, 2018 at 9:36
  • $\begingroup$ You should be able to copy and paste the code directly from Mathematica. Please do that - nobody is going to copy your code down from the image :) $\endgroup$
    – Carl Lange
    Jul 30, 2018 at 11:35
  • $\begingroup$ Edit: Added code. $\endgroup$ Jul 30, 2018 at 21:36
  • $\begingroup$ You may be able to simplify the system by using the fact that $\rho_{11}+\rho_{22}$ is a constant and $\rho_{12}+\rho_{21}$ is another constant. The initial conditions provide the values of the constants. $\endgroup$
    – LouisB
    Jul 30, 2018 at 23:37

1 Answer 1

3
$\begingroup$

The problem can be solved with LaplaceTransform in about 10 seconds:

h2 = {{0, -Ω/2}, {-Ω/2, -k v + Δ}};
ρ = {{ρ11[t], ρ12[t]}, {ρ21[t], ρ22[t]}};
ρprime = -I (h2.ρ - ρ.h2) + {{1/2 γ ρ22[t], -γ ρ12[t]}, {-γ ρ21[t], -1/2 γ ρ22[t]}};
replace3 = {Δ -> 1/10, γ -> 1, Ω -> 1/10, k -> 1/10};

var = Flatten@ρ;

{eq, ic} = {D[var, t] == Flatten@ρprime // Thread, 
            var == {1, 0, 0, 0} /. t -> 0 // Thread} /. replace3

tvar = LaplaceTransform[var, t, s];
tsol = tvar /. First@Solve[LaplaceTransform[eq, t, s] /. Rule @@@ ic, tvar] // Simplify

(sol = InverseLaplaceTransform[tsol, s, t]) // AbsoluteTiming
(* {10.324655, ……} *)

The result involves Roots, if you don't like it, just add a ToRadicals.

$\endgroup$
9
  • $\begingroup$ would it be possible to use this method to implicitly plot the equation v=b-t ρ11[t] , where b is a constant and ρ11[t] is a solution to the system that depends on t and v? $\endgroup$ Apr 9, 2019 at 22:22
  • $\begingroup$ @CalebHorwitz It's another question that can be solved with ContourPlot, isn't it? $\endgroup$
    – xzczd
    Apr 10, 2019 at 3:19
  • $\begingroup$ I've tried running ρsol22 = Simplify[sol[[2, 2]], {v > 0, t > 0}]; followed by ContourPlot[v == 10^3 - t Re[ρsol22], {t, 0, 10}, {v, 0, 10^3}], but nothing comes up on the plot. Why? $\endgroup$ Jun 17, 2019 at 15:42
  • $\begingroup$ @CalebHorwitz Use e.g. {v, 0, 2 10^3} instead. $\endgroup$
    – xzczd
    Jun 17, 2019 at 15:57
  • $\begingroup$ in generalizing this script to higher dimensions, is there any way to speed up the computation? I tried using a similar method with 3x3 matrices, and it won't seem to finish. $\endgroup$ Sep 24, 2019 at 5:30

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.