Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
初级会员
注册日期: 2008-12-22
年龄: 38
帖子: 2
声望力: 0 ![]() |
![]()
方程组由下列方程组成:
-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写在哪里. 不胜感激 |
![]() |
![]() |
![]() |
|
|
![]() |
||||
主题 | 主题作者 | 版面 | 回复 | 最后发表 |
[求助]如何产生不规则波? | 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 |