我有幾個微分方程,我想提請解決方案,適用於各種啓動值N_0
寫生解決方案曲線方程
下面是公式:
dN\dt= bN^2 - aN
dN\dt = bN^2 (1 - N\K) - aN
會如何我去了解它?
我並不在乎所使用的語言。在專用數學方面,我的電腦上有mathematica和matlab。我有機會獲得楓樹。我必須做更多這樣的事情,我想要從任何語言中得到例子,因爲它會幫助我弄清楚我想使用哪一個並學習它。
我有幾個微分方程,我想提請解決方案,適用於各種啓動值N_0
寫生解決方案曲線方程
下面是公式:
dN\dt= bN^2 - aN
dN\dt = bN^2 (1 - N\K) - aN
會如何我去了解它?
我並不在乎所使用的語言。在專用數學方面,我的電腦上有mathematica和matlab。我有機會獲得楓樹。我必須做更多這樣的事情,我想要從任何語言中得到例子,因爲它會幫助我弄清楚我想使用哪一個並學習它。
在數學您使用NDSolve(除非可以解析求解,在這種情況下,你使用DSolve所以,你的第一個公式我想:
b = 1.1; a = 2;
s = NDSolve[{n'[t] == b n[t]^2 - a n[t], n[0] == 1}, n, {t, 0, 10}];
Plot[Evaluate[n[t] /. s], {t, 1, 10}, PlotRange -> All]
我不知道是幹什麼用的a,b或N0,但我得到了這樣的結果:
我會假裝第一個分析不能解決,以顯示如何去玩數學中的一般ODE。
定義
p1[n0_, a_, b_, uplim_: 10] :=(n /. [email protected][
{n'[t] == b*n[t]^2 - a*n[t], n[0] == n0},n, {t, 0, uplim}]
它返回ODE的溶液,即,a = p1[.1, 2., 3.]
然後例如a[.3]
告訴你n(.3)
。然後可以做這樣的事情
Show[Table[ans = p1[n0, 1, 1];
Plot[ans[t], {t, 0, 10}, PlotRange \[Rule] Full],
{n0, 0, 1, .05}], PlotRange \[Rule] {{0, 5}, {0, 1}}]
圖表與不同的初始值幾個解決方案:
,或者獲得一些洞察解決方案,一個可以交互操作的a
值,b
和n0
:
Manipulate[
ans = p1[n0, a, b];
Plot[ans[t], {t, 0, 10},PlotRange -> {0, 1}],
{{n0, .1}, 0, 1},
{{a, 1}, 0, 2},
{{b, 1}, 0, 2}]
這給像
與活性對照(即你移動它們並改變情節;試試看看我的意思;請注意,您可以設置初始條件給出分歧解決方案的參數)。
當然,這可以任意更復雜。同樣在這種特殊情況下,這個ODE很容易進行分析整合,但是這種數值方法可以應用於通用ODE(也包括許多PDE)。
除了幾個很好的答案之外,如果您只是想快速勾畫ODE的許多初始值的解決方案,爲了指導,您可以始終執行一行StreamPlot
。假設a==1
和b==1
和dy/dx == x^2 - x
。
StreamPlot[{1, x^2 - x}, {x, -3, 3}, {y, -3, 3}]
StreamStyle -> "Line"
會給你剛剛行,沒有箭頭。
{a,b,N(0)}和{a,b,K,N(0)}是兩個大參數空間。你應該指定一個感興趣的區域。 (例如,第一個eq中的a == b)... –