找回密码
 快速注册
搜索
查看: 47|回复: 3

作出微分方程的线素场

[复制链接]

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

hbghlyj 发表于 2023-1-17 00:30 |阅读模式
本帖最后由 hbghlyj 于 2023-1-21 15:10 编辑 习题1-2,1,(1)
做出如下微分方程的线素场:$y'=\frac{xy}{|xy|}$.
当 $x,y$ 同号时,$y'=1$,当 $x,y$ 异号时,$y'=-1$.因此可做线素场如下:

显然该微分方程的奇异点都在横纵坐标轴上.

习题1-2,1,(2)
作出如下微分方程的线素场:$y'=(y-1)^2$.
我们先求线素场的等斜线.令 $y'=(y-1)^2=k$,则
\begin{equation}
  \label{eq:3.09pm}
  y=\pm\sqrt{k}+1.
\end{equation}
这说明线素斜率为 $k$ 的所有点,都是由直线 $y=\pm\sqrt{k}+1$ 组成的.当$y>1$ 时,随着 $y$ 的增大,$y'$ 随之增大的速度更快,且 $y'$ 保持正.当$0<y<1$ 时,随着 $y$ 的增大,$y'$ 随之减小,但是 $y'$ 仍然为正.且 $y'\in(0,1)$.当 $y<0$ 时,随着 $y$ 的减小,$y'$ 却随之增大,且增大速度比 $y$ 的减小速度快.
用 Matlab 作图:
  1. [x,y]=meshgrid(-3:.5:3,-3:.5:3);
  2. dy=(y-1).^2;
  3. dx=ones(size(dy));
  4. dyu=dy./sqrt(dy.^2+dx.^2);
  5. dxu=dx./sqrt(dy.^2+dx.^2);
  6. quiver(x,y,dxu,dyu,'ShowArrowHead','off')
复制代码
untitled.png
显然,该方程没有奇点.

习题1-2,(3)
作出如下微分方程的线素场:$y'=x^2+y^2$.  
我们先做出线素场的等斜线.令
$$
y'=x^2+y^2=k,
$$
则可得斜率为 $k$ 的所有点组成以原点为圆心的,半径为 $\sqrt{k}$ 的圆.当
圆的半径越来越大时,那些点的斜率以快的多的速度增长.
用 Matlab 画图
  1. [x,y]=meshgrid(-3:.5:3,-3:.5:3);
  2. dy=x.^2+y.^2;
  3. dx=ones(size(dy));
  4. dyu=dy./sqrt(dy.^2+dx.^2);
  5. dxu=dx./sqrt(dy.^2+dx.^2);
  6. quiver(x,y,dxu,dyu,'ShowArrowHead','off')
复制代码
untitled.png

习题1-2,2,(1)
利用线素场研究微分方程 $y'=1+xy$  的积分曲线族.
该微分方程的线素场的等斜线是
$$
y'=1+xy=k.
$$
得到
$$
xy=k-1.
$$
当 $k=1$ 时,$x=0$ 或 $y=0$ 是等斜线,积分曲线位于 $x=0,y=0$ 上的点的斜率都为1.
用 Matlab 画线素场:
  1. [x,y]=meshgrid(-3:.5:3,-3:.5:3);
  2. dy=1+x.*y;
  3. dx=ones(size(dy));
  4. dyu=dy./sqrt(dy.^2+dx.^2);
  5. dxu=dx./sqrt(dy.^2+dx.^2);
  6. quiver(x,y,dxu,dyu,'ShowArrowHead','off')
复制代码
untitled.png

该微分方程没有奇点.

习题1-2,2,(2)
利用线素场研究微分方程 $y'=x^2-y^2$ 的积分曲线族.
先求该微分方程的等斜线.令
$$
y'=x^2-y^2=k,
$$
其中 $k$ 是常数.当 $k=0$ 时,得到等斜线 $x=\pm y$,可见,等斜线 $x=y$ 和 $x=-y$ 上的点斜率都为 0.当 $k>0$ 时,等斜线(双曲线)$x^2-y^2=k$ 的极径是沿着横坐标方向的,当 $k<0$ 时,等斜线(双曲线) $x^2-y^2=k$ 的极径是沿着纵坐标方向的.
用 Matlab 画出线素场:
  1. [x,y]=meshgrid(-3:.5:3,-3:.5:3);
  2. dy=x.^2-y.^2;
  3. dx=ones(size(dy));
  4. dyu=dy./sqrt(dy.^2+dx.^2);
  5. dxu=dx./sqrt(dy.^2+dx.^2);
  6. quiver(x,y,dxu,dyu,'ShowArrowHead','off')
复制代码
untitled.png
该微分方程没有奇点.

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2023-1-17 00:44
本帖最后由 hbghlyj 于 2023-1-21 15:06 编辑 

点评

线素场不是相空间, 不能加箭头  发表于 2023-1-17 13:38

3149

主题

8387

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65397
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2023-1-21 21:56

已更新1楼

Czhang271828 发表于  2023-1-17 06:38
线素场不是相空间, 不能加箭头

Matlab参考资料 quiver
'ShowArrowHead' — Arrowhead display

Arrowhead display, specified as 'on' or 'off', or as numeric or logical 1 (true) or 0 (false). A value of 'on' is equivalent to true, and 'off' is equivalent to false. Thus, you can use the value of this property as a logical value. The value is stored as an on/off logical value of type matlab.lang.OnOffSwitchState.

'on' — Display the vectors with arrowheads.
'off' — Display the vectors without arrowheads.

PS、希望“点评”也能有“回复”按钮{:smile:}

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 18:04

Powered by Discuz!

× 快速回复 返回顶部 返回列表