声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2163|回复: 8

[综合讨论] 这种迭代矩阵怎么编程呢

[复制链接]
发表于 2008-8-27 11:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
X为m×1列阵,为待求量,Y为m×1列阵为已知量,A为m×n矩阵,为已知量,迭代求解方程如下

X1(i)=Y1-A12*X2(i-1)-A13*X3(i-1)-A14*X4(i-1)-......-A1n*Xn(i-1)
X2(i)=Y2-A21*X1(i)-A23*X3(i-1)-.....-A2n*Xn(i-1)
X3(i)=Y3-A31*X1(i)-A32*X2(i)-A34*X4(i-1)-.....-A2n*Xn(i-1)
.
.
.
Xm(i)=Ym-Am1*X1(i)-Am2*X2(i)-......-Amn*Xn(i)

其中,X、Y、A后小写字母及数字为对应矩阵中的元素,括号中i为迭代次数。想求对应于不同迭代次数i时,不同的X值。自己编了但总是不对,错在迭代次数的选取上,希望各位帮忙写一下,或看看我的程序错在哪里,谢谢!

以下为我的程序,但结果是迭代次数只能取一样的值,与公式中不符,
Y=Ps;%已知量
X=repmat(0,M,1);    %给定X的初始值为0,



B=diag(diag(A));%取矩阵A的对角元素
A=A-B;%使矩阵A的对角元素置零

for t=1:T;%定义迭代次数
     X=Y-A*X;
    t
    X
end
回复
分享到:

使用道具 举报

发表于 2008-8-27 13:01 | 显示全部楼层
迭代是先给定一个初值
然后后面计算出来的值根初值进行比较
相差不大,迭代完毕
相差很大,把新值做为初值
继续就算

迭代次数由两个数比较而决定
与迭代的方法有关
而不是自己选择的
 楼主| 发表于 2008-8-27 16:28 | 显示全部楼层
我的意思是对X的真值做逼近,Y值是X的一个计算值,X是要求的真值,X和Y之间有一定的关系,即可表示为以上所列式了,当迭代次数越大时,X越逼近真值,每次迭代的X值用上一次的新值做为初值进行。
发表于 2008-8-27 18:06 | 显示全部楼层

回复 板凳 djh713 的帖子

建议找下迭代的书看看
发表于 2008-8-27 20:57 | 显示全部楼层
试试这个

for i=1:M
     X(i)=Y(i)-A(i,:)*X
end

评分

1

查看全部评分

 楼主| 发表于 2008-8-29 18:01 | 显示全部楼层
请教小西,我这个方程就是一个向真值的逼近,我现在不明白的是MATLAB中怎么编程可以使某元素的第N次逼近中可以取到小于其本身元素的第N次逼近的值及大于其本身元素第N-1次逼近的值。不知看迭代方面的书对此有何帮助。
hi messenger, thanks  for your help, but this program isn't correct, X(i) is an value of the matrix X  at the ith row, instead of the ith interation.
发表于 2008-8-29 18:26 | 显示全部楼层

回复 6楼 djh713 的帖子

对呀,迭代M次以后,不就有M个X(i)了吗?分别是[X(1); X(2);...;X(M)],正好构成X列阵

[ 本帖最后由 messenger 于 2008-8-29 18:27 编辑 ]
发表于 2008-8-29 20:02 | 显示全部楼层
To 楼主,应该是说算法的设计问题,而不是编程实现问题吧。
你的代码,我随便设置了初始数据运行了,么有语法问题。只不过,呵呵,X或许距离真值越来越远。

评分

1

查看全部评分

 楼主| 发表于 2008-8-31 12:24 | 显示全部楼层
程序是可以运行的,这没有问题,现在的问题是程序中的取值情况,即若我在第 i 次迭代中计算X3(X3为列阵X的第三行元素)的值时,对X4、X5、X6....等值我需取其第i-1次迭代的值,而对X1和X2则应取第i次迭代值,但现在的程序是对所有的元素均是取第i-1次迭代的值,这个问题程序怎么解决?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-2 00:50 , Processed in 0.217121 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表