在 MATLAB 中绘制斜率场
Mehak Mubarik
2024年2月15日
MATLAB
MATLAB Slope Field
包含函数和相应函数的导数的等式方程构成 (ODE) 常微分方程。
我们使用斜率字段来阐明我们的微分方程的概念。我们也称 slope 字段为 direction 字段。
在 MATLAB 中使用 slope_field() 函数绘制一阶普通微分方程的斜率场
slope_field() 函数包含三个参数。第一个参数是我们正在处理的 f 函数带有 x 和 y 参数的方程。
第二个参数是我们的 x 参数所在的最小和最大限制。第三个参数是我们的 y 参数所在的最小和最大限制。
这些限制通常称为 x 和 y 域。函数 slope_field() 帮助我们绘制方程的斜率场,同时返回我们场的图形句柄。
假设,我们的差分方程是:
$$
\frac {dy} {dx} = \frac {3y} {1-2x}
$$
我们将 x 的域设置为 [-1,12],将 y 设置为 [-4, 5]。
这意味着我们的函数是 f(x,y) = 3y/(1-2x)。
f = @(x,y) 3*y/(1-2*x);
figure;
slope_field(f,[-1,12],[-4,5]);
xlabel('$x$','interpreter','latex','fontsize',17);
ylabel('$y$','interpreter','latex','fontsize',17);
title('Slope Field for $\displaystyle\frac{dy}{dx}=\frac{3y}{1-2x}$',...
'interpreter','latex','fontsize',17);
输出:

在这个例子中,我们使用了默认设置的 slope_field() 函数,并可视化了我们想要的微分方程的斜率场。
在 MATLAB 中使用 quiver() 函数绘制一阶普通微分方程的斜场
函数 quiver() 包含四个参数:
- X 坐标
- Y 坐标
- 由 U 表示的 X 坐标的方向分量。
- 由 V 表示的 Y 坐标的方向分量。
该函数以箭头形式返回坡度场的图形表示,其坐标为 X 和 Y,方向分量为 U 和 V。
假设,我们的微分方程是:
$$
\frac {dx} {dt} = x^5+6xy-3y
$$
$$
\frac {dy} {dt} = -8x+sin\left(2yx\right)
$$
[x,y] = meshgrid(-3:0.1:3);
dx = x.^5+6*x.*y-3*y;
dy = -8*x+sin(2*x.*y);
r = ( dx.^2 + dy.^2 ).^0.5;
px = dx./r;
py = dy./r;
quiver(x,y,px,py);
输出:

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
作者: Mehak Mubarik
Mehak is an electrical engineer, a technical content writer, a team collaborator and a digital marketing enthusiast. She loves sketching and playing table tennis. Nature is what attracts her the most.
LinkedIn