matlab用4个方程求解4个未知数在原有方程组上再加一个方程为何结果不同
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/23 19:19:20
matlab用4个方程求解4个未知数在原有方程组上再加一个方程为何结果不同
matlab用4个方程求解4个未知数在原有方程组上再加一个方程为何结果不同
matlab用4个方程求解4个未知数在原有方程组上再加一个方程为何结果不同
四个未知数,四条方程,刚好能得到一组确切的解(前提是4条方程独立,互相不等价)
当方程数超过未知数的数量时,如果方程都独立(互不等价)理论上是无解的
但是使用\或者pinv可以得到一组解,确切来说是一组满足最小二乘原理的近似解
也就是说这个解可能不符合任何一个方程,但是在最小二乘意义下最接近所有方程
或者用函数拟合的说法更能解释这个问题
我们知道平面上的两点可以确立一条直线,假设直线的方程是y=k*x+b
有k和b两个未知数
如果我们知道两点的坐标x1,y1和x2,y2,我们可以代入方程得到方程组
y1=k*x1+b
y2=k*x2+b
两个未知说k,b两条方程,所以可以得到一个解,也就是两点缺定一条直线
但是在很多实际测量中,我们得到的数据是有误差的
我们测到了很多的数据组x1,y1 x2,y2 x3,y3 .xn,yn
如果我们事先知道这些点应该在同一条直线上,那么它们应该都符合同一个方程y=k*x+b
那么两个未知数k,b但是有n条方程,明显方程过多
由于有误差存在,这些点本来就不是共线的,
所以我们不能找到一个确切的k,b,让所有方程都满足
但是我们仍然可以找到一条直线让所有点到直线的距离的平方和最小
也就是最小二乘意义下的最接近所有点的直线
这个时候用\得到的解,就是这个意义下的解
这个解可能不满足方程组中任何一个方程
也就是拟合出来的直线可能不经过原来任何一个数据点
但是所有数据点离直线的距离的平方和是最小的