Physikalische Dimensionen in Mathematica DSolve verwenden

  • Ich möchte ein System aus zwei Differentialgleichungen in Mathematica mit DSolve berechnen, beispielsweise:

     fx''[x] + a*fx[x] == -I*eta*fy''[x] - b*fy[x], ...
     

    wobei fx[x] und fy[x] unbekannte Funktionen sind. Mit DSolve kann ich leicht Lösungen vom Typ fx[x] = C[1]*cosh[x/L] + C[2]*a*sinh[x/L] finden, wobei L ein Begriff der Dimension von x ist.

    Das Problem ist, dass Die Parameter a und b in meinen Gleichungen haben physikalische Abmessungen (zB Meter). Bei der Analyse der Lösung haben die beiden Terme im Ergebnis unterschiedliche physikalische Dimensionen, was unsinnig ist. Eine andere Möglichkeit ist, dass Mathematica C[1] neu skaliert hat, so dass es schließlich die Dimension a*C[2] hat.

    Meine Frage ist: Kann ich irgendwie die physikalischen Dimensionen der Parameter steuern? (a,b) in den Differentialgleichungen oder den Konstanten C[1], C[2] im Ergebnis?

    20 February 2012
    Jon Galloway
1 answer
  • Es ist generell besser, zunächst mit dimensionslosen Einheiten zu arbeiten. In Ihrem Fall haben Ihre a und b Einheiten von $ L ^ {- 2} $, während eta dimensionslos ist. Am Beispiel von fx''[x] + a*fx[x] == -I*eta*fy''[x] - b*fy[x] können Sie $ \ xi = x / L $, $ \ alpha = aL ^ 2 $, $ \ beta = bL ^ 2 $ (alle jetzt dimensionslos) verwenden, woraufhin Ihre Differentialgleichung wird $ L ^ {- 2} \ left (\ partiell _ {\ xi, \ xi} F_x (\ xi) + \ alpha F_x (\ xi) + i \ eta \ partial _ {\ xi, \ xi} F_y ( \ xi) + \ beta F_y (\ xi) \ right) = 0 $, wobei ich $ F_x (\ xi) = f_x (x) $ und in ähnlicher Weise für $ y $ gesetzt habe. Das Lösen der Gleichung in Klammern ist das, was Sie wirklich tun sollten. Es können jetzt keine Probleme auftreten, die Sie oben erwähnt haben.

    Zusammenfassend sollte man fast immer auf dimensionslose Einheiten wechseln, bevor ein Problem numerisch gelöst wird.

    20 February 2012
    Rodrigo Sieiro