主题:第一个矩阵已知,后面矩阵用到前面矩阵咋办
tianhy2010
[专家分:60] 发布于 2010-10-10 15:38:00
矩阵t(0)已知,t(00)为t(0)的转置,I为单位矩阵
t(1)=(I-t(0)t(00)-t(00)t(0))t(0)**2
t(11)=(I-t(0)t(00)-t(00)t(0))t(00)**2
t(2)=(I-t(1)t(11)-t(11)t(1))t(1)**2
t(22)=(I-t(1)t(11)-t(11)t(1))t(11)**2
一直重复下去,到第i个t(i)
t(i)=(I-t(i-1)t(ii-1)-t(ii-1)t(i-1))t(i-1)**2
t(ii)=(I-t(i-1)t(ii-1)-t(ii-1)t(i-1))t(ii-1)**2
如果已知第一个t(0)以及其转置矩阵t(00),用什么算法求第i个
t(i),t(ii)呢?[em2][em2][em2][em2][em2][em14][em14][em14][em14][em14]
最后更新于:2010-10-10 21:58:00
回复列表 (共8个回复)
沙发
yeg001 [专家分:14390] 发布于 2010-10-10 16:56:00
最简单就是根据你描述的这样, 重复出来.
复杂一点就看看能不能推导出一个解析式或者简单的递推关系.
板凳
jstzhurj [专家分:4680] 发布于 2010-10-10 17:12:00
用do循环有什么问题?不能解决你的问题么?
3 楼
tianhy2010 [专家分:60] 发布于 2010-10-10 19:26:00
[quote]用do循环有什么问题?不能解决你的问题么?[/quote]
可以这样不?因为t是(8,8)矩阵,让第1个t为t(8,8,0),第二个t(8,8,1),第i个t(8,8,i-1)分别代表t(0),...,t(i).就是不知道如果转置的话会不会出错,因为i只是代表第几个t,前面两个才是存储的它的数值。
能否用一维数组来存储二维矩阵?比如
t(0)代替第一个t(8,8)
4 楼
jstzhurj [专家分:4680] 发布于 2010-10-10 20:47:00
[quote][quote]用do循环有什么问题?不能解决你的问题么?[/quote]
可以这样不?因为t是(8,8)矩阵,让第1个t为t(8,8,0),第二个t(8,8,1),第i个t(8,8,i-1)分别代表t(0),...,t(i).就是不知道如果转置的话会不会出错,因为i只是代表第几个t,前面两个才是存储的它的数值。
能否用一维数组来存储二维矩阵?比如
t(0)代替第一个t(8,8)[/quote]
定义一个type数组不就行了?type里面包含一个二维数组存放矩阵。
5 楼
tianhy2010 [专家分:60] 发布于 2010-10-10 21:59:00
[em6][em6][em6]
呵呵,没用过type,这样处理了下不知道效果怎样
t0=(.i.(energy-h0)).x.h10
t1=transpose(t0)
tt=t0
do i=1,n
t0=(.i.(energy-t0.x.t1-t1.x.t0)).x.(t0**2)
t1=t1.x.t0
tt=tt+t1
end do
6 楼
jstzhurj [专家分:4680] 发布于 2010-10-10 23:03:00
[quote]
[em6][em6][em6]
呵呵,没用过type,这样处理了下不知道效果怎样
t0=(.i.(energy-h0)).x.h10
t1=transpose(t0)
tt=t0
do i=1,n
t0=(.i.(energy-t0.x.t1-t1.x.t0)).x.(t0**2)
t1=t1.x.t0
tt=tt+t1
end do
[/quote]
t0不定么?
7 楼
tianhy2010 [专家分:60] 发布于 2010-10-11 09:14:00
t0已知了,是个已知矩阵。公式在上面,好像这样应该可以了
t0=(.i.(energy-h0)).x.h10
t1=transpose(t0)
tt=t0
tt_=t1
do i=1,n
t0=(.i.(energy-t0.x.t1-t1.x.t0)).x.(t0**2)
t2=t1.x.t0
tt=tt+t2
t1=t1.x.transpose(t0)
end do
8 楼
jstzhurj [专家分:4680] 发布于 2010-10-11 09:39:00
最后一个公式谁写的,文献中的还是自己写的?似乎该写的项没写,看不出有什么规律,很费解!
我来回复