Dette spørsmålet har allerede svar her :

Kommentarer

Svar

Du ga ikke numeriske verdier for noen av parametrene, så jeg fant på noen. For noen får du kanskje ikke løsninger, eller får en kompleks løsning, så det er noe du kan se på siden jeg ikke kjenner til fysikk s av 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] 

gir

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

Deretter kan du bruke funksjonen y[t]

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

skriv inn bildebeskrivelse her

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

etc …

Svar

Følger Nasser » s svar, her er en mindre variant:

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

etc. Merk at ODE beregnes bare én gang for hver parametervektor.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *