首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >矛盾方程的最小二乘解

矛盾方程的最小二乘解

作者头像
卡尔曼和玻尔兹曼谁曼
修改2019-02-06 05:41:08
2.1K0
修改2019-02-06 05:41:08
举报

首先看两个个结论:

结论一:方程组Ax=b的最小二乘解的通式为x=Gb+(I-GA)y, 其中G\in A\{1, 3\}, y\mathbb C^n中的任意向量.

结论二:只有A是满秩时, 矛盾方程组Ax=b 的最小二乘解才是唯一的, 且为x_0=(A^HA)^{-1}A^Hb. 否则, 便有无穷多个最小二乘解.

下面看一个实例:

求矛盾方程组

\begin{cases}x_1+2x_2=1, \\2x_1+x_2=0, \\x_1+x_2=0\end{cases}的最小二乘解。

解:

系数矩阵A=\left[\begin{matrix}1&2\\2&1\\1&1\end{matrix}\right] 为列满秩矩阵,故矛盾方程有唯一最小二乘解:

A^{(1, 3)}=(A^HA)^{-1}A^H=\frac{1}{11}\left[\begin{matrix}-4&7&1\\7&-4&1\end{matrix}\right]

x_0=A^{(1, 3)}b=\frac{1}{11}\left[\begin{matrix}-4\\7\end{matrix}\right]

下面是如何在Python中进行求解:

Python中的矩阵运算可以参考:numpy矩阵运算

import numpy as np
A = np.mat([[1, 2], [2, 1], [1, 1]])
A13 = (A.H * A).I * A.H
print(A13)

利用最小二乘法做线性拟合:

假设我们观测了一系列(x_i, y_i)值,且xy近似满足线程方程是y=kx+b. 则我们将(x_i, y_i)的值带入线性方程y_i=kx_i+b得到方程组\begin{cases}kx_0+b=y_0 \\ kx_1+b=y_1 \\ ...\\kx_n+b=y_n\end{cases}

这里的kb为变量,使用上述公式求解出kb的值,则可以得到变量的最小二乘线性拟合方程。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年11月06日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档