当前位置: 首页 > news >正文

底层逻辑之:欧拉-拉格朗日方程(Euler-Lagrange equations)变分法(Calculus of Variations)的核心思想

0前言:

0.1 17世纪的泛函(Functional)分析与变分法Calculus of Variations)

在17世纪,数学家们开始遇到一些需要处理函数集合的问题,这些问题涉及到函数的极值、曲线的长度、曲面的面积等。这些问题无法用传统的微积分方法来解决,因为微积分主要研究的是单个函数的性质和行为。因此,数学家们开始探索一种新的数学工具来处理这类问题,这就是泛函的雏形。

泛函是一种特殊的映射,它的特点在于其输入不是单个或多个数值变量,而是一个函数(或称为函数曲线、函数图像等)。这个函数可以看作是一个无穷维的“向量”,因为它包含了在定义域内所有点上的取值信息。泛函则是对这个“向量”进行某种运算或评估,得出一个实数(或复数)作为结果。

在许多实际问题中,我们需要对函数进行整体性的评估或优化,而不是仅仅关注函数在某一点的取值。例如,在物理学中,我们可能需要计算一个物理系统在不同状态下的总能量或总动量,这些量都是函数(如状态函数)的泛函。

0.2 最速降线问题与变分法的萌芽

1696年,约翰·伯努利提出了著名的最速降线问题,即一个质点在重力作用下从一个给定点滑到另一个给定点,沿着什么曲线滑下所需时间最短。这个问题引发了数学家们的兴趣和研究。虽然当时并未明确提出泛函的概念,但最速降线问题可以看作是泛函分析的一个早期应用实例。

欧拉在1733年通过变分原理解决了最速降线问题,这标志着变分法的正式诞生。变分法是一种求解泛函极值的方法,它可以说是最初的泛函分析。在18世纪,拉格朗日进一步发展了变分法,系统性地提出了拉格朗日乘数法和欧拉-拉格朗日方程,也就是目前变分法的核心:欧拉-拉格朗日方程


1.欧拉-拉格朗日方程的提出- 最速降线问题的解决

1.1 问题描述

假设物体从原点O点开始出发,沿任意曲线运动到A点(O点坐标为(x1,y1),A点坐标为(x2,y2),A点低于O点),物体运动过程中只有重力做功,无摩擦力。何种曲线才能让物体从A滑到b的时间最短?

1.2 构建-泛函-数学模型

物体沿曲线下滑的速度由重力势能转化为动能决定。设物体在曲线上的任意一点 (x_t,y_t)处的速度为 v,设此时物体距离出发点的距离纵向距离为y,横向距离为x,则根据能量守恒定律E=1/2\cdot m\cdot v^2=g\cdot m\cdot y,有:

  v = \sqrt{2gy}

物体沿曲线从 A到 B 所需的时间 T可以表示为:

T = \int_{x_1}^{x_2} \frac{ds}{v}

其中 ds 是曲线上的微小弧长,可以表示为:

ds = \sqrt{1 + \left(\frac{dy}{dx}\right)^2} dx

这里的微小弧长就是勾股定理,x的长度参考长度为1,通过斜率(dy/dx)计算斜面的参考长度。

将 v和 ds 代入 T 的表达式,得到:

T = \int_{x_1}^{x_2} \frac{\sqrt{1 + \left(\frac{dy}{dx}\right)^2}}{ \sqrt{2gy}} dx

在这里,由于不知道y与x之间的映射关系,仅利用经典的微积分理论体系,T的数值不可能被计算出来,也无法解决T的极值问题。

但是还有一种思路:将x和y的映射关系(函数)同样作为未知函数输入,将\frac{dy}{dx}作为未知变量。于是,令:

F(y,x,y') = \frac{\sqrt{1 + (y')^2}}{\sqrt{2gy}}, \quad y' = \frac{dy}{dx}

原式简写为:

