Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2008-12-22, 18:29   #1
倪一厅
初级会员
 
注册日期: 2008-12-22
年龄: 38
帖子: 2
声望力: 0
倪一厅 正向着好的方向发展
默认 [求助]Matlab超松弛迭代法 高手帮忙看看

方程组由下列方程组成:
-3x1-x2=1
-x1+2x2-x3=0
-x2+2x3-x4=0
-x3+2x4=0
要求精度为10的-6次方



附源码

SOR迭代法的Matlab程序

function [x]=SOR_iterative(A,b)
% 用SOR迭代求解线性方程组,矩阵A是方阵
x0=zeros(1,length(b)); % 赋初值
tol=10^(-2); % 给定误差界
N=1000; % 给定最大迭代次数
[n,n]=size(A); % 确定矩阵A的阶
w=1; % 给定松弛因子
k=1;
% 迭代过程
while k<=N
x(1)=(b(1)-A(1,2:n)*x0(2:n)')/A(1,1);
for i=2:n
x(i)=(1-w)*x0(i)+w*(b(i)-A(i,1:i-1)*x(1:i-1)'-A(i,i+1:n)*x0(i+1:n)')/A(i,i);
end
if max(abs(x-x0))<=tol
fid = fopen('SOR_iter_result.txt', 'wt');
fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n');
fprintf(fid,'迭代次数: %d次\n\n',k);
fprintf(fid,'x的值\n\n');
fprintf(fid, '%12.8f \n', x);
break;
end
k=k+1;
x0=x;
end
if k==N+1
fid = fopen('SOR_iter_result.txt', 'wt');
fprintf(fid,'\n********用SOR迭代求解线性方程组的输出结果********\n\n');
fprintf(fid,'迭代次数: %d次\n\n',k);
fprintf(fid,'超过最大迭代次数,求解失败!');
fclose(fid);
end


主要是这个A写在哪里.
不胜感激
倪一厅 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
[求助]如何产生不规则波? allen_1107 MATLAB论坛 2 2009-03-13 23:44
[求助]非常不明白,imshow处应该写什么才能正确显示图像? Jael MATLAB论坛 5 2009-03-13 01:29
[求助]bp神经网络(急) sosnyf621 MATLAB论坛 0 2008-12-03 16:21
关于几道matlab基础题 zrzwdbmyx MATLAB论坛 3 2008-12-01 23:20
[求助]大家好,请问下在matlab编程里如何编三角函数绝对值问题 sunnyrain80 MATLAB论坛 5 2008-11-13 23:10


所有时间均为北京时间。现在的时间是 20:03


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.