我有以下四个功能
u_h = u_h(J_l, J_h)
u_l = u_l(J_l, J_h)
J_l = J_l(u_h, u_l)
J_h = J_h(u_h, u_l)
如果你愿意,让u = [u_l, u_h]
,和J = [J_l, J_h]
。然后通过两个向量值函数u
,J
来定义由上述方程定义的系统的稳态:
同样,我需要检查J(u(J_0)) = J
。在
这是一个概念性的问题,这些函数背后的代码并不是真的可以简化的,因此有一个合理的工作示例是值得的。在
以下是我目前所做的:
# create a grid for test-values u
u = np.linspace(0.0001, 0.3, 200)
GridUL, GridUH = np.meshgrid(u, u, indexing='ij')
# J = [JL, JH] would be what I called "J" previously
JL = JSteadyState(GridUL, GridUH, thisType='low')
JH = JSteadyState(GridUL, GridUH, thisType='high')
UL2, UH2 = uSteadyState(JL, Param), uSteadyState(JH, Param)
# check for fixed points in both variables
err = 1e-3
fixedPointL = abs(UL2-GridUL) < err
fixedPointH = abs(UH2-GridUH) < err
fixedPointH & fixedPointH
我怎样才能有效地检查UL2
,UH2
与{GridUH
来找到不动点(复数)?在
到目前为止,我的方法很大程度上依赖于尝试和错误以及网格大小。scipy.optimize.root
似乎集中在简单的根上,而不是更复杂的不动点问题。我可以把不动点问题写成根问题,但我认为这样做效率很低。我应该如何处理这个问题?在
您可以尝试使用scipy.optimize.fixed_point:
但是请注意,这并没有将}限制到域{},因此这可能会或可能不会找到不动点,具体取决于
你的函数
x
和{JSteadyState
和uSteadyState
的光滑性和 初步猜测。在相关问题 更多 >
编程相关推荐