2024-05-03 17:38:19 发布
网友
我试图为微分方程画一个方向场:
y' = -y(y-3)
输出应如下图所示:
我很困惑,我尝试过的一切都没有奏效。请帮忙,非常感谢
要为微分方程创建一个好看的箭头图,我们需要创建一个二维方向向量场。给定您共享的图像,我将假设dxdt = 1(或其他固定值)。这意味着使用完整的2d图形并不是严格地通过单个垂直箭头线传递任何信息,但它确实有助于说明t沿x轴的通过
dxdt = 1
t
首先创建一个x、y坐标的网格,将箭头放置在其中:
import numpy as np X, Y = np.meshgrid(np.arange(0, 5, .25), np.arange(-2, 5, .25))
然后计算U = dxdt和V = dydt作为每个箭头位置的方向向量分量:
U = dxdt
V = dydt
U = np.ones_like(X) #dxdt = 1 V = -Y * (Y - 3)
您可以停在这里,调用matplotlib.pyplot.quiver(X, Y, U, V)并获得一个合适的绘图,但您指出图形应该只显示方向,因此我们必须获取所有这些U,V向量,并将它们规格化为单位长度:
matplotlib.pyplot.quiver(X, Y, U, V)
U,V
magnitude = np.sqrt(U**2 + V**2) U = U/magnitude V = V/magnitude
现在我们绘制:
from matplotlib import pyplot as plt plt.quiver(X, Y, U, V) plt.show()
要为微分方程创建一个好看的箭头图,我们需要创建一个二维方向向量场。给定您共享的图像,我将假设
dxdt = 1
(或其他固定值)。这意味着使用完整的2d图形并不是严格地通过单个垂直箭头线传递任何信息,但它确实有助于说明t
沿x轴的通过首先创建一个x、y坐标的网格,将箭头放置在其中:
然后计算
U = dxdt
和V = dydt
作为每个箭头位置的方向向量分量:您可以停在这里,调用
matplotlib.pyplot.quiver(X, Y, U, V)
并获得一个合适的绘图,但您指出图形应该只显示方向,因此我们必须获取所有这些U,V
向量,并将它们规格化为单位长度:现在我们绘制:
相关问题 更多 >
编程相关推荐