学习过程中得一些算法及理解记录20220617

本文详细介绍了牛顿迭代法在求解一元、二元、三元及多元方程根的问题上,以及在寻找函数极值时的应用。同时,深入探讨了矩阵的基础知识,包括行列式的定义、余子式、代数余子式、行列式公式、伴随矩阵以及矩阵求逆的方法,特别给出了2x2和3x3矩阵的求逆公式。这些理论与方法在解决实际问题中具有广泛应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1.求根F(X)=0的解(牛顿迭代法)

1.1一元牛顿迭代法

1.2二元牛顿迭代法

1.3 三元牛顿迭代法

1.4 多元牛顿迭代法

2.求根F(X)极值问题(F'(x)=0)(牛顿迭代法)

3.矩阵相关的知识点

3.1 矩阵、行列式基本定义

3.1.1  2×2方阵的行列式求解公式

3.1.2  3×3方阵行列式求解公式

3.2 余子式

3.3 代数余子式

3.4 行列式公式

3.5 伴随矩阵

3.6 矩阵求逆公式

3.6.1  2*2矩阵求逆

3.6.2  3*3矩阵求逆


1.求根F(X)=0的解(牛顿迭代法)

1.1一元牛顿迭代法

x为自变量,问题描述为:

f\left ( x \right ) = 0

dfx是函数f\left ( x \right )x的一阶导数

迭代公式:

x_{i+1} = x_{i} -\frac{f\left ( x_{i} \right )}{dfx\left( x_{i} \right ) }

1.2二元牛顿迭代法

x,y为自变量, f(x,y)=0 ,g(x,y)=0的根为 (xi+1,yi+1),问题描述为:

\left\{\begin{matrix} f\left ( x,y \right )=0\\ g\left ( x,y \right )=0\end{matrix}\right.\Leftrightarrow \begin{bmatrix} f\\y\end{bmatrix}=\begin{bmatrix} 0\\ 0\end{bmatrix}

X^{k}=\begin{bmatrix} x^{k} & y^{k}\end{bmatrix}^{T}F^{Xk}=\begin{bmatrix} f^{xk,yk} & g^{xk,yk} \end{bmatrix}^{T}

dfxf\left ( x,y \right )对于x的一阶偏导数

dfyf\left ( x,y \right )对于y的一阶偏导数

dgxg\left ( x,y \right )对于x的一阶偏导数

dgyg\left ( x,y \right )对于y的一阶偏导数

迭代公式描述为

{\color{Red} X^{k+1}=X^{k}- \left ( F{}'\left ( X^{k} \right )\right )^{-1} \bullet F\left ( X^{k} \right )}

其中,F{}'\left ( X^{k} \right )为向量F\left ( X^{k} \right )的雅克比矩阵,即

F{}'\left ( X^{k} \right )=\begin{bmatrix} \frac{\partial f}{\partial x} & \frac{\partial f}{\partial y}\\ \frac{\partial g}{\partial x} & \frac{\partial g}{\partial y} \end{bmatrix}=\begin{bmatrix} dfx & dfy\\ dgx & dgy \end{bmatrix}

矩阵求逆\begin{bmatrix} a & b\\ c & d\end{bmatrix}^{-1}= \frac{1}{ad-bc} \begin{bmatrix} d & -b\\ -c & a\end{bmatrix}

\left [F{}'\left ( X^{k} \right ) \right ]^{-1} = \frac{1}{dfx\cdot dgy - dfy\cdot dgx} \begin{bmatrix} dgy & -dfy\\ -dgx & dfx\end{bmatrix}

\begin{bmatrix} x^{k+1}\\ y^{k+1}\end{bmatrix}=\begin{bmatrix} x^{k}\\ y^{k}\end{bmatrix}- \frac{1}{dfx\cdot dgy - dfy\cdot dgx} \begin{bmatrix} dgy & -dfy\\ -dgx & dfx\end{bmatrix} \bullet \begin{bmatrix} f\\ g\end{bmatrix}

{\color{Red}\begin{bmatrix} x^{k+1}\\ y^{k+1}\end{bmatrix}=\begin{bmatrix} x^{k}\\ y^{k}\end{bmatrix}- \frac{1}{dfx\cdot dgy - dfy\cdot dgx} \left.\begin{matrix} \begin{bmatrix} f*dgy-g*dfy\\ -f*dgx+g*dfx\end{bmatrix} \end{matrix}\right|_{xk,yk} }

1.3 三元牛顿迭代法

X^{k}=\begin{bmatrix} x^{k} \\ y^{k}\\ z^{k}\end{bmatrix}F^{Xk}=\begin{bmatrix} f^{xk,yk,zk} \\ g^{xk,yk,zk} \\ w^{xk,yk,zk}\end{bmatrix}

求解F^{Xk}=0的解,迭代公式为

{\color{Red} X^{k+1}=X^{k}- \left ( F{}'\left ( X^{k} \right )\right )^{-1} \bullet F\left ( X^{k} \right )}

其中利用伴随矩阵求逆公式,即A^{-1}=\frac{1}{\left | A \right |}A^{* },则\left ( F{}'\left ( X^{k} \right )\right )^{-1}= \frac{1}{ \left | F{}' \right | } \left ( F{}' \right )^{*}

{F}'\left ( X \right )为向量F\left ( X \right )3*1的雅克比矩阵3*3

F{}'\left ( X^{k} \right )= = \begin{bmatrix} dfx & dfy & dfz\\ dgx & dgy & dgz\\ dwx & dwy & dwz\end{bmatrix}

\left |F{}' \right |= \left |\begin{matrix} dfx & dfy & dfz\\ dgx & dgy & dgz\\ dwx & dwy & dwz \end{matrix} \right | \\ \hspace*{1.3cm}=dfx \left |\begin{matrix} dgy & dgz\\ dwy & dwz \end{matrix} \right | -dfy \left |\begin{matrix} dgx & dgz\\ dwx & dwz \end{matrix} \right |+dfz \left |\begin{matrix} dgx & dgy \\ dwx & dwy \end{matrix} \right | \\ \hspace*{1.3cm} =dfx(dgy*dwz-dgz-dwy)\\ \hspace*{1.8cm}-dfy(dgx*dwz-dgz*dws)\\ \hspace*{1.8cm}+dfz(dgx*dwy-dgy*dwx)

根据伴随矩阵性质和计算公式得

\left ( F{}' \right )^{*}=\begin{bmatrix} & & \\ & & \\ & & \end{bmatrix}

\left (F{}' \right )^{-1}=\frac{1}{\left | \left (F{}' \right ) \right |}\left (F{}' \right )^{* }

1.4 多元牛顿迭代法

多元牛顿迭代法的迭代公式如下:

X^{k+1}=X^{k}-\left ( F{}'\left ( X^{k} \right )\right )^{-1} \bullet F\left ( X^{k} \right )

2.求根F(X)极值问题(F'(x)=0)(牛顿迭代法)

3.矩阵相关的知识点

3.1 矩阵、行列式基本定义

向量

X=\begin{bmatrix} x_{1}\\ x_{2}\\ ...\\ x_{n}\end{bmatrix}

非线性方程组

\left\{\begin{matrix} f_{1}\left ( x1,x2,...,xn \right )=0\\ f_{2}\left ( x1,x2,...,xn \right )=0\\ ...\\ f_{n}\left ( x1,x2,...,xn \right )=0\end{matrix}\right.

其中f1、f2、...、fn均为(x1,x2,...,xn)的多元函数,例如f1=1*x1+2*x2+...+n*xn

F=\begin{bmatrix} f_{1}\left ( X \right )\\ f_{2}\left ( X \right )\\ ...\\ f_{N}\left ( X \right )\end{bmatrix}

则非线性方程组可转化

F\left ( X \right ) = 0

F的雅克比矩阵,Jacobi矩阵为

F{}'\left ( X \right )=\left\{\begin{matrix} \frac{\partial f1}{\partial x1} & \frac{\partial f1}{\partial x2}& ...& \frac{\partial f1}{\partial xn}\\ \frac{\partial f2}{\partial x1}& \frac{\partial f2}{\partial x2}& ...& \frac{\partial f2}{\partial xn}\\ \vdots & \vdots& & \vdots\\ \frac{\partial fn}{\partial x1}& \frac{\partial fn}{\partial x2}& ...& \frac{\partial fn}{\partial xn}\end{matrix}\right.

F{}'\left ( X \right )=\begin{vmatrix} dfx & dfy& dfz\\ & & \\ & & \end{vmatrix}

矩阵求逆公式{\color{Red} A^{-1}=\frac{1}{\left | A \right |}A^{* }},其中\left | A \right |为矩阵A的行列式,A^{* }为矩阵A的伴随矩阵

F{}'\left ( X \right )=\left\{\begin{matrix} \frac{\partial f1}{\partial x1} & \frac{\partial f1}{\partial x2}& ...& \frac{\partial f1}{\partial xn}\\ \frac{\partial f2}{\partial x1}& \frac{\partial f2}{\partial x2}& ...& \frac{\partial f2}{\partial xn}\\ \vdots & \vdots& & \vdots\\ \frac{\partial fn}{\partial x1}& \frac{\partial fn}{\partial x2}& ...& \frac{\partial fn}{\partial xn}\end{matrix}\right.

3.1.1  2×2方阵的行列式求解公式

一个n×n的方阵A的行列式记为det(A)或者|A|,一个2×2矩阵的行列式可表示如下:

det\begin{bmatrix} a & b\\ c & d \end{bmatrix} =ad-bc

3.1.2  3×3方阵行列式求解公式

\left |\begin{matrix} a1 & b1& c1\\ a2& b2& c2\\ a3& b3& c3\end{matrix} \right | =a1\left |\begin{matrix} b2& c2\\ b3& c3\end{matrix} \right | - b1\left |\begin{matrix} a2& c2\\ a3& c3\end{matrix} \right | + c1\left |\begin{matrix} a2& b2\\ a3& b3\end{matrix} \right | \\ \hspace*{2.8cm} =a1(b2*c3-c2*b3)-\\ \hspace*{3.4cm}b1(a2*c3-c2*a3)+\\ \hspace*{3.4cm}c1(a2*b3-b2*a3)

3.2 余子式

把一个n阶行列式中的元素aij所在的第i行和第j列划去后,留下来的n-1阶行列式叫做元素aij的余子式,记作Mij。例如:

D=\begin{vmatrix} a11& a12& a13& a14\\ a21& a22& a23& a24 \\ a31& a32& a33& a34 \\ a41& a42& a43& a44 \end{vmatrix}

余子式Mij,M(2,3)为

M_{2,3}=\begin{vmatrix} a11& a12& a14\\ a31& a32& a34 \\ a41& a42& a44 \end{vmatrix}

3.3 代数余子式

Aij=(-1)^(i+j)Mij,叫做元素aij的代数余子式。代数余子式Aij,A(2,3)为

A_{2,3}={\color{Red} (-1)^{2+3}}M_{2,3}=-M_{2,3}

3.4 行列式公式

一个n×n矩阵的行列式等于其任意一行(或一列)的元素与对应的代数余子式乘积之和,即 :

det(D)=\left | D \right | \\=a_{i1}A_{i1}+a_{i2}A_{i2}+...+a_{in}A_{in}\\ =\sum_{j=1}^{n}a_{ij}(-1)^{i+j}M_{i,j}\\ =a_{1j}A_{1j}+a_{2j}A_{2j}+...+a_{nj}A_{nj}\\ =\sum_{i=1}^{n}a_{ij}(-1)^{i+j}M_{i,j}

3.5 伴随矩阵

方阵D的行列式\left | D \right |\left | D \right |的每个元素a_{i,j}的代数余子式A_{i,j}所构成的如下矩阵就是伴随矩阵,

i为行数,j为列数,即

A^{*}=\begin{bmatrix} A_{1,1} & A_{2,1}& ...& A_{n,1}\\ A_{1,2} & A_{2,2}& ...& A_{n,2} \\ ...& ...& ...& ...\\ A_{1,n} & A_{2,n}& ...& A_{n,n} \end{bmatrix}

注意行和列的对应顺序,矩阵A*是A的伴随矩阵

3.6 矩阵求逆公式

{\color{Red} D^{-1}=\frac{1}{\left | D \right |}D^{* }}

3.6.1  2*2矩阵求逆

D=\begin{bmatrix} a & b\\ c & d \end{bmatrix}= \begin{bmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{bmatrix}的伴随矩阵为D*

\left | D \right | = \frac{1}{ad-bc}

D^{*}=\begin{bmatrix} A_{1,1} & A_{2,1}\\ A_{1,2} & A_{2,2} \\ \end{bmatrix} =\begin{bmatrix} (-1)^{1+1}M_{1,1} & (-1)^{2+1}M_{2,1}\\ (-1)^{1+2}M_{1,2} & (-1)^{2+2} M_{2,2} \end{bmatrix} \\ \hspace*{3.9cm}=\begin{bmatrix} M_{1,1} & -M_{2,1}\\ -M_{1,2} & M_{2,2} \end{bmatrix} \\ \hspace*{3.9cm} =\begin{bmatrix} a_{2,2} & -a_{1,2}\\ -a_{2,1} & a_{1,1} \end{bmatrix}= \begin{bmatrix} d & -b\\ -c & a \end{bmatrix}

D^{-1}=\frac{1}{\left | D \right |}D^{* }=\frac{1}{ad-bc}\begin{bmatrix} d & -b\\ -c & a \end{bmatrix}

3.6.2  3*3矩阵求逆

D= \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix}的伴随矩阵为D*

\left |D \right |= a_{11}\left ( a_{22}\cdot a_{33} - a_{23}\cdot a_{32} \right)\\ \hspace*{1.3cm}-a_{12}\left ( a_{21}\cdot a_{33} - a_{23}\cdot a_{31} \right) \\ \hspace*{1.3cm}+a_{13}\left ( a_{21}\cdot a_{32} - a_{22}\cdot a_{31} \right)

D^{*}=\begin{bmatrix} A_{1,1} & A_{2,1}& A_{3,1}\\ A_{1,2} & A_{2,2} & A_{3,2}\\ A_{1,3} & A_{2,3}& A_{3,3}\\ \end{bmatrix} =\begin{bmatrix} (-1)^{1+1}M_{1,1} & (-1)^{2+1}M_{2,1} & (-1)^{3+1}M_{3,1} \\ (-1)^{1+2}M_{1,2} & (-1)^{2+2} M_{2,2} & (-1)^{3+2}M_{3,2} \\ (-1)^{1+3}M_{1,3} & (-1)^{2+3}M_{2,3} & (-1)^{3+3}M_{3,3} \\ \end{bmatrix} \\ \hspace*{5.1cm}=\begin{bmatrix} M_{1,1} & -M_{2,1} & M_{3,1} \\ -M_{1,2} & M_{2,2} & -M_{3,2} \\ M_{1,3} & -M_{2,3} & M_{3,3} \\ \end{bmatrix} \\ \hspace*{3.9cm}

D^{*}=\hspace*{3.5cm}=\begin{bmatrix} \begin{vmatrix} a22 & a23 \\ a32 & a33 \end{vmatrix} & -\begin{vmatrix} a12 & a13 \\ a32 & a33 \end{vmatrix}& \begin{vmatrix} a12 & a13 \\ a22 & a23 \end{vmatrix}\\ -\begin{vmatrix} a21 & a23 \\ a31 & a33 \end{vmatrix} & \begin{vmatrix} a11 & a13 \\ a31 & a33 \end{vmatrix}& -\begin{vmatrix} a11 & a13 \\ a21 & a23 \end{vmatrix}\\ \begin{vmatrix} a21 & a22 \\ a31 & a32 \end{vmatrix} & -\begin{vmatrix} a11 & a12 \\ a31 & a32 \end{vmatrix} & \begin{vmatrix} a11& a21\\ a12 &22 \end{vmatrix} \\ \end{bmatrix}

D^{-1}=\frac{1}{\left | D \right |}D^{* }

在Simulink中,可以使用MATLAB Function模块来实现最小二乘递推算法。MATLAB Function模块是一种可以在Simulink中使用MATLAB代码的模块。以下是一份示例代码,供你参考: 1. 首先,打开Simulink,创建一个新模型。 2. 在模型中添加一个MATLAB Function模块。 3. 双击打开MATLAB Function模块,在弹出的编辑器窗口中输入以下代码: ```matlab function [y, e, h] = LMS(x, d, mu, M) % 最小二乘递推算法 % 输入: % x:输入信号 % d:期望输出信号 % mu:步长 % M:滤波器阶数 % 输出: % y:滤波器输出信号 % e:滤波器误差信号 % h:滤波器系数 persistent h_old; % 保存滤波器系数 if isempty(h_old) h_old = zeros(M, 1); end N = length(x); % 输入信号长度 h = zeros(M,1); % 初始化滤波器系数 y = zeros(N,1); % 初始化滤波器输出信号 e = zeros(N,1); % 初始化滤波器误差信号 for n = 1:N x_n = [x(n); h_old(1:M-1)]; % 取滤波器输入信号 y(n) = h_old'*x_n; % 计算滤波器输出信号 e(n) = d(n) - y(n); % 计算滤波器误差信号 h = h_old + mu*e(n)*x_n; % 更新滤波器系数 h_old = h; % 更新滤波器系数 end ``` 在这个MATLAB Function模块中,输入参数`x`和`d`分别代表输入信号和期望输出信号,`mu`是步长,`M`是滤波器的阶数。函数的输出结果包括滤波器输出信号`y`、滤波器误差信号`e`和滤波器系数`h`。 在函数中,我们使用了一个持久变量`h_old`来保存滤波器的历史系数,以便在下一次迭代时使用。然后使用一个for循环来进行最小二乘递推算法的迭代计算。在迭代过程中,我们使用输入信号的历史值来计算当前的输出信号,并计算出滤波器的误差,然后更新滤波器系数。最终,我们得到了滤波器输出信号、滤波器误差信号和滤波器系数。 4. 关闭编辑器窗口,回到Simulink模型界面。 5. 在模型中添加一个Input模块和一个Output模块,将输入信号和期望输出信号连接到Input模块,将滤波器输出信号、滤波器误差信号和滤波器系数连接到Output模块。 6. 将MATLAB Function模块和Input模块、Output模块连接起来。 7. 运行Simulink模型,即可得到滤波器输出信号、滤波器误差信号和滤波器系数。 你可以根据实际需要调整函数中的参数和算法细节,使其适用于你的具体应用场景。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值