Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Dsolve: assigning constants of integration and subscripts

  1. Nov 19, 2008 #1
    I have an equation I am solving with Mathematica:

    In:

    DSolve[y''[t] +
    Subscript[\[Omega], c]^2 y[
    t] == -Subscript[\[Omega], c]^2 Subscript[v, d]*t +
    Subscript[\[Omega], c]*Subscript[v, 0], y[t], t]

    Out:

    {{y[t] ->
    C[2] Cos[t Subscript[\[Omega], c]] +
    C[1] Sin[t Subscript[\[Omega], c]] + (
    Subscript[v, 0] - t Subscript[v, d] Subscript[\[Omega], c])/
    Subscript[\[Omega], c]}}



    I would like to replace the two constants of integration(C[1], C[2]) with two chosen variables

    If I include this with the DSolve command:

    {C[1] -> (Voy/omega), C[2] -> ((Voy-Vd)/omega)},

    it returns that I can not use these for variables.

    I have also found a GeneratedParameters-> function, but it does not work either,.. and if I'm correct, the GeneratedParameters-> Module{C[1], C[2]..&} function is only to ensure that C[] values are all unique, and does not change their representation.


    I am also wondering how to change the subscript of Vo into Voy, Mathematica is not letting me do this.

    Again, any help would be appreciated
    Thanks
     
  2. jcsd
  3. Nov 20, 2008 #2

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    You can replace the parameters all the way at the end:

    DSolve[ ..., y[t], t] /. {C[1] -> ..., C[2] -> ...}

    and that works well for me.

    When you type V0y Mathematica sees the subscript as an expression, and replaces 0*y by 0 (which is usually very handy, but not what you want now). You can use o (letter oh) instead of 0 (number zero) in the subscript, or put it in a string: V"y,0".
     
  4. Nov 20, 2008 #3

    Dale

    Staff: Mentor

    Or you can use

    GeneratedParameters -> ((Voy - (# - 1) Vd)/omega &)
     
  5. Nov 20, 2008 #4

    CompuChip

    User Avatar
    Science Advisor
    Homework Helper

    And of course the neatest solution is to just get them from the equation by plugging in the right boundary conditions:

    DSolve[{equation, y'[0] == v0y, y[0] = 0}, y[t], t]

    or something like that.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?