首页 > 其他分享 >齐次方程组(超定方程组)的最小二乘解,及利用其拟合空间平面

齐次方程组(超定方程组)的最小二乘解,及利用其拟合空间平面

时间:2024-10-13 20:43:34浏览次数:1  
标签:方程组 拟合 齐次 二乘解 超定 平面

理论
齐次方程组形如:。在一些优化,拟合等问题中经常出现,我们常考虑方程多于未知数元数的情况------超定方程组。

首先对于平凡解x=0我们一般不感兴趣,一般我们会寻求方程组的非零解。

如果x是方程组的一个解,那么对于,也是齐次方程组的解,一个合理的假设是只求满足的解。

假设A的维数是m×n,一般的m>n(超定),那么方程组存在精确解的条件是rank(A)<n------>即矩阵A列不满秩。当没有精确解的时候(rank(A) = n, A列满秩),我们通常求其最小二乘解,描述为:

求使||Ax||最小化并满足||x||=1的x

先介绍一个引理,即对于一个酉阵或半酉阵p()和一个向量x(向量维数等于P列数),有:

 

将A进行精简奇异值分解,令:

 

其中U和V为半酉阵,分别满足

 

则:

 

另,若令:

 

则问题等效成求使||Dy||最小化并满足||y||=1的y

需要说明的是对于当前问题,A列满秩,则D是对角阵,V是酉阵(方阵)

在奇异值分解中D的对角线元素是递减排列的,那么只需去取=(0,0,......0,1),则;

,是A最小的奇异值

此时:

 

即x为V矩阵的最后一列,在此题背景下x为A‘A的最小特征值对应的单位特征向量。

示例:利用空间点拟合空间平面
有平面上的n个点的坐标,拟合平面ax+by+cy+d=0

注:这里不用ax+by+cy+1=0的形式拟合,形成一个Ax=b的非齐次方程组,然后通过广义逆的方式求解,主要考虑到平面可能过原点等问题。

有m个方程:

 

用矩阵的方式表示成Ax=0的形式为;

 

通过上述方式可进行求解。

matlab代码如下:

function n = get_plane(X)
%%
% X为平面上的点坐标,大小为n×3矩阵
% n为平面的四维向量表示
 
%%
[m,~] = size(X);
a1 = ones(m,1);
A = [X,a1];
[~,~,V] = svd(A,'econ');
n = V(:,4);

原文链接:齐次方程组(超定方程组)的最小二乘解,及利用其拟合空间平面

标签:方程组,拟合,齐次,二乘解,超定,平面
From: https://www.cnblogs.com/rainbow70626/p/18462940

相关文章

  • 线性方程组的迭代方法
    目录直接方法与迭代方法常规迭代算法选择迭代求解器预条件子预条件子示例均衡和重新排序使用线性运算函数取代矩阵        数值线性代数最重要也是最常见的应用之一是可求解以A*x=b形式表示的线性方程组。当A为大型稀疏矩阵时,您可以使用迭代方法求解线......
  • 从零开始的数值分析--线性方程组直接解法
    #导入numpy库,用于进行科学计算importnumpyasnp#导入scipy库,用于科学计算和工程计算importscipy#导入matplotlib.pyplot,用于数据可视化importmatplotlib.pyplotasplt#导入sympy库,用于符号数学计算importsympyassp一般来说,我们在解线性方程组是有......
  • 雅可比迭代法解线性方程组
    importosos.getcwd()'D:\\#Python\\jupter'importnumpyasnpdefjacobi(a,b,c=0.0001,d=30):x1=np.zeros(a.shape[1])x2=np.zeros(a.shape[1])k=0whilek<d:k=k+1print('k=',k)foriin......
  • 最小二乘解的理解
    记录一下工作时遇到的拟合问题,将两个数据的关系建模为最小二乘的模型:\[y=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4\]使用了python里面的numpy.linalg.lstsq函数进行拟合,以下是一个简单的示例importnumpyasnpimportmatplotlib.pyplotasplt#样本数据点x=np.a......
  • 2.13 已知f(x)=(|x+1|-|x-1|)/2+sinx,g(x)=(|x+3|-|x-3|)/2+cosx,求下列超定方程组的
    点击查看代码importnumpyasnpdeff(x):return(abs(x+1)-abs(x-1))/2+np.sin(x)defg(x):return(abs(x+3)-abs(x-3))/2+np.cos(x)#假设我们有一些初始猜测值(这里只是随机选择的)x1_guess=0.5x2_guess=1.0......
  • 线性代数 第五讲:线性方程组_齐次线性方程组_非齐次线性方程组_公共解同解方程组_详解
    线性方程组文章目录线性方程组1.齐次线性方程组的求解1.1核心要义1.2基础解系与线性无关的解向量的个数1.3计算使用举例2.非齐次线性方程的求解2.1非齐次线性方程解的判定2.2非齐次线性方程解的结构2.3计算使用举例3.公共解与同解3.1两个方程组的公共解3.2同......
  • 2.7 先判断下列线性方程组解的情况,然后求对应的唯一解、最小二乘解或最小范数解
    (1)4x1+2x2-x3=23x1-x2+2x3=1011x1+3x2=8点击查看代码importnumpyasnp#定义系数矩阵A和常数项向量bA=np.array([[4,2,-1],[3,-1,2],[11,3,0]])b=np.array([2,10,8])#使用numpy的lstsq求解最小二乘解......
  • 高斯消元解线性方程组
    高斯消元解线性方程组输入一个包含n个方程n个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。下图为一个包含m个方程n个未知数的线性方程组示例输入格式第一行包含整数n。接下来n行,每行包含n+1个实数,表示一个方程的n个系数以及等号右侧的常数......
  • 利用matlab求解方程和方程组
    本章会介绍如何利用matlab的内置函数求解方程与方程组目录一、solve函数求解方程1.求解单变量方程2.求解周期函数的解3.求解多变量方程4.求解方程组二、vpasolve函数求解方程1.solve函数的缺点2.vpasolve函数的用法(1)用vpasolve函数指定求范围上的解(2)用vpasolve函数给定搜索的起始......
  • 【数值计算方法】线性方程组的迭代解法-数值实验
    fromformu_libimport*importnumpyasnpA=np.array([[-55,-5,12],[21,36,-13],[24,7,47]])b=np.array([41,52,12])w=lambdat:0.1*txs,ys,ts=[],[],[]foriinrange(1,20):_,err=SORIter(A,b,w(i))xs.append(list(......