变分法入门介绍

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: 读完这篇博文你可以了解变分的基本概念,以及使用变分法求解最简泛函的极值。本文没有严密的数学证明,只是感性地对变分法做一个初步了解。

变分法入门介绍

读完这篇博文你可以了解变分的基本概念,以及使用变分法求解最简泛函的极值。本文没有严密的数学证明,只是感性地对变分法做一个初步了解。

泛函和变分法

给定两点$A(x_0, y_0)$和$B(x_1, y_1)$,求AB两点之间的最短距离。两点之间直线最短,这还用球吗?可是为什么是直线最短呢,而不是其它曲线?

设链接AB两点的曲线为$f(x)$,则AB之间的距离可以表示为在区间$[x_0, x_1]$上求$\Delta{S}=\sqrt{(\Delta{x})^2 + (\Delta{y})^2}$线段的累积长度(积分的思想):

$$S=\int_{x_0}^{x_1}\sqrt{1+f'(x)^2}dx$$

在这里该函数的变量是$f$,即函数的变量为函数,我们需要求解出合适的$f$使得$S$最小。我们把这样的函数$S$称为泛函数。

定义:泛函是以函数为变量的函数。

那么什么是变分法呢?求泛函极值的方法称为变分法。

变分法求泛函极值

变分的定义

下面给出变分的定义:对于任意定值$x\in [x_0, x_1]$,可取函数$y(x)$与另一可取函数$y_0(x)$之差$y(x) - y_0(x)$称为函数$y(x)$在$y_0(x)$处的变分或函数的变分,记做$\delta{y}$,这时有$\delta{y}=y(x) - y_0(x)=\epsilon\eta(x)$,$\epsilon$是一个很小的数,$\eta(x)$是$x$的任意参数

对于泛函$J[y(x)]$的增量$\Delta{J}=J[y(x)+\delta{y}] - J[y(x)] = \delta{J} + \mathcal{o}(\delta{y})$

泛函的增量$\Delta{J}$与变分$\delta{J}$之差是一个比一阶距离更高阶的无穷小,泛函的变分是泛函增量的线性主要部分。

变分的定义是不是跟微分很像(微分的定义$\Delta{y}=A\Delta{x}+\mathcal{o}(\Delta{x})=dy+\mathcal{o}(\Delta(x)$,$A$是该点的导数)。类比一下,我们在高等数学中学习到的函数极值的必要条件是函数导数等于0,而泛函极值的必要条件也是泛函的变分等于0。

所以有如下定理:若泛函$J[y(x)]$在$y=y(x)$上达到极值,则它在$y=y(x)$上的变分$\delta{J}$等于零。这就是变分原理。

拉格朗日函数

设$F(x, y(x), y'(x))$是三个独立变量$x$,$y(x)$,$y'(x)$在区间$[x_0, x_1]$上的已知函数,且二阶连续可微,其中$y(x)$和$y'(x)$是$x$的未知函数,则泛函

$$J[y(x)]=\int_{x_0}^{x_1}F(x, y(x), y'(x))dx$$

称为最简单的积分形泛函,简称最简泛函,被积函数$F$称为拉格朗日函数。

对于拉格朗日函数,其泛函的变分为

$$\delta{J} = \int_{x_0}^{x_1}(F_y\delta{y} +F_{y'}\delta{y'})dx = \int_{x_0}^{x_1}(F_y\delta{y})dx + (F_{y'}\delta_{y}|_{x_0}^{x_1} - \int_{x_0}^{x_1}(\delta_{y}\frac{d}{dx}F_{y'}d{x})=\int_{x_0}^{x_1}(F_y-\frac{d}{dx}F_{y'})\delta{y}dx$$

欧拉方程

利用变分原理,使最简泛函$J[y(x)]=\int_{x_0}^{x_1}F(x, y(x), y'(x))dx$取得极值且满足固定边界条件$y(x_0)=y_0$,$y(x_1)=y_1$的极值曲线$y=y(x)$应满足必要条件

$$F_y-\frac{d}{dx}F_{y'}=0$$

式中$F$是$x, y, y'$的已知函数并有二阶连续偏导数。上述必要条件中的方程叫做泛函的欧拉方程,也叫欧拉-拉格朗日方程。而$F_y-\frac{d}{dx}F_{y'}$称为$F$关于$y$的变分导(函)数。

案例分析--两点之间直线最短

好的,我们利用欧拉方程来证明博文刚开始提出的两点之间直线最短的问题。

这里的$F=\sqrt{1+f'(x)^2}$,求得$F_y=0$,$F_{y'}=\frac{y'}{\sqrt{1+{y'}^2}}$,再求得$\frac{d}{dx}F_{y'}=y''(1+{y'}^2)^{-\frac{3}{2}}$

根据欧拉方程有$-y''(1+{y'}^2)^{-\frac{3}{2}}=0$,则$y''=0 \Rightarrow y'=C \Rightarrow y=C_1x + C_2$

此时,我们就得到了这条曲线确实就是连接两点的直线。

在Mathematica中使用变分法

鉴于本人计算能力超级差,手动求导对我来说实在太痛苦了,我将上述的计算借助于Mathematica计算了一遍,下面是计算过程。不得不说Mathematica真的太强大了。
截屏2023-09-08 15.40.17.png

参考文献

老大中. 变分法基础[M]. 北京: 国防工业出版社. 2004.

目录
相关文章
|
9月前
|
编译器 C++
【c++】入门4
【c++】入门4
64 2
|
6月前
|
编译器 程序员 C语言
C++入门
C++入门
43 5
|
9月前
|
人工智能 分布式计算 Java
【C++入门】初识C++
【C++入门】初识C++
|
8月前
|
存储 安全 编译器
1.C++入门(下)
1.C++入门(下)
|
存储 安全 编译器
|
9月前
|
存储 安全 编译器
C++入门(2)
C++入门(2)
55 0
|
存储 Java
ASN.1入门(超详细)
ASN.1(Abstract Syntax Notation dotone),抽象语法标记1。是定义抽象数据类型形式的标准,描绘了与任何表示数据的编码技术无关的通用数据结构。抽象语法使得人们能够定义数据类型,并指明这些类型的值。抽象语法只描述数据的结构形式,与具体的编码格式无关,同时也不涉及这些数据结构在计算机内如何存放。
1189 0
|
程序员
三字棋基本入门
三字棋基本入门
130 0
三字棋基本入门
|
Linux 开发工具 容器