非线性动力学笔C5.2线性系统的分类

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • C5 线性系统
    • C5.2 线性系统的分类
      • 例5.2.1
      • 例5.2.2
      • 例5.2.3
      • 例5.2.4
      • 例5.2.5
      • 不动点的分类
      • 例5.2.6
      • 例5.2.7


前言

提示:这里可以添加本文要记录的大概内容:

参考书《Nonlinear dynamics and chaos》 Steven H. Strogatz
本节重点Note第五章内容5.2线性系统的分类,图片来自于该书


C5 线性系统

C5.2 线性系统的分类

上一篇笔记中我们观察到了类似直线轨迹(straight-line trajectories):从坐标轴某一点开始的轨迹将永远保持在该轴上,并沿着坐标轴表现出简单的指数增长或衰减。
这种轨迹的形式如下:
x = e λ t v \mathbf{x} = e^{\lambda t} \mathbf{v} x=eλtv
其中 v ≠ 0 v \neq 0 v=0 是一些待确定的固定向量, λ \lambda λ 是一个待确定的增长率。如果这样的解存在,它们对应于沿着向量 v \mathbf{v} v 所张成的直线的运动.
我们可以将这样的解带入到原方程 x ˙ = A x \mathbf{\dot{x} =Ax} x˙=Ax,可以得到 λ e λ t v = e λ t A v \lambda e^{\lambda t} \mathbf{v} = e^{\lambda t} \mathbf{A} \mathbf{v} λeλtv=eλtAv化简可得:
x ( t ) = e λ t v \mathbf{x(t)} = e^{\lambda t} \mathbf{v} x(t)=eλtv
这表明如果 v \mathbf{v} v A \mathbf{A} A 的特征向量,并且对应于特征值 λ \lambda λ,则所需的直线解存在。在这种情况下,我们也将这样的解称为特征解.

下面回顾一下线性代数中的特征值求解:
矩阵 A \mathbf{A} A的特征值由特征方程 det ⁡ ( A − λ I ) = 0 \det(\mathbf{A} - \lambda \mathbf{I}) = 0 det(AλI)=0 给出,其中 I \mathbf{I} I 是单位矩阵.
假设 A = ( a b c d ) , \mathbf{A} = \begin{pmatrix} a & b \\ c & d \end{pmatrix}, A=(acbd),
则特征值方程为 det ⁡ ( a − λ b c d − λ ) = 0. \det \begin{pmatrix} a - \lambda & b \\ c & d - \lambda \end{pmatrix} = 0. det(aλcbdλ)=0.
其对应
λ 2 − τ λ + Δ = 0 \lambda^2 - \tau\lambda + \Delta = 0 λ2τλ+Δ=0
where
其中 τ = trace ( A ) = a + d \tau = \text{trace}(A) = a + d τ=trace(A)=a+d, Δ = det ⁡ ( A ) = a d − b c . \Delta = \det(A) = ad - bc. Δ=det(A)=adbc.
而最终的解为
λ 1 = τ + τ 2 − 4 Δ 2 , λ 2 = τ − τ 2 − 4 Δ 2 \lambda_1 = \frac{\tau + \sqrt{\tau^2 - 4\Delta}}{2}, \quad \lambda_2 = \frac{\tau - \sqrt{\tau^2 - 4\Delta}}{2} λ1=2τ+τ2 ,λ2=2ττ2
在这里插入图片描述
由于方程是线性的,我们可以得到给定初始条件 x 0 = c 1 v 1 + c 2 v 2 . \mathbf{x_0}= c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2. x0=c1v1+c2v2.,我们可以得到方程的解为:
x ( t ) = c 1 e λ 1 t v 1 + c 2 e λ 2 t v 2 . \mathbf{x}(t) = c_1 e^{\lambda_1 t} \mathbf{v}_1 + c_2 e^{\lambda_2 t} \mathbf{v}_2. x(t)=c1eλ1tv1+c2eλ2tv2.

例5.2.1

