matlab中pinv的用法,帮忙看看这个代码的含义,谢谢 20
老师给了一个程序,看到pinv的时候有点糊涂,“伪”逆矩阵到底什么意思啊,示例如下:A=[1;3;5;8];B=A;j=1/100;B(:,2)=1;B(:,3)=j;B...
老师给了一个程序,看到pinv的时候有点糊涂,“伪”逆矩阵到底什么意思啊,示例如下:
A=[1;3;5;8];
B=A;
j = 1/100;
B(:,2)=1;
B(:,3) = j;
B(:,4) = j*j;
C = pinv(B);
D = -C(1,: );
D=D‘;
请问D和A到底有什么关系啊,是拟合相减的结果,还是什么其他的,构造B的目的是啥,谢谢各位指教,不胜感激! 展开
A=[1;3;5;8];
B=A;
j = 1/100;
B(:,2)=1;
B(:,3) = j;
B(:,4) = j*j;
C = pinv(B);
D = -C(1,: );
D=D‘;
请问D和A到底有什么关系啊,是拟合相减的结果,还是什么其他的,构造B的目的是啥,谢谢各位指教,不胜感激! 展开
3个回答
展开全部
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的计算复杂度较高
参考资料来源:百度百科-伪逆矩阵
展开全部
虚反矩阵指令pinv之应用
pinv指令
在多数解的例子中,有时并不是仅要将其中一变数设定为零之解。为使整个系统得到最佳化,亦可利用pinv指令求得最小模组之合理解。pinv(A)又称为虚反矩阵(pseudoinverse),其功能与反矩阵之计算相同,但它会基於svd(A)函数(或称奇异值分解函数)之计算方式,求得一个不是属於全阶之矩阵A之反矩阵。这是长方形矩阵求解时,在多重解中求其反矩阵之折衷方式。故若矩阵A为方矩阵或非零矩阵,则其结果应与inv(A)相同。只是在这样的状况,宁可使用inv(A)较为省事。处理这些长方矩阵或特异矩阵时,使用pinv(A)会有意想不到的效果。其解法是根据反矩阵法:
A=[3 2 1; 10 -25 5];C=[5000 2000]';>> T=inv(A)*C??? Error using ==> invMatrix must be square.T=pinv(A)*C T = 1203.9 485.16 418
上面之例因为A不是方形矩阵,故求其反矩阵时会有错误的信息,但若用虚反矩阵指令pinv,反而相安无事,这是将T1、T2以其馀一变数T3表示之情况下,求得其最小平方之组合。其结果是否合用则端视问题之限制与应用而定。 PINV(A,TOL) 之指令後面另有参数TOL,可以输入容许值。其预设值为MAX(SIZE(A)) * NORM(A) * EPS(class(A)),读者可参考手册之说明,以瞭解其使用方法。
明白了吗?
pinv指令
在多数解的例子中,有时并不是仅要将其中一变数设定为零之解。为使整个系统得到最佳化,亦可利用pinv指令求得最小模组之合理解。pinv(A)又称为虚反矩阵(pseudoinverse),其功能与反矩阵之计算相同,但它会基於svd(A)函数(或称奇异值分解函数)之计算方式,求得一个不是属於全阶之矩阵A之反矩阵。这是长方形矩阵求解时,在多重解中求其反矩阵之折衷方式。故若矩阵A为方矩阵或非零矩阵,则其结果应与inv(A)相同。只是在这样的状况,宁可使用inv(A)较为省事。处理这些长方矩阵或特异矩阵时,使用pinv(A)会有意想不到的效果。其解法是根据反矩阵法:
A=[3 2 1; 10 -25 5];C=[5000 2000]';>> T=inv(A)*C??? Error using ==> invMatrix must be square.T=pinv(A)*C T = 1203.9 485.16 418
上面之例因为A不是方形矩阵,故求其反矩阵时会有错误的信息,但若用虚反矩阵指令pinv,反而相安无事,这是将T1、T2以其馀一变数T3表示之情况下,求得其最小平方之组合。其结果是否合用则端视问题之限制与应用而定。 PINV(A,TOL) 之指令後面另有参数TOL,可以输入容许值。其预设值为MAX(SIZE(A)) * NORM(A) * EPS(class(A)),读者可参考手册之说明,以瞭解其使用方法。
明白了吗?
追问
请问 我的示例中D和A之间有什么关系?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
pinv(B)求的是矩阵B的Moore-Penrose逆,是B的一种广义逆,也就是你说的伪逆,该广义逆满足四个条件:
A*B*A = A
B*A*B = B
A*B 是海森矩阵
B*A是海森矩阵。
这个在矩阵论中有讲,你可以去看看
A*B*A = A
B*A*B = B
A*B 是海森矩阵
B*A是海森矩阵。
这个在矩阵论中有讲,你可以去看看
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询