Tähän kysymykseen on jo annettu vastauksia :
Kommentit
- @belisarius …! # @ * (& @ # ^%
- @ rm-rf Tarvitsetko apua?
- Tarvitset nimenomaisesti vastauksen linkitettyyn kysymykseen sellaisten funktioiden tuloksen käyttäminen, jotka palauttavat korvaussäännöt .
- Katso myös: mathematica.stackexchange.com/q/9035/5
vastaus
Et antanut numeerisia arvoja joillekin parametreille, joten tein niistä. Joillekin et ehkä saa ratkaisuja tai saat monimutkaisia ratkaisuja, joten voit tutkia tätä, koska en tiedä fyysinen s.
Clear[x, t, b, varx, m, v0x]; y[t_] = x[t] /. First@DSolve[{b varx^2 - 2 b varx x"[t] + b x"[t]^2 + m x""[t] == 0, x[0] == x0, x"[0] == v0x}, x[t], t]
antaa
(b t varx - m Log[m/(v0x - varx)] + m Log[b t - m/(-v0x + varx)])/b
Sitten voit käyttää toimintoa y[t]
parms = {b -> 1, varx -> 2, m -> 1, x0 -> 1, v0x -> 0}; Plot[y[t] /. parms, {t, 0, 1}]
D[y[t] /. parms, t] Out[48]= 2 + 1/(-(1/2) + t)
jne. …
Vastaa
Nasserin seuraaminen ” Vastaus, tässä on pieni muunnelma:
x[tt_, {b_, varx_, m_, x0_, v0x_}] := Module[{}, x[t_, {b, varx, m, x0, v0x}] = Block[{x, t}, x[t] /. First@ DSolve[{b varx^2 - 2 b varx x"[t] + b x"[t]^2 + m x""[t] == 0, x[0] == x0, x"[0] == v0x}, x[t], t] ]; x[tt, {b, varx, m, x0, v0x}] ]
Sitten voit arvioida sen seuraavasti:
parms = {1, 2, 1, 1, 0}; x[4, parms] Plot[x[t, parms], {t, 0, 1}]
jne. Huomaa, että ODE lasketaan vain kerran kullekin parametrivektorille.