python - 使用相关参数求解和绘制 ODE
问题描述
我正在编写一些代码,这里有以下方程组。问题是我非常想解决多个 k 值以及每个 k 值的相平面/颤动图。有人可以帮帮我吗?到目前为止,这是我为求解器所做的:
import numpy as np
import matplotlib.pyplot as plt
from scipy.integrate import odeint
def model(X, t):
x = X[0]
y = X[1]
dxdt = k*x - y
dydt = x + y
return [dxdt, dydt]
#Initial state
X0 = [1,1]
#Time
t = np.linspace(0,10)
X = odeint(model, X0, t)
这就是我到目前为止的绘图:
x = X[:,0]
y = X[:,1]
plt.plot(x,y)
请注意,我不是要简单地解决系统问题!我试图通过改变多个值(k)并绘制结果方程来解决它。
解决方案
通过更多的计算工作,您可以使用
xvalues, yvalues = np.meshgrid(np.arange(-2, 2, 0.02), np.arange(-2, 2, 0.02))
Ks = np.linspace(-1, 1, 12)
plt.subplots_adjust(hspace=0.4,wspace=0.4)
for j,kix in enumerate(Ks):
xdot, ydot = model([xvalues,yvalues],0 , kix)
plt.subplot(3,4,j+1)
plt.streamplot(xvalues, yvalues, xdot, ydot, density=0.5)
plt.title("k=%.2f"%kix)
plt.show()
要得到
推荐阅读
- c++ - c++20前后指定初始化不同行为
- berkeley-db - 为什么 Berkeley DB 在 CAP 定理中站在 CP 中?
- tensorflow2.0 - AttributeError: 'list' 对象没有属性 '_in_graph_mode' 发生在 optimizer.apply_gradients(grads_and_vars)
- sql - 如何使用用户输入作为参数编写查询以在 PostgreSQL 中创建表?
- python - 识别多个电子邮件文档中的重复段落(样板文件)
- java - 如何获取文件名以将其放入 webview DownloadListener 中的下载器文件
- python - 如何按某些标准过滤数据框,然后保存 .csv?
- swift - Swift 4 或 Swift 5 中的 UITextView 用户输入文本验证:限制 Swift 中的特定字符
- android - AndroidStudio 应用顶部的随机空格
- html - CSS 在具有自动列数的网格中显示无换行 DIV