Dette spørgsmål har allerede svar her :

Kommentarer

Svar

Du gav ikke numeriske værdier for nogle af parametrene, så jeg lavede nogle. For nogle får du muligvis ikke løsninger eller får en kompleks løsning, så det er noget, du kan se på, da jeg ikke kender fysiske s af problemet.

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] 

giver

(b t varx - m Log[m/(v0x - varx)] + m Log[b t - m/(-v0x + varx)])/b 

Så kan du bruge funktionen y[t]

parms = {b -> 1, varx -> 2, m -> 1, x0 -> 1, v0x -> 0}; Plot[y[t] /. parms, {t, 0, 1}] 

indtast billedbeskrivelse her

D[y[t] /. parms, t] Out[48]= 2 + 1/(-(1/2) + t) 

osv …

Svar

Efter Nasser ” s svar, her er en mindre variation:

 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}] ] 

Så kan du evaluere det ved:

parms = {1, 2, 1, 1, 0}; x[4, parms] Plot[x[t, parms], {t, 0, 1}] 

osv. Bemærk, at ODE beregnes kun én gang for hver parametervektor.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *