用matlab解超定方程

用matlab解超定方程

ID:8851836

大小:30.00 KB

页数:3页

时间:2018-04-09

用matlab解超定方程_第1页
用matlab解超定方程_第2页
用matlab解超定方程_第3页
资源描述:

《用matlab解超定方程》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、用MATLAB解超定方程///////////////////////////////////////////////// 根据解的存在情况,线性方程可以分为:·有唯一解的恰定方程组,·解不存在的超定方程组,·有无穷多解的欠定方程组。////////////////////////////////////////////////// 对于方程组Ax=b,A为n×m矩阵,如果A列满秩,且n>m。则方程组没有精确解,此时称方程组为超定方程组。线性超定方程组经常遇到的问题是数据的曲线拟合。对于超定方程,在MATLAB中,利用左除命令(x=Ab)来寻求它的最小二乘解

2、;还可以用广义逆来求,即x=pinv(A),所得的解不一定满足Ax=b,x只是最小二乘意义上的解。左除的方法是建立在奇异值分解基础之上,由此获得的解最可靠;广义逆法是建立在对原超定方程直接进行householder变换的基础上,其算法可靠性稍逊与奇异值求解,但速度较快;//////////////////////////////独立方程个数大于独立的未知参数的个数的方程,称为超定方程,在matlab里面有三种方法求解,一是用伪逆法求解,x=pinv(A)*b,二是用左除法求解,x=Ab,三是用最小二乘法求解,x=lsqnonneg(A,b)/////////

3、/////////////////////////(3)矩阵求逆行数和列数相等的矩阵称为方阵,只有方阵有逆矩阵。方阵的求逆函数为:B=inv(A)该函数返回方阵A的逆阵。如果A不是方阵或接近奇异的,则会给出警告信息。在实际应用中,很少显式的使用矩阵的逆。在MATLAB中不是使用逆阵x=inv(A)*B来求线性方程组Ax=B的解,而是使用矩阵除法运算x=AB来求解。因为MATLAB设计求逆函数inv时,采用的是高斯消去法,而设计除法解线性方程组时,并不求逆,而是直接采用高斯消去法求解,有效的减小了残差,并提高了求解的速度。因此,MATLAB推荐尽量使用除法运算

4、,少用求逆运算。(4)除法运算在线性代数中,只有矩阵的逆的定义,而没有矩阵除法的运算。而在MATLAB中,定义了矩阵的除法运算。矩阵除法的运算在MATLAB中是一个十分有用的运算。根据实际问题的需要,定义了两种除法命令:左除和右除。矩阵左除:C=AB或C=mldivide(A,B)矩阵右除;C=A/B或C=mrdivide(A,B)通常矩阵左除不等于右除,如果A是方阵,AB等效于A的逆阵左乘矩阵B。也就是inv(A)*B。如果A是一个n′n矩阵,B是一个n维列向量,或是有若干这样的列的矩阵,则AB就是采用高斯消去法求得的方程AX=B的解。如果A接近奇异的

5、,MATLAB将会给出警告信息。如果A是一个m′n矩阵,其中m不等于n,B是一个m维列向量,或是由若干这样的列的矩阵,则X=AB是不定或超定方程组AX=B的最小二乘解。通过QR分解确定矩阵A的秩k,方程组的解X每一列最多只有k个非零元素。如果k

6、.5000  -2.0000  5.7500  -3.5000 -18.0000 -3.2500   3.5000  15.0000矩阵右除。输入:A/B显示:ans= -0.0217   0.4565  -0.0435  0.6522   0.3043   0.3043 -0.5652   1.8696  -0.1304独立方程个数大于独立的未知参数的个数的方程,称为超定方程,在matlab里面有三种方法求解,一是用伪逆法求解,x=pinv(A)*b,二是用左除法求解,x=Ab,三是用最小二乘法求解,x=lsqnonneg(A,b)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。