T[y]= \int_{x_1}^{x_2} F\left( y, x,y'\right) dx

在这里,自变量变为数集y和映射集\frac{dy}{dx},已经不是简单的多个数值自变量的函数方程了,其同时将数值元素的映射关系作为自变量。为了进行区分,这种特别的函数称为泛函(Functional),即更加广义的函数(Function

在泛函T[y]中,y代表的一系列的数值集合,在定义\quad y' = \frac{dy}{dx}中,x和y之间存在某一种映射关系,这些数值与映射关系的集合构成了泛函系统,而输出T[y]则是一个实数值。在这一问题中,我们求解的不是T[y]这一实数值,而是T[y]取极值时,泛函系统中x与y的映射关系(表达式)。

1.3 变分法与欧拉拉格朗日方程 

已知:

T[y] = \int_{x_1}^{x_2} F\left(y,x,y'\right) dx, \quad y' = \frac{dy}{dx}    (1)

假设泛函 T[y] 在某函数y_0(x)处取得极值,那么对于y_0(x) 的任何微小变化 \delta y(x),泛函的变化量 \delta T都应该为零(可以忽略不计)。这是因为,如果\delta T不为零,那么我们就可以通过调整\delta y(x)的大小和方向来使得 T[y] 在 y_0(x)附近取得更大的值(对于极大值)或更小的值(对于极小值),这与 T[y]y_0(x) 处取得极值的假设相矛盾。

这一原理与函数极点处导数为0有异曲同工之妙。对于普通函数而言,其极点前后点的导数也是趋近于0的(线性近似)。

 为了更好表述这一问题,对于泛函中映射关系y(x)的任何微小变化 \delta y(x),学者们称之为变分\delta y(x)y(x)的变分。而利用变分概念求解y(x)的映射结构的数学方法被称为变分法。

也就是说:如果y(x) 是使 T[y]  取得极值的函数,那么对于任何满足边界条件的变分\delta y(x),即将函数进行微小变化:y(x)\rightarrow y(x) +\varepsilon \eta(x) (其中 \varepsilon 是一个很小的参数,且  \eta(x_1) = \eta(x_2) = 0 ),对应泛函的变化 \delta T 必须为 0:

  1. \eta(x)是什么 ?

    \eta(x) 是一个任意的函数,它表示函数 y(x) 的一个微小变化的方向和形状。当我们想要研究泛函 T[y]在某个函数 y(x) 附近的极值行为时,我们会考虑 y(x) 沿着不同方向上的微小变化。具体来说,η(x) 可以是任何满足一定条件(比如连续、可微等)的函数,它用于构造 y(x) 的微小变化 y(x)+εη(x)。

  2. 为什么 ε 是一个很小的参数?
    在变分法中,当我们想要研究一个泛函 T[y] 的极值时,我们考虑函数 y(x) 的微小变化。这种微小变化可以通过引入一个小参数 ε 来表示,它乘以一个任意的函数 η(x),即 y(x)\rightarrow y(x) +\varepsilon \eta(x)。这里,ε 很小是为了保证变化是微小的,从而可以在这一点上进行线性近似,这是变分法的基础。
  3. 为什么\eta(x_1) = \eta(x_2) = 0
    在变分问题中,函数 y(x) 通常在区间的端点 x1​ 和 x2​ 处满足一定的边界条件。当我们在研究 y(x) 的微小变化时,我们希望这些变化不会破坏原有的边界条件(该曲线必须经过最速降线问题中的起点和终点)。具体来说,假设 y(x) 在 x_1x_2处分别满足边界条件 y(x_1)=y_1y(x_2)=y_2,仅\eta(x_1) = \eta(x_2) = 0时,y(x) +\varepsilon \eta(x)x_1x_2依然等于y_1y_2

 因此,该问题可以表述为:对y(x) 函数进行变化时,泛函的变化\delta T为0.

\delta T = \frac{d}{d\varepsilon} T[y + \varepsilon \eta] \Big|_{\varepsilon = 0} = 0

y(x) \rightarrow y(x) + \varepsilon \eta(x)代入泛函式(1)有:

T[y + \varepsilon \eta] = \int_{x_1}^{x_2} F\left(x, y + \varepsilon \eta, y' + \varepsilon \eta'\right) dx

其中  \eta' = \frac{d\eta}{dx}。展开 F(x, y + \varepsilon \eta, y' + \varepsilon \eta') 的泰勒级数(仅保留一阶项),得:

F(x, y + \varepsilon \eta, y' + \varepsilon \eta') = F(x, y, y') + \varepsilon \frac{\partial F}{\partial y} \eta + \varepsilon \frac{\partial F}{\partial y'} \eta' + \mathcal{O}(\varepsilon^2).

忽略高阶小量\mathcal{O}(\varepsilon^2),进行变化可得:

\delta T =T[y + \varepsilon \eta] - T[y] = \varepsilon \int_{x_1}^{x_2} \left( \frac{\partial F}{\partial y} \eta + \frac{\partial F}{\partial y'} \eta' \right) dx    (2)

可以注意到上式中有 \eta',为了简化,使用分部积分将  \eta' 转换为 \eta 的形式。根据分部积分公式:

\int_{x_1}^{x_2} \frac{\partial F}{\partial y'} \eta' dx = \left[\frac{\partial F}{\partial y'} \eta \right]_{x_1}^{x_2} - \int_{x_1}^{x_2} \frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) \eta dx

注:[\cdot ]_{x_1}^{x_2}:这表示对括号内的表达式在 x1​ 和 x2​ 两点进行求值,并计算它们的差。

由于 \eta(x_1) = \eta(x_2) = 0(微小变化在边界处为零),第一项 \left[\frac{\partial F}{\partial y'} \eta \right]_{x_1}^{x_2}消失,因此:

\int_{x_1}^{x_2} \frac{\partial F}{\partial y'} \eta' dx = - \int_{x_1}^{x_2} \frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) \eta dx

将这一结果代入式(2),令泛化变化等于0,变化得到:

\delta T = \varepsilon \int_{x_1}^{x_2} \left( \frac{\partial F}{\partial y} - \frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) \right) \eta dx=0

由于 \eta(x)是任意函数,唯一可能的情况是积分中的括号为零,即:

\frac{\partial F}{\partial y} - \frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) = 0      (3)

而推导出来的式3,就是大名鼎鼎的欧拉-拉格朗日方程(Euler-Lagrange equations)

无论是在何种维度的映射中,泛函都满足边界效应,消去差值部分,如本例子中的 \left[\frac{\partial F}{\partial y'} \eta \right]_{x_1}^{x_2},因此总能简化为欧拉-拉格朗日方程。

欧拉-拉格朗日方程的第二种表达式:

若函数 F  是 x,y,y' 的函数,即 F = F(y, y', x)。其全导数为:

\frac{dF}{dx} = \frac{\partial F}{\partial y} \cdot \frac{dy}{dx} + \frac{\partial F}{\partial y'} \cdot \frac{d^2y}{dx^2} + \frac{\partial F}{\partial x}    (4)

- \frac{\partial F}{\partial y}  是 F 对 y 的偏导数,乘以  \frac{dy}{dx} = y'

\frac{\partial F}{\partial y'}是  F 对 y'的偏导数,乘以\frac{d^2y}{dx^2} = y''

可得:

\frac{\partial F}{\partial y'} \cdot y'' =\frac{dF}{dx}- \frac{\partial F}{\partial y} \cdot \frac{dy}{dx} -\frac{\partial F}{\partial x}       (5)

   又因为:

\frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'})=y'\cdot \frac{d}{dx}(\frac{\partial F}{\partial y'})+y''\cdot \frac{\partial F}{\partial y'}  (6)

将式5代入式6代入得

\frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'})=y'\cdot \frac{d}{dx}(\frac{\partial F}{\partial y'})+(\frac{dF}{dx}- \frac{\partial F}{\partial y} \cdot \frac{dy}{dx} -\frac{\partial F}{\partial x})

化简:

\frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'})=y'\cdot (\frac{d}{dx}(\frac{\partial F}{\partial y'}-\frac{\partial F}{\partial y}))+(\frac{dF}{dx}-\frac{\partial F}{\partial x})                           

根据欧拉-拉格朗日方程:\frac{d}{dx} \frac{\partial F}{\partial y'} = \frac{\partial F}{\partial y},代入上式

 \frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'})=\frac{dF}{dx}-\frac{\partial F}{\partial x}

  即:  \frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'}-F)+\frac{\partial F}{\partial x}=0  (7)

式7就是欧拉-拉格朗日的第二种表达式,适用于二元素的映射泛函 ,即F = F(y, y', x)

       特别的,若F中不显含x,则F对x的全导数处处为0。

根据F的定义式F(y,x,y') = \frac{\sqrt{1 + (y')^2}}{\sqrt{2gy}}, \quad y' = \frac{dy}{dx},x在F和函数y' \frac{\partial F}{\partial y'}-F中不显含。因此,函数y' \frac{\partial F}{\partial y'}-F关于x的偏导数处处为0.

此时,欧拉-拉格朗日方程的第二种形式可进行化简:

因为:\frac{\partial F}{\partial x}=0

\frac{d}{dx}(y'\cdot \frac{\partial F}{\partial y'}-F)=0

两边对x积分有:y'\cdot \frac{\partial F}{\partial y'}-F=C

故对于变量x,函数y' \frac{\partial F}{\partial y'}-F为一个恒定的值,我们设其为积分常数C。换句话来说,y' \frac{\partial F}{\partial y'}-F仅关于y和y'变化,不会根据x变化。

1.4 解决最速降线问题

直接将T = \int_{x_1}^{x_2} \frac{\sqrt{1 + \left(\frac{dy}{dx}\right)^2}}{ \sqrt{2gy}} dx代入第一种欧拉-拉格朗日方程式:\frac{\partial F}{\partial y} - \frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) = 0       

\frac{\partial F}{\partial y} = \frac{\partial}{\partial y} \left( \frac{\sqrt{1 + (y')^2}}{\sqrt{2gy}} \right) = \frac{\sqrt{1 + (y')^2}}{2 \sqrt{2g} y^{3/2}}

\frac{d}{dx} \left( \frac{\partial F}{\partial y'} \right) = \frac{d}{dx} \left( \frac{y'}{\sqrt{2gy} \sqrt{1 + (y')^2}} \right)

可得:

\frac{\sqrt{1 + (y')^2}}{2 \sqrt{2g} y^{3/2}} - \frac{d}{dx} \left( \frac{y'}{\sqrt{2gy} \sqrt{1 + (y')^2}} \right) = 0

但这并不好解

所以我们用x对F不显式的第二表达式进行求解:

 即:      F - y' \frac{\partial F}{\partial y'} = \frac{\sqrt{1 + (y')^2}}{\sqrt{2g(y_1 - y)}} - \frac{y'^2}{\sqrt{2g(y_1 - y)} \sqrt{1 + (y')^2}}=C

提取公因子 \frac{1}{\sqrt{2g(y_1 - y)}} 后,其分子为:

\sqrt{1 + (y')^2} - \frac{y'^2}{\sqrt{1 + (y')^2}} = \frac{1 + (y')^2 - y'^2}{\sqrt{1 + (y')^2}} = \frac{1}{\sqrt{1 + (y')^2}}

故:

F - y' \frac{\partial F}{\partial y'} = \frac{1}{\sqrt{2gy} \sqrt{1 + (y')^2}}=C

将上式进一步变化:

y\cdot (1 + (y')^2) = \frac{1}{2gC^2}

1 + (y')^2 = \frac{1}{2g C^2}\cdot \frac{1}{y}

可得:

y'=\frac{dy}{dx} = \pm \sqrt{ \frac{1-2gC^2\cdot y}{2gC^2\cdot y}}

得:dx=\pm \sqrt{ \frac{2gC^2\cdot y}{1-2gC^2\cdot y}}dy (8)

上式并不简洁,我们需要用换元法稍加处理:

对于式8中的\sqrt{ \frac{2gC^2\cdot y}{1-2gC^2\cdot y}},令2gC^2\cdot y=\frac{1}{2}(1-cos\theta )

其中:y = \frac{1}{4gC^2} (1-\cos\theta) ,\frac{dy}{d\theta}= \frac{1}{4gC^2} sin\theta

式8中的\sqrt{ \frac{2gC^2\cdot y}{1-2gC^2\cdot y}}化为:

\sqrt{ \frac{\frac{1}{2}(1-cos\theta)}{1-\frac{1}{2}(1-cos\theta)}}=\sqrt{ \frac{\frac{1}{2}-\frac{1}{2}cos\theta}{\frac{1}{2}+\frac{1}{2}cos\theta}}=\sqrt{ \frac{1-cos\theta}{1+cos\theta}}

继续化简:

\sqrt{ \frac{1-cos\theta}{1+cos\theta}}=\sqrt{ \frac{1-cos\theta}{1+cos\theta}}\cdot \sqrt{\frac{1-cos\theta}{1-cos\theta}}=\sqrt{\frac{(1-cos\theta)^2}{(1+cos\theta)(1-cos\theta)}}=\frac{1-cos\theta}{\sqrt{1-cos^2 \theta}}=\frac{1-cos\theta}{sin\theta}

于是式8可写为

dx/d\theta=\pm \frac{1-cos\theta}{sin\theta}dy/d\theta=\pm \frac{1-cos\theta}{sin\theta}\cdot \frac{1}{4gC^2} sin\theta= \frac{1-cos\theta}{4gC^2}  (9)

 对式9两边进行积分得:

                x=\frac{1}{4gC^2}(\theta-sin\theta)+C_2

将起始点(y_1,x_1)(y_2,x_2)带入  x=\frac{1}{4gC^2}(\theta-sin\theta)+C_2y = \frac{1}{4gC^2} (1-\cos\theta)可以组成二元一次方程组,可以解得C, C_2的具体数值。

而这里x、y关于\theta的公式就是“摆线”的表达式,也就是最速降线的解

其中 r =1/4gC^2 是摆线的半径。

摆线的标准表达式为:

x = r (\theta - \sin\theta), \quad y = r (1 - \cos\theta)

相关文章:

底层逻辑之:欧拉-拉格朗日方程(Euler-Lagrange equations)变分法(Calculus of Variations)的核心思想

0前言: 0.1 17世纪的泛函(Functional)分析与变分法(Calculus of Variations) 在17世纪,数学家们开始遇到一些需要处理函数集合的问题,这些问题涉及到函数的极值、曲线的长度、曲面的面积等。这…...

2024-12-03OpenCV图片处理基础

OpenCV图片处理基础 OpenCV的视频教学:https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV摄像头读取 OpenCV使用摄像头读取图片帧,点击S保存当前帧到指定文件夹,点击Q关闭窗口,点击其他按钮打印按钮的值 要实现这个功能&…...

【汇编语言】标志寄存器(二) —— 标志位驱动的计算:ADC、SBB 和 CMP 的巧妙应用

前言 📌 汇编语言是很多相关课程(如数据结构、操作系统、微机原理)的重要基础。但仅仅从课程的角度出发就太片面了,其实学习汇编语言可以深入理解计算机底层工作原理,提升代码效率,尤其在嵌入式系统和性能优…...

Java刷题训练第一期

个人主页:手握风云 专栏:Java刷题训练营 1. 字符转ASCII码 问题描述:BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,输入一个字符,输出该字符相应的ASCII码。 输入描述…...

【leetcode100】矩阵置零

1、题目描述 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用原地算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]] 2、初始思路 2…...

【MySQL 进阶之路】SQL 优化

6.SQL 性能分析笔记 在现代数据库的高并发环境下,SQL 查询优化成为提升系统性能和响应速度的关键。本文将总结常见的 SQL 优化策略,包括插入优化、主键设计、排序优化、GROUP BY 优化等,帮助你在面对大规模数据时,做到高效查询和…...

本地部署开源趣味艺术画板Paint Board结合内网穿透跨网络多设备在线绘画

文章目录 前言1.关于Paint Board2.本地部署paint-board3.使用Paint Board4.cpolar内网穿透工具安装5.创建远程连接公网地址6.固定Paint Board公网地址 前言 大家好,是不是每次想要在电脑上画画时,都被那些笨重的专业绘图软件搞得头大如斗呢?…...

位图(bitmap)和布隆过滤器(bloom_filter)

1.位图-Bitmap 1.1问题引入 :给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中? 40亿个无符号整数大约16G的大小,用map或者set显然是无法支持海量数据的存储。那么我们能否不存储数…...

如何使用JDBC向数据库中插入日期数据???

在学习JDBC 的过程中很多小明有疑问在IDEA编辑器是如何插入一个日期类型的数据的,此篇一些方法希望可以帮助到你。 示例: import java.text.ParseException; import java.text.SimpleDateFormat; import java.sql.Date; import java.util.Scanner;publi…...

电子系统设计实验4 信号发生电路设计实验

一、实验目的 1. 掌握正弦信号发生器的设计方法。 2. 掌握方波发生器的设计方法。 二、实验内容及结果 1. 实验内容 设计一用于RFID读卡器测试的幅移键控发生器(ASK),其结构如图4-1所示。正弦振荡器输出频率为150kHz,幅度为3V…...

【Docker】Linux与Windows系统安装Docker+Docker上简单安装MySQL

一、Windows安装Docker 由于我在许多平台搜索Windows下安装Docker的方法,都提到了Win10家庭版无法直接安装Docker。个人电脑就是Win10家庭版,本着实践出真知的想法,个人在本机Win10家庭版实验结果为需要采用下述传统手动安装的办法&#xff…...

linux更新镜像源

镜像源地址 1 阿里云 http://mirrors.aliyun.com/ubuntu/ 2 网易源 http://mirrors.163.com/ubuntu/ 3 浙大源 http://mirrors.zju.edu.cn/ubuntu 4 中科大源 http://mirrors.ustc.edu.cn/ubuntu/ 5 清华源 http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ 更新镜像源 此处…...

HarmonyOS 5.0应用开发——UIAbility生命周期

【高心星出品】 文章目录 UIAbility组件创建AbilityUIAbility的生命周期Create状态WindowStageCreate状态Foreground和Background状态WindowStageWillDestroy状态Destroy状态 UIAbility组件 UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。 UIAbility组…...

【Linux】C语言实现简易的Linux shell命令行解释器

我们要实现自己的简易的shel,先了解一下shell运行原理。 1. shell运行原理 shell从用户读入字符串"ls"。shell建立一个子进程,在子进程中运行ls程序并等待进程结束。 然后shell读取新的一行输入,建立一个新的子进程,在…...

构建个人大模型问答助手(基于Streamlit +gpt-4o/o1-mini):全面解析与实现

在当今人工智能迅猛发展的时代,构建一个个人化的大模型问答助手不仅能够提高工作效率,还能为日常生活带来便利。本篇博客将详细解析如何使用Python和Streamlit框架,结合OpenAI的API,搭建一个类似于ChatGPT的问答系统。我们将分步骤…...

10.请求拦截和响应拦截

文章目录 前言前景回顾拦截器应用请求拦截器响应拦截器测试响应拦截器原理 总结 前言 优秀的设计总是少不了丰富的扩展点, 比如spring可以自动装配, aop扩展, web模块也有拦截器, 甚至对servlet的过滤器都有封装; 再比如netty、doubbo等等都支持在数据流入流出都允许用户自定义…...

github使用SSH进行克隆仓库

SSH 密钥拉取git 查询密钥是否存在 s -al ~/.ssh这个文件夹下 known_hosts 就是存在的密钥文件 创建密钥文件 ssh-keygen -t rsa -b 4096 -C "testtt.com"-t rsa 是 rsa 算法加密 -b 是指定密钥的长度(以位为单位)。 -C 是用于给密钥添加注…...

如何成长为一名工程技术经理

https://medium.com/srivatsan-sridharan/how-to-grow-as-an-engineering-manager-687cad0bcac7 作为一名工程技术经理,你可能已经积累了丰富的团队管理经验,并展示了出色的项目管理、优先级管理和员工指导能力。然而,尽管如此,你…...

前端热门面试题目(四五六七)

1. 使用 import 时,Webpack 如何处理 node_modules 中的依赖? 依赖解析: Webpack 遇到 import 时,利用 resolve 配置查找依赖。如果是第三方依赖(node_modules),Webpack 会优先查找其主入口&…...

三、使用 Maven:命令行环境

文章目录 1. 第一节 实验一:根据坐标创建 Maven 工程1.1 Maven 核心概念:坐标1.2 实验操作1.3 Maven核心概念:POM1.4 Maven核心概念:约定的目录结构 2. 实验二:在 Maven 工程中编写代码2.1 主体程序2.2 测试程序 3. 执…...

深度学习在网络管理中的应用:智能化的新时代

网络管理在现代信息技术中占据着举足轻重的地位。随着网络规模的扩大和复杂性的增加,传统的网络管理手段已经无法满足日益增长的需求。深度学习作为人工智能的一个重要分支,通过其强大的数据处理和模式识别能力,为网络管理带来了新的契机。本…...

微信小程序日期格式化报错: iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd“、“yyyy/MM/dd HH:mm:ss“、“yyyy-

微信小程序日期格式化报错 报错内容解决办法 报错内容 at formatDate (http://127.0.0.1:10118/appservice-hotreload/pages/index/index.js?1;:103:18) new Date(“2024-11-27 15:05:23”) 在部分 iOS 下无法正常使用,iOS 只支持 “yyyy/MM/dd”、“yyyy/MM/dd H…...

第K大数求解方案

思想:利用快速排序的思想,从数组S中随机找出一个元素X,把数组分为两部分Sa和Sb。Sa中的元素大于等于X,Sb中元素小于X。这时有两种情况: 1. Sa中元素的个数小于k,则Sb中的第k-|Sa|个元素即为第k大数&#xf…...

【AI系统】MobileFormer

MobileFormer 在本文中,将介绍一种新的网络-MobileFormer,它实现了 Transformer 全局特征与 CNN 局部特征的融合,在较低的成本内,创造一个高效的网络。通过本节,让大家去了解如何将 CNN 与 Transformer 更好的结合起来…...

《重生之我学VTK》-- 基本介绍与相关概念

目录 简介 可视化模型 示例(圆锥体) VTK官方用户手册(中文C版)附末尾,有需要的直接划到末尾 简介 VTK(Visualization Toolkit)是一个开源的、跨平台的软件系统,主要用于三维计算机图…...

HTML笔记()蜘蛛纸牌之卡牌拖拽

效果 代码 <!DOCTYPE html> <html><head><style>body{display: flex;justify-content: center;align-items: center;height: 100vh;background-color: #2b2b2b;position: relative;}.card{/*设置卡牌的外观*/width: 150px;height: 200px;background-…...

记一次跑前端老项目的问题

记一次跑前端老项目的问题 一、前言二、过程1、下载依赖2、启动项目3、打包 一、前言 在一次跑前端老项目的时候&#xff0c;遇到了一些坑&#xff0c;这里记录一下。 二、过程 1、下载依赖 使用 npm install下载很久&#xff0c;然后给我报了个错 core-js2.6.12: core-js…...

041_Compare_Matrix_Squre_Sum_in_MATLAB中矩阵平方和的比较

矩阵平方和的计算 矩阵平方和的定义 矩阵平方和的定义是对矩阵中的每一个元素进行平方&#xff0c;然后求和。 对于一个矩阵 A A A&#xff0c;其平方和定义为&#xff1a; sum ∑ i 1 m ∑ j 1 n A ( i , j ) 2 \text{sum} \sum_{i1}^{m}\sum_{j1}^{n} A(i,j)^2 sumi1∑…...

vue3中 axios 发送请求 刷新token 封装axios

service.js 页面 import axios from axios // 创建axios实例 const instance axios.create({baseURL: http://gcm-test.jhzhkj.cn:8600/h5card/,timeout: 5000, // 请求超时时间headers: {get: {Content-Type: application/x-www-form-urlencoded},post: {Content-Type: appl…...

vue+mars3d叠加展示arcgis动态服务

数据格式&#xff1a;使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…...

PostgreSQL 中进行数据导入和导出

在数据库管理中&#xff0c;数据的导入和导出是非常常见的操作。特别是在 PostgreSQL 中&#xff0c;提供了多种工具和方法来实现数据的有效管理。无论是备份数据&#xff0c;还是将数据迁移到其他数据库&#xff0c;或是进行数据分析&#xff0c;掌握数据导入和导出的技巧都是…...

Stable Audio Open模型部署教程:用AI打造独家节拍,让声音焕发新活力!

Stable Audio Open 是一个开源的文本到音频模型&#xff0c;允许用户从简单的文本提示中生成长达 47 秒的高质量音频数据。该模型非常适合创建鼓点、乐器即兴演奏、环境声音、拟音录音和其他用于音乐制作和声音设计的音频样本。用户还可以根据他们的自定义音频数据微调模型&…...

python更新程序并部署服务器服务

本地客户端程序 import json import hashlib import os import shutil import requests from pathlib import Pathclass AutoUpdater:def __init__(self, config_path"http://【XXXIP地址】/update_config"):self.config_path config_pathself.config Nonewith op…...

Nmap 扫描技巧:自定义端口、扫描速度与并行化设置

Nmap 扫描技巧&#xff1a;自定义端口、扫描速度与并行化设置 在进行网络安全扫描时&#xff0c;Nmap 是一个非常强大的工具。除了默认扫描 1000 个端口外&#xff0c;你还可以根据需要自定义扫描的端口、调整扫描速度以及优化扫描并行化。今天&#xff0c;我们就来介绍如何通…...

从 HTML 到 CSS:开启网页样式之旅(五)—— CSS盒子模型

从 HTML 到 CSS&#xff1a;开启网页样式之旅&#xff08;五&#xff09;—— CSS盒子模型 前言一、盒子模型的组成margin&#xff08;外边距&#xff09;&#xff1a;border&#xff08;边框&#xff09;&#xff1a;padding&#xff08;内边距&#xff09;&#xff1a;conten…...

Linux命令行下载工具

1. curl 1.1. 介绍 curl是一个功能强大的命令行工具&#xff0c;用于在各种网络协议下传输数据。它支持多种协议&#xff0c;包括但不限于 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SMTP、POP3、IMAP 等&#xff0c;这使得它在网络数据交互场景中有广泛的应用。curl可以模拟浏览器…...

Navicat 连接 SQL Server 详尽指南

Navicat 是一款功能强大的数据库管理工具&#xff0c;它提供了直观的图形界面&#xff0c;使用户能够轻松地管理和操作各种类型的数据库&#xff0c;包括 SQL Server。本文将详尽介绍如何使用 Navicat 连接到 SQL Server 数据库&#xff0c;包括安装设置、连接配置、常见问题排…...

黑马JavaWeb-day06、07、08(SQL部分) _

文章目录 MYSQL概述数据模型SQL简介SQL分类 DDL数据库操作表操作 DML增&#xff08;INSERT&#xff09;改&#xff08;UPDATE&#xff09;删&#xff08;DELETE&#xff09; DQL基本查询条件查询&#xff08;where&#xff09;分组查询&#xff08;group by&#xff09;排序查询…...

Redis(1)

Redis是一个在内存中存储数据的中间件。 1.在内存中存储数据。 通过数据结构来存储&#xff0c;mysql通过表的方式存储数据&#xff0c;是关系型数据库&#xff0c;redis通过键值对存储&#xff0c;key的类型是string&#xff0c;value的类型是非关系型数据库。 2.可编程的 …...

工具类-列表请求工具 useList

useList 用于列表请求的基于 vue 3 的 hooks&#xff0c;接收请求函数、请求参数等数据&#xff0c;自动生成请求请求函数&#xff0c;分页信息等 本文有涉及到 http 请求工具和接口返回格式的内容&#xff1a; http 工具&#xff1a;一个基于 axios 封装的请求工具Response…...

5G终端自动拔号脚本

5G终端自动拔号脚本 5G终端自动拔号脚本 5G终端自动拔号脚本&#xff0c; 先进入飞行模式&#xff0c;再切出飞行模式&#xff0c; 最后 查询UE IP地址 5G终端自动拔号脚本 input$1 if [ "$input"x "1"x ]; then cmdatcfun1echo "start dialing &…...

3-1 C指针与数组

前言&#xff1a; 基于本人回顾与思考&#xff0c;仅供学习参考 1.0 数组名称的用途 注&#xff1a;可以用于求数组占用的内存空间:sizeof(arrName);此时数组名称代表整个数组 int32 t buffer[5] {1,2,3,4,5};int32 t size sizeof(buffer);printf("sizeof(buffer) %d.\…...

swift 屏幕录制

步骤 1&#xff1a;导入 ReplayKit import ReplayKit步骤 2&#xff1a;开始录屏 let screenRecorder RPScreenRecorder.shared() // 麦克风或系统音频 screenRecorder.isMicrophoneEnabled truefunc startRecording() {guard screenRecorder.isAvailable else {print(&quo…...

Graphviz 的详细介绍

Graphviz 的详细介绍 Graphviz 是一个开源的图形可视化软件&#xff0c;专门用于生成结构化图形。它特别适合用于表示关系图、流程图、依赖关系图和树状结构等类型的图表。Graphviz 使用一种名为 DOT 的脚本语言描述图形&#xff0c;通过解析 DOT 文件生成图像。 Graphviz 的特…...

前端工程化

文章目录 前端工程化模块化与组件化代码规范与风格统一自动化构建与部署性能优化版本控制与团队协作自动化测试 前端工程化 前端工程化是一种将软件工程的方法应用于前端开发的过程&#xff0c;旨在提高开发效率、降低维护成本、优化代码质量&#xff0c;并支持团队协作。以下…...

【LC】41. 缺失的第一个正数

题目描述&#xff1a; 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xff1a;范围…...

高频面试题(含笔试高频算法整理)基本总结回顾29

干货分享&#xff0c;感谢您的阅读&#xff01; &#xff08;暂存篇---后续会删除&#xff0c;完整版和持续更新见高频面试题基本总结回顾&#xff08;含笔试高频算法整理&#xff09;&#xff09; 备注&#xff1a;引用请标注出处&#xff0c;同时存在的问题请在相关博客留言…...

Hive 的 Hook 机制 完全解析

Hive 的 Hook 是一种扩展机制&#xff0c;允许用户在执行查询时自定义行为&#xff0c;例如日志记录、审计或其他操作。Hook 通常在 Hive 的生命周期中某些关键节点被触发&#xff0c;开发者可以插入自定义代码执行特定任务。 一、Hook 的用途和核心概念 1. 用途 审计&#x…...

远程debug

这里写自定义目录标题 一、首先配置idea二、配置jvm1、将刚才idea生成的jvm指令复制下来&#xff0c;就是如下内容&#xff08;注意要从你的idea中复制&#xff09;2、在粘贴之前&#xff0c;要拼接上java-jar命令&#xff0c;还有servery,suspendy命令&#xff0c;最后拼接项目…...

一些常见网络安全术语

1、黑帽 为非法目的进行黑客攻击的人&#xff0c;通常是为了经济利益。他们进入安全网络以销毁&#xff0c;赎回&#xff0c;修改或窃取数据&#xff0c;或使网络无法用于授权用户。这个名字来源于这样一个事实&#xff1a;老式的黑白西部电影中的恶棍很容易被电影观众识别&…...