24小时热门版块排行榜    

查看: 4301  |  回复: 10
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

luzongxing

银虫 (小有名气)

[求助] matlab求解正交矩阵。 已有1人参与

1,我们求解变换矩阵的时候得到一个AX=b的矩阵,
现在如何通过matlab得到3*3的旋转矩阵R比较精确地解,一下是我从网上查找的一些常用的解法。
%一是用伪逆法求解
% X=pinv(A)*b

% % 二是用左除法求解,
X=A\b

% %  三是用最小二乘法求解,
% X=lsqnonneg(A,b)

%四LU分解法
% [L,U]=lu (A);
% X=U\(L\b)

2.求得的矩阵R,理论上R应该是一个标准的单位正交矩阵,如果给点的A和B的对应关系不是那么精确,可能求出来的R跟正交矩阵有点偏差。
R*R'=[0.9985 -0.0085 0.0013;
           0.0045 1.0032  -0.0018;
           0.0032 0.0063  1.0024]

那么如何修正这个旋转矩阵,让R*R'的约接近于单位正交矩阵。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
5楼: Originally posted by luzongxing at 2013-12-26 20:27:50
由于R是未知,把R中的变量当作未知数,构造新的线性方程组,就是
AX=b的模式。

现在我的问题是,我构造出AX=b的线性方程组了。A,b是一直,哪一种求解方法比较精确。

求出旋转矩阵R以后,我们发现R*R'跟单位 ...

是的,修正一个接近特殊正交的矩阵,使其变为特殊正交矩阵。
7楼2013-12-27 10:03:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 11 个回答

virtualzx

木虫 (著名写手)

请问你的R矩阵是从什么地方出来的,和AX=B有啥联系啊?
2楼2013-12-26 14:46:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

luzongxing

银虫 (小有名气)

引用回帖:
2楼: Originally posted by virtualzx at 2013-12-26 14:46:14
请问你的R矩阵是从什么地方出来的,和AX=B有啥联系啊?

旋转矩阵R是点不同坐标系下的旋转变换矩阵。是3*3的矩阵、

第一问你就可以假设A是一个9*9的满秩矩阵
b是一个1*9的矩阵。来求矩阵X。
x是一个1*9的矩阵。求出来是R中的各个元素。
怎么有更高精度的算法。

第二问,由于在两个坐标系中的点对应不是那么精确,可能导致旋转矩阵算出来不是标准的单位正交矩阵,这时候需要微小的修正。
3楼2013-12-26 17:28:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

virtualzx

木虫 (著名写手)

xzhdty: 2013-12-27 06:18:54
引用回帖:
3楼: Originally posted by luzongxing at 2013-12-26 04:28:23
旋转矩阵R是点不同坐标系下的旋转变换矩阵。是3*3的矩阵、

第一问你就可以假设A是一个9*9的满秩矩阵
b是一个1*9的矩阵。来求矩阵X。
x是一个1*9的矩阵。求出来是R中的各个元素。
怎么有更高精度的算法。

...

嗯?奇怪呢,一般都是x.R=y求R,x和y都是3维矢量,或者A.R=B求R,A和B的所有特征值相等,没遇到过你说的9x9的情况。

既然是旋转变换,不单是正交矩阵,而且需要是特殊正交矩阵。特殊正交矩阵可以要求矩阵对数反对称得到。就是先求矩阵自然对数,然后反对称化,再求矩阵指数就行了
Q=logm(R)
Qsym=1/2(Q-Q.')
Rsym=expm(Qsym)
4楼2013-12-27 01:45:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见