1
我正在求解一組微分方程,其中的係數由解決方案本身決定。這裏是一個小例子:如何找到想要的初始條件?
s = NDSolve[{M'[r] == a r^2, M[0] == 0}, M, r];
Plot[Evaluate[M[r] /. s], {r, 0, 1}]
其中a
通過要求M[r=1]=1
確定。一旦找到正確的a
,我就可以正常求解方程,並繪製M[r]
。在fortran中,我可以遍歷a
,直到滿足這樣的要求。我想知道如何用Mathematica來做到這一點,或者更好地做到這一點,而不是迭代,因爲它在Mathematica中非常耗時。
或者,如果你覺得上面的例子太傻了,原來這裏是問題:
s = NDSolve[{M'[r] == r^2 Exp[lnp[r]], lnp'[r] == - M[r]/r^2, M[0.01] == 0, lnp[0.01] == a}, {M, lnp}, {r, 0.01, 1}]
Plot[Evaluate[M[r] /. s], {r, 0.01, 1}]
其中a
被要求M[1]=1
確定。
謝謝!
查看'ParametricNDSolve'。 –
@ b.gatessucks:正是我想要的。謝謝! –