如何知道绘图的方程式?
How to know the equation of the plot graphs?
我绘制了一阶非线性微分方程。
但我不知道如何知道地块的方程式。
请原谅我的无知
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import math
def dy_dx(y,x,z):
c_1 = 5.0 / (1.38 * 1223.0 * pow(10.0, 28.0)*pow(z,3.0))
c_2 = pow(10.0, 5.0)
return c_1 * ( y/math.sqrt(1.0+pow(y, 2.0)) ) * ( ((1.0-pow(y, 3.0))/(z* pow(y,(1.0/3.0)))) - (y * c_2) )
xs = np.linspace(0, pow(10.0, 12.0), pow(10.0, 6.0))
y_0 = 1.0
z = 0.00001
y1 = odeint(dy_dx, y_0, xs, args=(z,))
z = 0.000015
y2 = odeint(dy_dx, y_0, xs, args=(z,))
y1 = np.array(y1).flatten()
y2 = np.array(y2).flatten()
plt.rcParams.update({'font.size': 10})
plt.ylim(0,1.0)
plt.xlabel("x")
plt.ylabel("y")
plt.plot(xs, y1, 'r-')
plt.plot(xs, y2, 'b-')
plt.grid(True)
plt.show()
任何符号解都不太可能存在,右边有三次方和三次方根。定性行为的相关因素是
y^(2/3)*(1-y^3-c2*z*y^(4/3))
剩下的是正的非零因子。一维动态非常简单,右边的根是平衡位置,中间的符号告诉你那个区间的解是下降还是增长。
在 y=0
你可以有类似于 y'=C*y^(2/3)
的解决方案分支,因为那里的函数不是本地 Lipschitz。
多项式u^9+a*u^4-1=0
、a=c_2*z
恰好有一个正根u_ast
、y_equi=u_ast^3
,对于小的a
是接近的到u=1
(下一个近似值u=1/(1+a)^(1/4)~1/(1+a/4)
),对于接近u=a^(-1/4)
、y=a^(-3/4)
的大a
;和零个或两个负根。由于 ODE 的右侧在超过 y_equi
时从正变为负,这是一个稳定的平衡。
在您使用 c2=1e5
和 z=1e-5
或 z=1.5e-5
的示例中,一个人得到 a=1
或 a=1.5
中间值定理告诉我们知道在 0 和 1 之间有一个根,第一种情况是 u_ast=0.89345331
和 y_equi=0.71320698
,第二种情况是 u_ast=0.84759991
和 y_equi=0.60893748
。这正是您在情节中看到的。
这就是您希望从这个等式中提取正数的所有理论内容 y
。
我绘制了一阶非线性微分方程。 但我不知道如何知道地块的方程式。 请原谅我的无知
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
import math
def dy_dx(y,x,z):
c_1 = 5.0 / (1.38 * 1223.0 * pow(10.0, 28.0)*pow(z,3.0))
c_2 = pow(10.0, 5.0)
return c_1 * ( y/math.sqrt(1.0+pow(y, 2.0)) ) * ( ((1.0-pow(y, 3.0))/(z* pow(y,(1.0/3.0)))) - (y * c_2) )
xs = np.linspace(0, pow(10.0, 12.0), pow(10.0, 6.0))
y_0 = 1.0
z = 0.00001
y1 = odeint(dy_dx, y_0, xs, args=(z,))
z = 0.000015
y2 = odeint(dy_dx, y_0, xs, args=(z,))
y1 = np.array(y1).flatten()
y2 = np.array(y2).flatten()
plt.rcParams.update({'font.size': 10})
plt.ylim(0,1.0)
plt.xlabel("x")
plt.ylabel("y")
plt.plot(xs, y1, 'r-')
plt.plot(xs, y2, 'b-')
plt.grid(True)
plt.show()
任何符号解都不太可能存在,右边有三次方和三次方根。定性行为的相关因素是
y^(2/3)*(1-y^3-c2*z*y^(4/3))
剩下的是正的非零因子。一维动态非常简单,右边的根是平衡位置,中间的符号告诉你那个区间的解是下降还是增长。
在
y=0
你可以有类似于y'=C*y^(2/3)
的解决方案分支,因为那里的函数不是本地 Lipschitz。多项式
u^9+a*u^4-1=0
、a=c_2*z
恰好有一个正根u_ast
、y_equi=u_ast^3
,对于小的a
是接近的到u=1
(下一个近似值u=1/(1+a)^(1/4)~1/(1+a/4)
),对于接近u=a^(-1/4)
、y=a^(-3/4)
的大a
;和零个或两个负根。由于 ODE 的右侧在超过y_equi
时从正变为负,这是一个稳定的平衡。在您使用
c2=1e5
和z=1e-5
或z=1.5e-5
的示例中,一个人得到a=1
或a=1.5
中间值定理告诉我们知道在 0 和 1 之间有一个根,第一种情况是u_ast=0.89345331
和y_equi=0.71320698
,第二种情况是u_ast=0.84759991
和y_equi=0.60893748
。这正是您在情节中看到的。
这就是您希望从这个等式中提取正数的所有理论内容 y
。