第三十讲 解耦

一,线性的变量代换:
耦合的方程组: { u = a x + b y v = c x + d y \left\{\begin{matrix}u=ax+by\\ v=cx+dy\end{matrix}\right. { u=ax+byv=cx+dy,求u,v
解耦后的两个一阶方程: { u ′ = k 1 u v ′ = k 2 v \left\{\begin{matrix}{u}'=k_{1}u \\ {v}'=k_{2}v\end{matrix}\right. { u=k1uv=k2v,解得: { u = c 1 e k 1 t v = c 2 e k 2 t \left\{\begin{matrix}u=c_{1}e^{k_{1}t} \\ v=c_{2}e^{k_{2}t} \end{matrix}\right. { u=c1ek1tv=c2ek2t

二,例题:
在这里插入图片描述
如图,两个下端相通的隔间(平时关着通道),盛着不同高度的水,右侧隔间体积比左侧大一倍。x表示左隔间水的高度,y表示右隔间水的高。打开通道,经过一段时间后,水通过下端通道,两边水面高度会平齐。
分析
通过下端通道的水的体积=通道的横截面积 x 水的流速(单位:mL/s)
水的流速 ∝ \propto 两边水面的压力差 ∝ \propto 两边水面的高度差。 ∝ \propto 表示正比关系
因此,通过下端通道的水的体积 ∝ \propto 通道的横截面积 x 两边水面的高度差
建模
x ′ = c ( y − x ) {x}'=c(y-x) x=c(yx)
含义:x高度的变化率=比例常数(包含通道横截面积,高度差和压力差之间的比例常数)x两边水面的高度差(考虑x是正向变化,因此是y-x)
同理: y ′ = c ( x − y ) {y}'=c(x-y) y=c(xy)
因为右侧隔间的体积是左边的2倍,所以y高度的变化率是x的一半: y ′ = c ( x − y ) ⋅ 1 2 {y}'=c(x-y)\cdot \frac{1}{2} y=c(xy)21
假设:c=2
建立方程组: { x ′ = − 2 x + 2 y y ′ = x − y \left\{\begin{matrix}{x}'=-2x+2y\\ {y}'=x-y\end{matrix}\right. { x=2x+2yy=xy
解耦
找寻新变量 [ u v ] \begin{bmatrix}u\\ v \end{bmatrix} [uv],这是从新角度分析问题并建模的过程。
设v是高度差: v = x − y v=x-y v=xy,v ∝ \propto 两边水面的压力差
设u是总水量: u = x + 2 y u=x+2y u=x+2y,u是一个常数,因为没有水从外面流进和流走
将原方程组转化为新方程组: { u ′ = x ′ + 2 y ′ = − 2 x + 2 y + 2 ( x − y ) = 0 v ′ = x ′ − y ′ = − 2 x + 2 y − ( x − y ) = − 3 ( x − y ) = − 3 v \left\{\begin{matrix}{u}'={x}'+2{y}'=-2x+2y+2(x-y)=0 \\ {v}'={x}'-{y}'= -2x+2y-(x-y)=-3(x-y)=-3v \end{matrix}\right. { u=x+2y=2x+2y+2(xy)=0v=xy=2x+2y(xy)=3(xy)=3v
新变量u和v使原方程组解耦了。
解得: { u = c 1 v = c 2 e − 3 t \left\{\begin{matrix}u=c_{1}\\ v=c_{2}e^{-3t}\end{matrix}\right. { u=c1v=c2e3t
转化为x和y的解(非必须): { x = 1 3 ( u + 2 v ) = 1 3 ( c 1 + 2 c 2 e − 3 t ) y = 1 3 ( u − v ) = 1 3 ( c 1 − c 2 e − 3 t ) \left\{\begin{matrix}x=\frac{1}{3}(u+2v)=\frac{1}{3}(c_{1}+2c_{2}e^{-3t}) \\ y=\frac{1}{3}(u-v)=\frac{1}{3}(c_{1}-c_{2}e^{-3t})\end{matrix}\right. { x=31(u+2v)=31(c1+2c2e3t)y=31(uv)=31(c1c2e3t)
化为矩阵形式: [ x y ] = 1 3 c 1 [ 1 1 ] + 1 3 c 2 [ 2 − 1 ] e − 3 t \begin{bmatrix}x\\ y\end{bmatrix}=\frac{1}{3}c_{1}\begin{bmatrix}1\\ 1\end{bmatrix}+\frac{1}{3}c_{2}\begin{bmatrix}2\\ -1\end{bmatrix}e^{-3t} [xy]=31c1[11]+31c2[21]e3t

三,一般的方法:
不是所有情况都可以解耦,解耦的条件:

  1. A的特征值必须都是实数
  2. A的特征值必须是完备特征值(A是实数nxn的对称矩阵)(见二十六讲)

基变换(寻找新变量 [ u v ] \begin{bmatrix}u\\ v\end{bmatrix} [uv]):
设原方程组: x ⃗ ′ = A x ⃗ {\vec{x}}'=A\vec{x} x =Ax x ⃗ = [ x y ] , u ⃗ = [ u

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ是一个开源的消息中间件,它实现了高效的消息传递机制,可以在分布式系统中实现解耦和异步通信。通过使用RabbitMQ,不同的应用程序可以通过发送和接收消息来进行通信,而不需要直接依赖于彼此。 解耦是指将应用程序的不同部分解开,使它们能够独立地进行开发、测试和部署。在分布式系统中,解耦是非常重要的,因为它可以降低系统的复杂性,并提高系统的可扩展性和可维护性。 RabbitMQ通过使用消息队列的方式来实现解耦。应用程序可以将消息发送到RabbitMQ的消息队列中,而不需要直接与其他应用程序进行通信。其他应用程序可以从队列中接收消息,并进行相应的处理。这种方式可以使应用程序之间的通信变得松散耦合,每个应用程序都可以独立地进行开发和部署。 RabbitMQ提供了丰富的特性来支持解耦和异步通信,包括以下几个方面: 1. 消息队列:RabbitMQ使用消息队列来存储和传递消息。消息队列可以缓冲发送方和接收方之间的消息,使得它们可以独立地进行工作。 2. 发布/订阅模式:RabbitMQ支持发布/订阅模式,可以将消息广播给多个消费者。这样,一个消息可以被多个应用程序同时接收和处理。 3. 路由和交换机:RabbitMQ使用交换机来路由消息。通过定义不同类型的交换机和绑定规则,可以将消息发送到指定的队列中。 4. 消息确认机制:RabbitMQ提供了消息确认机制,确保消息能够可靠地传递。发送方可以等待接收方的确认消息,以确保消息已经被成功处理。 5. 可靠性和持久化:RabbitMQ支持消息的持久化,即使在服务器故障或重启后,消息也不会丢失。它还提供了可靠性保证,确保消息能够按照指定的顺序进行处理。 6. 扩展性和高可用性:RabbitMQ可以通过添加多个节点来实现扩展性和高可用性。多个节点可以组成一个集群,提供更高的吞吐量和可靠性。 总之,RabbitMQ是一个强大的消息中间件,可以帮助应用程序实现解耦和异步通信。它提供了丰富的特性和灵活的配置选项,适用于各种不同的应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值