求解初值问题 x ˙ = x + y , y ˙ = 4 x − 2 y \dot{{x}} = {x} + {y}, \dot{{y}} = 4{x} - 2{y} x˙=x+y,y˙=4x2y,满足初始条件 ( x 0 , y 0 ) = ( 2 , − 3 ) (x_0, y_0) = (2, -3) (x0,y0)=(2,3).
解:相应的矩阵方程是
( x ˙ y ˙ ) = ( 1 1 4 − 2 ) ( x y ) . \begin{pmatrix} \dot{\mathbf{x}} \\ \dot{\mathbf{y}} \end{pmatrix} = \begin{pmatrix} 1 & 1 \\ 4 & -2 \end{pmatrix} \begin{pmatrix} \mathbf{x} \\ \mathbf{y} \end{pmatrix}. (x˙y˙)=(1412)(xy).

首先我们找到矩阵 A \mathbf{A} A 的特征值。矩阵有 τ = − 1 \tau = -1 τ=1 Δ = − 6 \Delta = -6 Δ=6,由此特征方程是 λ 2 + λ − 6 = 0 \lambda^2 + \lambda - 6 = 0 λ2+λ6=0. 我们可以得到
λ 1 = 2 , λ 2 = − 3. \lambda_1 = 2, \quad \lambda_2 = -3. λ1=2,λ2=3.
接下来需要确定特征向量,特征向量 v = ( v 1 , v 2 ) \mathbf{v} = (v_1, v_2) v=(v1,v2) 满足
( 1 − λ 1 4 − 2 − λ ) ( v 1 v 2 ) = ( 0 0 ) . \begin{pmatrix} 1-\lambda & 1 \\ 4 & -2-\lambda \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix}. (1λ412λ)(v1v2)=(00).
对于 λ 1 = 2 \lambda_1 = 2 λ1=2,这得到
( − 1 1 4 − 4 ) ( v 1 v 2 ) = ( 0 0 ) \begin{pmatrix} -1 & 1 \\ 4 & -4 \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} (1414)(v1v2)=(00)
它有一个非平凡解(non-trival) ( v 1 , v 2 ) = ( 1 , 1 ) (v_1, v_2) = (1, 1) (v1,v2)=(1,1),或其 c c c(标量)倍。同样,对于 λ 2 = − 3 \lambda_2 = -3 λ2=3,特征向量方程变为
( 4 1 4 1 ) ( v 1 v 2 ) = ( 0 0 ) \begin{pmatrix} 4 & 1 \\ 4 & 1 \end{pmatrix} \begin{pmatrix} v_1 \\ v_2 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \end{pmatrix} (4411)(v1v2)=(00)
它有一个非平凡解 ( v 1 , v 2 ) = ( 1 , − 4 ) (v_1, v_2) = (1, -4) (v1,v2)=(1,4)。因此特征向量为,
v 1 = ( 1 1 ) , v 2 = ( 1 − 4 ) . \mathbf{v}_1 = \begin{pmatrix} 1 \\ 1 \end{pmatrix}, \quad \mathbf{v}_2 = \begin{pmatrix} 1 \\ -4 \end{pmatrix}. v1=(11),v2=(14).
通过线性组合得到的一般解是
x ( t ) = c 1 ( 1 1 ) e 2 t + c 2 ( 1 − 4 ) e − 3 t . \mathbf{x}(t) = c_1 \begin{pmatrix} 1 \\ 1 \end{pmatrix} e^{2t} + c_2 \begin{pmatrix} 1 \\ -4 \end{pmatrix} e^{-3t}. x(t)=c1(11)e2t+c2(14)e3t.
最后,我们计算 c 1 c_1 c1 c 2 c_2 c2 来满足初始条件 ( x 0 , y 0 ) = ( 2 , − 3 ) (x_0, y_0) = (2, -3) (x0,y0)=(2,3). 最终我们可以解得如下方程:
x ( t ) = e 2 t + e − 3 t y ( t ) = e 2 t − 4 e − 3 t x(t) = e^{2t} + e^{-3t} \\ y(t) = e^{2t} - 4e^{-3t} x(t)=e2t+e3ty(t)=e2t4e3t

例5.2.2

画出5.2.1问题中的相图

由于两个特征值一个为 λ 1 = 2 \lambda_1=2 λ1=2,还有一个为 λ 2 = − 3 \lambda_2=-3 λ2=3,因此第一个解会指数增加,第二个解会衰减. 此时原点为鞍点(saddle point),此时由向量 v 2 = ( 1 , − 4 ) \mathbf{v_2 }= (1, -4) v2=(1,4)张成的稳定流形对应衰减的特征解. 而不稳定的流形则由 v 2 = ( 1 , − 4 ) \mathbf{v_2 }= (1, -4) v2=(1,4)张成. 由此我们可以画出如下相图:
在这里插入图片描述

