sor迭代算法的matlab程序
发布网友
发布时间:2022-04-23 01:16
我来回答
共2个回答
热心网友
时间:2023-06-24 17:30
function [x k]=EqtsSOR(A,b,x0,omiga,eps)
%超松弛(SOR,Successive Over-Relaxation)迭代法求解线性方程组Ax=b
%[x k]=EqtsSOR(A,b,x0,eps)
%x:解向量,列向量
%k:迭代次数
%A:系数矩阵
%b:列向量
%x0:迭代初始值,列向量
%omiga:松弛因子,可缺省,缺省值为1,即为GS迭代法
%eps:误差限,可缺省,缺省值为0.5e-6
%
%应用举例:
%A=[4 3 0;3 4 -1;0 -1 4];b=[24;30;-24];x0=[1;1;1];omiga=1.25;
%[x k]=EqtsSOR(A,b,x0,omiga,0.5e-6)
%x=EqtsSOR(A,b,x0)
if nargin==4
eps=0.5e-6;
end
if nargin==3
omiga=1;
eps=0.5e-6;
end
%检查输入参数
n=length(b);
if size(A,1) ~= n || n ~= length(x0)
disp('输入参数有误!');
x=' ';
k=' ';
return;
end
%迭代求解
k=0;
x=zeros(n,1);
while 1
k=k+1;
for i=1:n
z=0;
for j=1:i-1
z=z+A(i,j)*x(j);
end
for j=i+1:n
z=z+A(i,j)*x0(j);
end
x(i)=(1-omiga)*x0(i)+omiga*(b(i)-z)/A(i,i);
end
if norm(x-x0)<=eps || k==30
break;
end
x0=x;
end
if k==30
disp('迭代次数太多!')
x=' ';
end
return;
参考资料:你试试,应该可以用的
热心网友
时间:2023-06-24 17:30
mark shangmianshuode shi i de wo mark yixia
sor迭代算法的matlab程序
function [x k]=EqtsSOR(A,b,x0,omiga,eps)超松弛(SOR,Successive Over-Relaxation)迭代法求解线性方程组Ax=b [x k]=EqtsSOR(A,b,x0,eps)x:解向量,列向量 k:迭代次数 A:系数矩阵 b:列向量 x0:迭代初始值,列向量 omiga:松弛因子,可缺省,缺省值为1,即为GS迭代法 eps:误差限,可...
SOR迭代法 求MATLAB程序
1、打开matlab之后,在命令行窗口中输入a=[1 2 3 4;5 6 7 8;8 9 2 5;1 2 4 5],新建一个a方矩阵。2、在命令行窗口中输入inv(a),按回车键,可以看到得到了矩阵的逆。3、使用inv(a)函数求矩阵的逆需要注意的是,a必须是方矩阵,也就是需要行列数相等的矩阵才可以。4、也可以在命令...
SOR迭代法 求MATLAB程序
迭代法 matlab实现代码如下 function [x,n] = jacobi(A,b,x0,eps,varargin)if nargin ==3 eps = 1.0e-6;M = 200;elseif nargin<3 disp('输入参数数目不足3个');return elseif nargin ==5 M = varargin{1};end D = diag(diag(A)); %%求A的对角矩阵 L = -tril(A,-1);...
请问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...
MATLAB中SOR迭代法如何球迭代次数及迭代后的值?
function [x n]=sor(A,b,x0,w,eps,M)x值 n迭代次数 A系数矩阵 b 方程组右端项 w 松弛因子 eps 精度要求,默认1e-5 M 最大迭代次数,默认100
用MATLAB求解SOR迭代程序
以a=[6,2,1,-1;2,4,1,0;1,1,4,-1;-1,0,-1,3];b=[6;1;5;-5];为例 function[y,r,n]=sor(a,b,x0,w,e,N) D=diag(diag(a));U=-triu(a,1);L=-tril(a,-1); G=(D-w*L)\((1-w)*D+w*U);f=w*((D-w*L)\b); y=G*x0+f;n=1; while(...
matlab 图中迭代公式怎么编写
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...
用matlab根据sor法画距阵谱半径和w之间的关系
先输入 A=[1 0.5 0 0 1 0.5 0.5 0 1]然后w=-1:0.2:3 然后sor
matlab的sor函数的超松弛因子是什么意思
function [x n]=sor(A,b,x0,w,eps,M)x值 n迭代次数 A系数矩阵 b 方程组右端项 w 松弛因子 eps 精度要求,默认1e-5 M 最大迭代次数,默认100!
matlab数值计算案例分析的目录
第1章MATLAB编程基础11.1 矩阵的基本操作与基本运算11.1.1 矩阵的基本操作11.1.2 矩阵的基本运算21.1.3 *与 .*和/与./ 的区别31.1.4 使用find函数索引符合某些特定条件的矩阵元素31.1.5 eps函数与避免除以0的方法41.2 MATLAB的数据结构41.3 变量、脚本与函数81.3.1 变 量81.3.2 ...