
正文
pinv函数C语言实现 c语言pi
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
奇异矩阵求逆问题!!!
X奇异C有无穷多解。找基础解系
对不起,最小二乘都快忘光了,线性代数还行。。希望下面的东西能帮到你(你试试看):
对A进行QR分解(A=QR),其中Q是nxk正交矩阵(Orthonormal Matrix),R是kxk上三角矩阵(Upper Triangular Matrix),然后min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b||,用MATLAB命令x=R\(Q'*b)可解得x。
最小二乘法的Matlab实现
① 一次函数 使用polyfit(x,y,1)
②多项式函数 使用 polyfit(x,y,n),n为次数
拟合曲线
x=[0.5,1.0,1.5,2.0,2.5,3.0], y=[1.75,2.45,3.81,4.80,7.00,8.60]。
解:MATLAB程序如下: x=[0.5,1.0,1.5,2.0,2.5,3.0]; y=[1.75,2.45,3.81,4.80,7.00,8.60]; p=polyfit(x,y,2) x1=0.5:0.05:3.0; y1=polyval(p,x1); plot(x,y,'*r',x1,y1,'-b') 计算结果为: p =0.5614 0.8287 1.1560
即所得多项式为y=0.5614x^2+0.08287x+1.15560
③非线性函数 使用 lsqcurvefit(fun,x0,x,y)
相关问答
Q1: matlab中pinv的用法,帮忙看看这个代码的含义,谢谢
pinv(a)是求伪逆矩阵,逆矩阵函数inv只能对方阵求逆,pinv(a)可以对非方阵求逆。
pinv(a)=inv(a'*a)*a'
例如:
b=rand(2,3)
b =
0.1966 0.6160 0.3517
0.2511 0.4733 0.8308
c=pinv(b)
c =
0.2577 0.0900
2.3495 -1.0377
-1.4163 1.7676
扩展资料:
MATLAB中的pinv和inv的区别:
1、对于方阵A,如果为非奇异方阵,则存在逆矩阵inv(A)
2、对于奇异矩阵或者非方阵,并不存在逆矩阵,但可以使用pinv(A)求其伪逆
若A为非奇异矩阵,请不要使用pinv求逆,虽然计算结果相同,即
inv( A ) = pinv( A )
但pinv的计算复杂度较高
参考资料来源:百度百科-伪逆矩阵
Q2: matlab中pinv函数是如何利用svd分解出的U、S、V来求取奇异矩阵的广义逆矩阵的
假定拟计算一般矩阵A的Moore-Penrose广义逆A+,
1)对A做SVD:
A = U S V, 其中 U, V为酉方阵, S为一般对角阵;
2)将S非零元取逆, 零元不变, 然后专置得到一个一般对角阵T;
3)则广义逆为A+ = V* T U*, 其中 * 表示取矩阵的复共轭.
关于pinv函数C语言实现和c语言pi的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。