例5.2.3

绘制 λ 2 < λ 1 < 0 \lambda_2 < \lambda_1 < 0 λ2<λ1<0情况下的典型相图。
在这里插入图片描述

此时两个特征解都呈指数衰减,轨迹通常沿着慢特征方向(slow eigendirection)接近原点,该方向定义为由具有较小 ∣ λ ∣ |\lambda| λ 的特征向量(此处为 λ 1 \lambda_1 λ1)所张成的方向. 注意,如果将时间反向,即 ( t → − ∞ (t \to -\infty (t)中,轨迹变得与快特征方向平行。

例5.2.4

当特征值为复数时我们能观察到什么?

如果特征值为复数,则不动点只有可能是一个中心(center)或者螺旋(spiral). 在5.1简谐振子的情况我们已经看到了圆心可以被闭合轨道所包围. 注意,这里中心是中性稳定的(neutrally stable),因此它不会吸引或排斥其他轨迹. 如果谐振子受到轻微的阻尼则会出现螺旋(spiral),那么轨迹就难以闭合,因为谐振子会逐渐在运动过程中损失能量.
在这里插入图片描述
下面我们通过来解释刚刚的结论,特征值表达式如下:
λ 1 , 2 = 1 2 ( τ ± τ 2 − 4 Δ ) . \lambda_{1,2} = \frac{1}{2} \left( \tau \pm \sqrt{\tau^2 - 4\Delta} \right). λ1,2=21(τ±τ2 ).
而复数根出现的条件为:
τ 2 − 4 Δ < 0 \tau^2 - 4\Delta < 0 τ2<0
此时我们可以得到如下两个解:
λ 1 , 2 = α ± i ω \lambda_{1,2} = \alpha \pm i\omega λ1,2=α±
其中 α = τ 2 , ω = 1 2 4 Δ − τ 2 . \alpha = \frac{\tau}{2}, \quad \omega = \frac{1}{2} \sqrt{4\Delta - \tau^2}. α=2τ,ω=21τ2 .
而一般解的形式为:
x ( t ) = c 1 e λ 1 t v 1 + c 2 e λ 2 t v 2 . \mathbf{x}(t) = c_1 e^{\lambda_1 t} \mathbf{v}_1 + c_2 e^{\lambda_2 t} \mathbf{v}_2. x(t)=c1eλ1tv1+c2eλ2tv2.
但现在因为 λ \lambda λ 是复数,所以 c c c v \mathbf{v} v 也是复数. 因此 x ( t ) \mathbf{x}(t) x(t) 包含 e ( α ± i ω ) t e^{(\alpha \pm i\omega)t} e(α±)t 的线性组合。根据欧拉公式, e i ω t = cos ⁡ ω t + i sin ⁡ ω t e^{i\omega t} = \cos\omega t + i\sin\omega t et=cosωt+isinωt. 因此 x ( t ) \mathbf{x}(t) x(t)是涉及 e α t cos ⁡ ω t e^{\alpha t} \cos\omega t eαtcosωt e α t sin ⁡ ω t e^{\alpha t} \sin\omega t eαtsinωt 的项的组合。如果 α = Re ( λ ) < 0 \alpha = \text{Re}(\lambda) < 0 α=Re(λ)<0,这些项表示振荡过程中呈指数衰减,这对应稳定的不动点,如果 α > 0 \alpha > 0 α>0,则表示振荡过程指数增长,这对应不稳定的螺旋. 图 5.2.4b 显示了稳定的情况。

如果特征值是纯虚数 α = 0 \alpha = 0 α=0,那么所有解都是周期性的,周期为 T = 2 π / ω T = 2\pi/\omega T=2π/ω. 振荡具有固定振幅,并且不动点点是一个中心(center).

例5.2.5

如果特征值相等会发生什么?

假设 λ 1 = λ 2 = λ \lambda_1 = \lambda_2 = \lambda λ1=λ2=λ。有两种可能性:要么有两个对应于 λ \lambda λ 的独立特征向量,要么只有一个.
我们先考虑有两个独立特征向量的情况,此时他们会张成一个平面都是有相同的特征值 λ \lambda λ
我们可以得到任意向量 x 0 x_0 x0可以写成两个特征向量的线性组合,也就是 x 0 = c 1 v 1 + c 2 v 2 \mathbf{x}_0 = c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 x0=c1v1+c2v2,那么我们可以得到
A x 0 = A ( c 1 v 1 + c 2 v 2 ) = c 1 λ v 1 + c 2 λ v 2 = λ x 0 A\mathbf{x}_0 = A(c_1 \mathbf{v}_1 + c_2 \mathbf{v}_2) = c_1 \lambda \mathbf{v}_1 + c_2 \lambda \mathbf{v}_2 = \lambda \mathbf{x}_0 Ax0=A(c1v1+c2v2)=c1λv1+c2λv2=λx0
由于乘以 A A A的效果即为数乘 λ \lambda λ因此 A A A可以等价为
A = ( λ 0 0 λ ) . A = \begin{pmatrix} \lambda & 0 \\ 0 & \lambda \end{pmatrix}. A=(λ00λ).
λ \lambda λ不为0时,所有的轨迹均为经过原点的直线,因此我们可以得到一个星型节点(star node),如下图所示
在这里插入图片描述

另一种可能是只有一个特征向量,例如
A = ( λ b 0 λ ) A = \begin{pmatrix} \lambda & b \\ 0 & \lambda \end{pmatrix} A=(λ0bλ)其中 b ≠ 0 b \neq 0 b=0,此时我们可以得到一个退化节点(degenerate node),如下图所示:
在这里插入图片描述

不动点的分类

我们可以把不动点做如下分类:
在这里插入图片描述
其中 τ \tau τ Δ \Delta Δ分别为矩阵 A \mathbf{A} A的迹和行列式:
λ 1 , 2 = 1 2 ( τ ± τ 2 − 4 Δ ) , Δ = λ 1 λ 2 , τ = λ 1 + λ 2 . \lambda_{1,2} = \frac{1}{2} \left( \tau \pm \sqrt{\tau^2 - 4\Delta} \right), \quad \Delta = \lambda_1 \lambda_2, \quad \tau = \lambda_1 + \lambda_2. λ1,2=21(τ±τ2 ),Δ=λ1λ2,τ=λ1+λ2.
Δ < 0 \Delta<0 Δ<0时,特征值是实数并且有相反的符号,此时不动点为鞍点(saddle point).
Δ > 0 \Delta>0 Δ>0时,如果 τ 2 − 4 Δ > 0 \tau^2 - 4\Delta > 0 τ2>0我们得到节点(node),如果 τ 2 − 4 Δ < 0 \tau^2 - 4\Delta < 0 τ2<0我们得到螺旋(spiral),当 τ > 0 \tau>0 τ>0时.抛物线 ( τ 2 − 4 Δ = 0 (\tau^2 - 4\Delta = 0 (τ2=0 是节点(node)和螺旋(spiral)两种情况之间的边界;星形节点(star)和退化节点(degenerate node)位于这条抛物线上。节点和螺旋的稳定性由 τ \tau τ决定。当 τ < 0 \tau < 0 τ<0 时,两个特征值都有负实部,因此不动点是稳定的。不稳定的螺旋和节点有 τ > 0 \tau > 0 τ>0。中性稳定的中心位于边界 τ = 0 \tau = 0 τ=0 上,此时特征值是纯虚数。

例5.2.6

对系统 x ˙ = A x \dot{\mathbf{x}} = A\mathbf{x} x˙=Ax 的不动点 x ∗ = 0 \mathbf{x}^* = 0 x=0 进行分类,
其中 A = ( 1 2 3 4 ) A = \begin{pmatrix} 1 & 2 \\ 3 & 4 \end{pmatrix} A=(1324)

矩阵有 Δ = − 2 \Delta = -2 Δ=2;因此不动点是一个鞍点.

例5.2.7

对系统 x ˙ = A x \dot{\mathbf{x}} = A\mathbf{x} x˙=Ax 的不动点 x ∗ = 0 \mathbf{x}^* = 0 x=0 进行分类, A = ( 2 1 3 4 ) A = \begin{pmatrix} 2 & 1 \\ 3 & 4 \end{pmatrix} A=(2314)

现在 Δ = 5 \Delta = 5 Δ=5 τ = 6 \tau = 6 τ=6. 由于 Δ > 0 \Delta > 0 Δ>0 τ 2 − 4 Δ = 16 > 0 \tau^2 - 4\Delta = 16 > 0 τ2=16>0,不动点是一个节点。它是不稳定的,因为 τ > 0 \tau > 0 τ>0

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/971024.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

某生产制造企业积分制考核信息化项目成功案例纪实

某生产制造企业积分制考核信息化项目成功案例纪实 ——打破“大锅饭”“平均主义”问题&#xff0c;持续激励员工&#xff0c;调动员工积极性 【客户行业】生产制造行业 【问题类型】薪酬体系优化 【客户背景】 某大型钢铁集团公司是一个集科工贸、产供销于一体的国有生产…

github用户名密码登陆失效了

问题&#xff1a; git push突然推代码需要登陆&#xff0c;但是用户名和密码正确输入后&#xff0c;却提示403 git push# Username for https://github.com: **** #Password for https://gyp-programmergithub.com: #remote: Permission to gyp-programmer/my-app.git denie…

网上购物|基于SprinBoot+vue的网上购物系统(源码+数据库+文档)

网上购物系统目录 基于SprinBootvue的网上购物 一、前言 二、系统设计 三、系统功能设计 5.1 管理员功能实现 5.1.1 论坛管理 5.1.2 商品管理 5.1.3 商品评价管理 5.1.4 商品订单管理 5.2 用户功能实现 5.2.1 商品信息 5.2.2 确认下单 5.2.3 商品订单 5.2.4 购物…

python语言进阶之函数

目录 前言 函数的创建和调用 函数创建 调用函数 参数传递 形式参数和实际参数 位置参数 数量必须与定义时一致 位置必须与定义时一致 关键字参数 为参数设置默认值 可变参数 **parameter 返回值 变量的作用域 局部变量 全局变量 匿名函数 前言 提到函数&…

STM32 如何使用DMA和获取ADC

目录 背景 ‌摇杆的原理 程序 端口配置 ADC 配置 DMA配置 背景 DMA是一种计算机技术&#xff0c;允许某些硬件子系统直接访问系统内存&#xff0c;而不需要中央处理器&#xff08;CPU&#xff09;的介入&#xff0c;从而减轻CPU的负担。我们可以通过DMA来从外设&#xf…

在linux系统中安装Anaconda,并使用conda

系统 : ubuntu20.04 显卡&#xff1a;NVIDIA GTX1650 目录 安装Anaconda第一步&#xff1a;下载合适版本的Anconda1. 查看自己Linux的操作系统及架构命令&#xff1a;uname -a2. 下载合适版本的Anconda 第二步&#xff1a;安装Aanconda1. 为.sh文件设置权限2. 执行.sh文件2.1 .…

【嵌入式Linux应用开发基础】read函数与write函数

目录 一、read 函数 1.1. 函数原型 1.2. 参数说明 1.3. 返回值 1.4. 示例代码 二、write 函数 2.1. 函数原型 2.2. 参数说明 2.3. 返回值 2.4. 示例代码 三、关键注意事项 3.1 部分读写 3.2 错误处理 3.3 阻塞与非阻塞模式 3.4 数据持久化 3.5 线程安全 四、嵌…

计网-数据链路层

3.1数据链路层的概述 概念 链路就是从一个结点到相邻结点的一段物理线路&#xff0c;而中间没有任何其他的交换结点。 数据链路是指把实现通信协议的硬件和软件加到链路上&#xff0c;就构成了数据链路。 数据链路层以帧为单位传输和处理数据。 网络中的主机、路由器等都必须实…

Versal - 基础5(裸机开发 AIE-ML+Vitis2024.2界面aie report介绍)

目录 1. 简介 2. 申请 License 2.1 申请网址 2.2 填写 Host 2.3 导入 License 3. 示例 3.1 vivado_platform 3.1.1 由模板创建 3.1.2 模板参数 3.1.3 修改BD参数 3.1.4 配置CIPS和MC 3.1.5 导出PFM 3.2 vitis_platform 3.2.1 创建组件 3.2.2 导入XSA并配置 3.2…

Python 字典思维导图

在本章中&#xff0c;你将学习能够将相关信息关联起来的Python字典。你将学习如何访问和修改字典中的信息。鉴于字典可存储的信息量几乎不受限制&#xff0c;因此我们会演示如何遍 历字典中的数据。另外&#xff0c;你还将学习存储字典的列表、存储列表的字典和存储字典的字典。…

用pytorch实现一个简单的图片预测类别

前言&#xff1a; 在阅读本文之前&#xff0c;你需要了解Python&#xff0c;Pytorch&#xff0c;神经网络的一些基础知识&#xff0c;比如什么是数据集&#xff0c;什么是张量&#xff0c;什么是神经网络&#xff0c;如何简单使用tensorboard,DataLoader。 本次模型训练使用的是…

计算机视觉:卷积神经网络(CNN)基本概念(一)

第一章&#xff1a;计算机视觉中图像的基础认知 第二章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(一) 第三章&#xff1a;计算机视觉&#xff1a;卷积神经网络(CNN)基本概念(二) 第四章&#xff1a;搭建一个经典的LeNet5神经网络 一、引言 卷积神经网络&…

PowerBI 矩阵 列标题分组显示(两行列标题)

先看效果 数据表如下&#xff1a; 我们在powerbi里新建一个矩阵&#xff0c;然后如图加入字段&#xff1a; 我们就会得到这样的矩阵&#xff1a; 我们在“可视化”->“列”&#xff0c;上双击&#xff0c;输入空格&#xff0c;就能消除左上角的"类别"两字 同理修…

报名丨Computer useVoice Agent :使用 TEN 搭建你的 Mac Assistant

与 TEN 相聚在「LET’S VISION 2025」大会&#xff0c;欢迎来展位上跟我们交流。这次我们还准备了一场聚焦「computer use」的工作坊&#xff0c;功能新鲜上线&#xff0c;线下首波体验&#xff01; &#x1f4c5; TEN 展位&#xff1a;2025年3月1日-2日 TEN workshop&#x…

python opencv基础使用总结

1.安装opencv库&#xff1a;pip install opencv-python 2.基础使用范例 import cv2 #图片的基本操作#1.读取一张图片 参数 1&#xff1a;图片的文件名如果图片放在当前文件夹下&#xff0c;直接写文件名就行&#xff0c;如lena.jpg否则需要给出绝对路径&#xff0c;如D:\Ope…

【STM32】舵机SG90

1.舵机原理 舵机内部有一个电位器&#xff0c;当转轴随电机旋转&#xff0c;电位器的电压会发生改变&#xff0c;电压会带动转一定的角度&#xff0c;舵机中的控制板就会电位器输出的电压所代表的角度&#xff0c;与输入的PWM所代表的角度进行比较&#xff0c;从而得出一个旋转…

OpenEuler学习笔记(三十三):在 OpenEuler 上搭建 OpenGauss 数据库环境

在 OpenEuler 上搭建 OpenGauss 数据库环境需要按照以下步骤进行。OpenGauss 是华为开源的一款高性能关系型数据库&#xff0c;支持高并发、高可用性和分布式部署。 1. 环境准备 确保你的 OpenEuler 系统满足以下要求&#xff1a; 操作系统&#xff1a;OpenEuler 20.03 LTS 或…

智能编程助手功能革新与价值重塑之:GitHub Copilot

引言&#xff1a; GitHub Copilot 的最新更新为开发者带来了显著变化&#xff0c;其中 Agent Mode 功能尤为引人注目。该模式能够自动识别并修复代码错误、自动生成终端命令&#xff0c;并具备多级任务推理能力&#xff0c;这使得开发者在开发复杂功能时&#xff0c;可大幅减少…

【数据结构】(9) 优先级队列(堆)

一、优先级队列 优先级队列不同于队列&#xff0c;队列是先进先出&#xff0c;优先级队列是优先级最高的先出。一般有两种操作&#xff1a;返回最高优先级对象&#xff0c;添加一个新对象。 二、堆 2.1、什么是堆 堆也是一种数据结构&#xff0c;是一棵完全二叉树&#xff0c…

AI大模型的文本流如何持续吐到前端,实时通信的技术 SSE(Server-Sent Events) 认知

写在前面 没接触过 SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;AI大模型出来之后&#xff0c;一直以为文本流是用 WebSocket 做的偶然看到返回到报文格式是 text/event-stream,所以简单认知&#xff0c;整理笔记博文内容涉及 SSE 认知&#xff0c;以及对应的 D…