24小时热门版块排行榜    

查看: 835  |  回复: 3

iamsad

至尊木虫 (著名写手)

[求助] matlab里面的givens旋转好奇怪

最近要把一个matlab程序改成Fortran, 遇到一些细节问题搞不懂。
matlab里面的复givens旋转矩阵给出的是形如[c conj(s);-s conj(c)]的矩阵,通常文献上的复givens矩阵是[c  s; -conj(s)  c], 而且这里的c是实数。Lapack里面的zlartg也是这种形式。我暂时没有看到Lapack提供其他形式。
不知道matlab是怎么计算复givens旋转矩阵的, 请了解的同学说一说。谢谢!
回复此楼

» 猜你喜欢

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

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

wurongjun

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
conj(s)是s的共轭!
如果是实数那就等于[c s;-s c]!
善恶到头终有报,人间正道是沧桑.
2楼2013-06-10 22:35:42
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

cooooldog

铁杆木虫 (著名写手)

ส็็็

【答案】应助回帖

感谢参与,应助指数 +1
建议去看Gene Golub的 矩阵计算, 第三版, 有袁亚湘等人翻译的中文版
英文版也容易找到matrix computation

对于初学算法的人,这本书应该算是比较经典的教材. 里面有详细的介绍.
ส็็็็็็็็็็็็็็็็็็็็
3楼2013-06-11 07:29:15
已阅   关注TA 给TA发消息 送TA红花 TA的回帖

iamsad

至尊木虫 (著名写手)

感谢回复,事情好像不是这么简单。
给定一个x=[x1;x2],其中的x1和x2都是复数,调用[G,y]=planerot(x)以后,得到的G=[c conj(s);-s conj(c)],其中的四个元素全是复数,y=[r;0],其中的r是实数。
类似的内容我还没有在Gene Golub的书里头找到。
4楼2013-06-11 10:06:14
已阅   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 iamsad 的主题更新
信息提示
请填处理意见